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.

[参考译文] Linux/AM5728:有时会使用 C66X DSP 固件。

Guru**** 2559890 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/624646/linux-am5728-c66x-dsp-firmware-is-crahsed-sometimes

器件型号:AM5728
Thread 中讨论的其他器件:SYSBIOS

工具/软件:Linux

你(们)好 我在 ti-processor-sdk-linux-am57xx-evm-04.00.04上与 ARM Linux 和 c66x DSP 保持集成。

ARM Linux 通过 IPC、DSP 接收 PCM 和奥迪输出发送 PCM

此过程适用于 您的 TI IPC 解决方案。

有时 、当电路板启动且我们没有任何东西时、2分钟后、我们发现 DSP 固件崩溃。

Arago 2017.05 am57xx-EVM ttyS2

am57xx-EVM 登录:

root@am57xx-EVM:~#[95.210423]  remoteproc remoteproc2:在40800000.dsp 中检测到崩溃:键入 watchdog
[95.219297]  remoteproc remoteproc2:处理40800000.dsp 中的 crash #1
[95.225806]  remoteproc remoteproc2:恢复408000.dsp
[95.258459]  OMAP-IMU 40d020.MMU:IOMMU 故障:DA 0x95305970标志0x0
[95.265286]  remoteproc remoteproc2:在40800000.dsp 中检测到崩溃:类型 mmufault
[95.272807]  OMAP-iommu 40d020.MMU:40d020.MMU:errs:0x00000002 da:0x95305970 PgD:0xece0654c * PgD:0xacfed801 Pte:0xecfed814 * Pte:0x00000000
[95.313293]  OMAP_hwmod:mu1_dsp1:_wait_target_disable 失败
[95.326219]  OMAP-hwmod:mu0_dsp1:_wait_target_disable 失败
[95.332175]  remoteproc remoteproc2:已停止远程处理器40800000.dsp
[95.339036]  remoteproc remoteproc2:为40800000.dsp 加电
[95.352618]  Remoteproc Remoteproc2:引导 FW 映像 dra7-dsp1-fw.xe66,大小为6516896
[95.367523]  omap_hwmod:mu0_dsp1:_wait_target_disable 失败
[95.373413]  OMAP-iommu 40d01000.MMU:40d01000.MMU:版本3.0
[95.379342]  OMAP-iommu 40d020.MMU:40d020.MMU:版本3.0
[95.436117]  virtio_rpmsg_bus virtio2:rpmsg 主机处于联机状态
[95.441696]  remoteproc remoteproc2:注册的 virtio2 (类型7)
[95.447651]  remoteproc remoteproc2:远程处理器40800000.dsp 现已启动
[95.455646]  virtio_rpmsg_bus virtio2:创建通道 rpmsg-proto addr 0x3D

这次、我们将此 DSP (RTOS 软件包错误)发送给您。

[0.0000]    看门狗已启用:TimerBase = 0x48086000频率= 0
[0.0000]    25个资源条目、位于0x95204000
[0.0000]    [t=0x00060d6e] xdc.runtime.Main:-> main:
[0.0000]    [t=0x0007fe61] xdc.runtime.Main:"audioSample_main.c"、第127行:
[0.0000]    音频采样主模式
[0.0000]     
[0.0000]    使用主机在61上注册 rpmsg-proto:rpmsg-proto 服务
[0.0000]    [t=0x000f2f92] xdc.runtime.Main: NameMap_sendMessage:host 53、port=61
[0.0000]    [t=0x002d1d2c] xdc.runtime.Main:--> smain:
[0.0000]    [t=0x002ef6b7]服务器:SERVER_CREATE:服务器就绪
[0.0000]    [t=0x002f8e6A]服务器:<-- SERVER_CREATE:0
[0.0000]    [t=0x003016a8]服务器:--> Server_exec:
[0.0000]    [t=0x006bf233] ti.sysbios.family.c64p.EventCombiner:错误:第229行:E_unpluginedEvent: Event# 74已拔下
[0.0000]    ti.sysbios.family.c64p.EventCombiner:第229行:e_unpluginedEvent:Event# 74已拔下
[0.0000]    xdc.runtime.Error.raise:终止执行

为什么有时会出现此问题? 有时、它运行良好。

我们的 DSP 工程师无法解决 此问题。

非常感谢。

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

    Linux 日志是 MMU 故障。 您能总结一下内核中所做的修改吗? 我想您使用的是定制硬件、因此您必须更改 Linux 内核源代码。 我对 cmem 变化特别感兴趣、您是否在 am57xx-evm-cme.dtsi 中重新定义了区域?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我们在适用于 VPE、3DGPU 和 DSP 的 am57xx-evmem.dtsi 中添加了 Block2。
    但是,有时在引导并进入登录显示后,DSP 固件会崩溃。 而我们不运行任何我们的过程。
    我们按如下方式发送 am57xx-evme-cmem.dtsi。

    /{
    保留存储器{
    #address-cells =<2>;
    大小单元格=<2>;
    范围;

    cmem_block_mem_0:cmem_block_mem@a0000000{
    REG =<0x0 0xa0000000 0x0 0x1000000>;
    无地图;
    状态="正常";
    };

    cmem_block_ocmc3:cmem_block_mem@4050000{
    REG =<0x0 0x40500000 0x0 0x100000>;
    无地图;
    状态="正常";
    };

    cmem_block_mem_1:cmem_block_mem@a1000000{
    reg =<0x0 0xa1000000 0x0 bb000000>;
    无地图;
    状态="正常";
    };

    };

    cmem{
    兼容="ti、cmem";
    #address-cells =<1>;
    #size-cells =<0>;

    #pool-size-cells =<2>;

    状态="正常";

    cmem_block_0:cmem_block@0{
    reg =<0>;
    memory-region =<&cmem_block_mem_0>;
    cmem-buf-Pools =<1 0x0 0x1000000>;
    };

    cmem_block_1:cmem_block@1{
    reg =<1>;
    memory-region =<&cmem_block_ocmc3>;
    };

    cmem_block_2:cmem_block@2{
    reg =<2>;
    memory-region =<&cmem_block_mem_1>;
    };
    };
    };
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉耽误你的时间。 让我看看这个、我将更新。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    DSP 工程师像以前一样编写代码,我修改后的代码。
    之前)
    #define DSP_MEM_TEXT 0x95004000
    /*与平铺机区域共同定位,以便于冲洗*/
    #define DSP_MEM_IOBUFS 0x80000000
    #define DSP_MEM_DATA 0x95104000
    #define DSP_MEM_HEAP 0x95204000
    (笑声)
    #define PHYS_MEM_IOBUFS 0xa1000000

    之后)
    #define DSP_MEM_TEXT 0x95000000
    /*与平铺机区域共同定位,以便于冲洗*/
    #define DSP_MEM_IOBUFS 0x80000000
    #define DSP_MEM_DATA 0x95100000
    #define DSP_MEM_HEAP 0x95200000
    (笑声)
    #define PHYS_MEM_IOBUFS 0xBA300000

    我注意到 DSP 固件每次都运行良好。
    我想知道以前的内容可能会发生 IO MMU 故障或连接超时。

    如果我们有自己的资源 talbe (McASP/EDMA、I2C、GPIO ...)、请访问 IPC Resource customTable 文档。 它说 Resource.customTable = true。
    但是、如果我指示 Resource.customTable = true、则会发生编译错误。 然后我不使用 Resource.customTable。

    但斯克很多