This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VEN-Q1:TDA4Entry Linux 默认发布 MCU2_0/C7x_1/C7x_2 IPC 握手无法稳定工作。

Guru**** 2589245 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1561857/tda4ven-q1-tda4entry-linux-default-release-the-mcu2_0-c7x_1-c7x_2-ipc-handshake-can-not-stable-work

器件型号:TDA4VEN-Q1


工具/软件:

尊敬的专家:

客户测试我们的 RDk11.0 版本、当内核启动时加载所有 MCU2_0/C7x_1/C7x_2 时、很容易发现 IPC 握手故障问题。 我们可以在 EVM 板上重现此问题。 TXT 文件和图片下方是 EVM 捕获日志。 由于客户项目或闪存大小限制、他们将使用内核加载 TIOVX 内核映像方法、能否帮助我们解决这个 RDK11.0 问题?

以下是重现方法:

1.使用默认的 RDK11.0 Linux 版本。 (tisdk-adas-image-j722s-evm.tar.xz)

  修改 FAT32 引导分区 uEnv.txt

  (dorprocboot=0)

2.然后使用 SD 卡引导 EVM 板。 进入控制台时。 输入以下命令:

  #source /opt/vision_apps/vision_apps_init.sh

3.启动 Vision_app ,如果没有问题,关闭 EVM 板电源或运行 reboot 命令。 只是需要<20 圈,你可以找到 IPC 通信错误,如下面的错误日志。

此致!

Han Tao

e2e.ti.com/.../EntryEVM.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Han:

    我将在下周测试并向您提供最新信息。

    此致、
    Gokul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Han:

    我能够在我这边重现这个问题、并且正在进行调试。 我会在找到更新内容后立即更新。

    此致、
    Gokul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Han:

    当 IPC_init 调用 Hwip_construct () 来注册中断时,c7x 在读取 CLEC 寄存器时处于停滞状态,我们正在内部检查 Linux 和 u-boot 加载远程内核固件之间的差异,我也为此提出了 Jira。

    此致、
    Gokul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Gokul 您好:

    基于您共享 Jira。 我们按如下所示更新链接器文件。 更改所有内核包含 C7x/MCU/A72 器件。  

    测试看起来握手问题已解决。

    此致!

    Han Tao

    MEMORY
    {
    /* R5F_TCMA_VECS [ size 64 B ] */
    R5F_TCMA_VECS ( X ) : ORIGIN = 0x00000000 , LENGTH = 0x00000040
    /* R5F_TCMA [ size 31.94 KB ] */
    R5F_TCMA ( X ) : ORIGIN = 0x00000040 , LENGTH = 0x00007FC0
    /* R5F_TCMB0 [ size 32.00 KB ] */
    R5F_TCMB0 ( RWIX ) : ORIGIN = 0x41010000 , LENGTH = 0x00008000
    /* DDR for MCU2_0 for Linux IPC [ size 1024.00 KB ] */
    DDR_MCU2_0_IPC ( RWIX ) : ORIGIN = 0xA2000000 , LENGTH = 0x00100000
    /* DDR for MCU2_0 for Linux resource table [ size 1024 B ] */
    DDR_MCU2_0_RESOURCE_TABLE ( RWIX ) : ORIGIN = 0xA2100000 , LENGTH = 0x00000400
    /* DDR for MCU2_0 for Linux IPC trace [ size 1023.00 KB ] */
    DDR_MCU2_0_IPC_TRACE ( RWIX ) : ORIGIN = 0xA2100400 , LENGTH = 0x000FFC00
    /* DDR for MCU2_0 for code/data [ size 30.00 MB ] */
    DDR_MCU2_0 ( RWIX ) : ORIGIN = 0xA2200000 , LENGTH = 0x01E00000
    /* Memory for IPC Vring's. MUST be non-cached or cache-coherent [ size 32.00 MB ] */
    IPC_VRING_MEM : ORIGIN = 0xA5000000 , LENGTH = 0x02000000
    IPC_VRING_MEM : ORIGIN = 0xA6000000 , LENGTH = 0x02000000
    /* Memory for remote core logging [ size 256.00 KB ] */
    APP_LOG_MEM : ORIGIN = 0xA7000000 , LENGTH = 0x00040000
    APP_LOG_MEM : ORIGIN = 0xA8000000 , LENGTH = 0x00040000
    /* Memory for TI OpenVX shared memory. MUST be non-cached or cache-coherent [ size 63.75 MB ] */
    TIOVX_OBJ_DESC_MEM : ORIGIN = 0xA7040000 , LENGTH = 0x03FC0000
    TIOVX_OBJ_DESC_MEM : ORIGIN = 0xA8040000 , LENGTH = 0x03FC0000
    /* Memory for remote core file operations [ size 4.00 MB ] */
    APP_FILEIO_MEM : ORIGIN = 0xAB000000 , LENGTH = 0x00400000
    APP_FILEIO_MEM : ORIGIN = 0xAC000000 , LENGTH = 0x00400000
    /* DDR for MCU2_0 for local heap [ size 32.00 MB ] */
    DDR_MCU2_0_LOCAL_HEAP ( RWIX ) : ORIGIN = 0xB5800000 , LENGTH = 0x02000000
    DDR_MCU2_0_LOCAL_HEAP ( RWIX ) : ORIGIN = 0xB6800000 , LENGTH = 0x02000000
    /* Memory for shared memory buffers in DDR [ size 512.00 MB ] */
    DDR_SHARED_MEM : ORIGIN = 0xC0000000 , LENGTH = 0x20000000
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、陶先生、

    很抱歉、此链接器文件有什么变化? 你能告诉我吗?

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、陶先生、

    当您更新下面所示的 RTOS 存储器映射时、

    但在 Linux 中、vring 存储器仍然指向 0xa5000000。 客户是否还在 Linux 设备树文件中修改了此值?

    此致、
    Gokul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Gokul 您好:

    没错、Linux/C7/MCU 所有这些内核存储器链接器文件都需要修改才能相互匹配。  

    然后,我们测试的 IPC 握手约 300 圈没有发现这个问题。

    此致!

    Han Tao

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢陶,是的,这需要在所有地方匹配,否则, 可能会有问题。  

    我想此问题现已解决。 所以、关闭这个主题。