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:处理器 SDK 04.00.00.04上的 DSP 卸载故障

Guru**** 2576215 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/627404/linux-am5728-dsp-unload-failure-on-processor-sdk-04-00-00-04

器件型号:AM5728
主题中讨论的其他器件:BQ40Z60

工具/软件:Linux

我完成了对 Processor SDK 04.00.00.04的升级、并立即看到 Processor SDK 03.03.00.04不存在的问题。 每当我卸载 DSP 时、都会出现内核错误;请参阅下面的内容。 此时、我被踢回到登录提示符(奇数)、在我重新启动之前、我无法再使用 DSP。 我在下面的示例中没有运行自定义软件-它与内核模块加载和取消绑定节点之间的交互很简单。

如果有任何帮助、我们将不胜感激、因为这会使我的系统无法使用 Processor SDK 04.00.00.04。

谢谢!

bash-4.3# modprobe omap_remoteproc

bash-4.3# modprobe rpmsg_proto

bash-4.3# echo 40800000.dsp >/sys/bus/platform/drivers/omap-rproc/unbind
[127.973491]无法处理虚拟地址 e510607c 的内核分页请求
[127.980821] PgD = dcc55a80
[127.983583][e510607c]* PgD=80000080007003、* PMD=9d496003、* Pte=00000000
[127.990580]内部错误:Oops:A07 [#1]抢占 SMP ARM
[127.996091]链接到:rpmsg_proto virtio_rpmsg_bus rpmsg_core omap_remoteproc remotevirtio_ring virtipfgpfp_config hci_uart btbcm bnep RFCOMM 蓝牙 USB_f_pug_f_rNDIS composite dwue_extcon_mas pcip_mc_decc gp_c3 mc_c_dec_c2 u_c2 u_mcu t_c2 u_mcu t_gp_c2 u_cu t_c2 u_mcu cu cu cu cu cu cu cu cu cu cu cu cu cu cu cu cu cu cu cu cu cu c
[128.037832] CPU:0 PID:425 Comm:Bash 被污染:G WC 4.9.28-geed43d1050 #1
[128.045782]硬件名称:通用 DRA74X (平展器件树)
[128.051905]任务:dd72b700 task.stack:dd73a000
[128.056474] PC 位于 rproc_free_vring+0x10c/0x164 [remoteproc]
[128.062331] LR 位于0x0
[128.064875] PC:[ ] LR:[<000000000000>] PSR:60020013
[128.064875] sp:dd73bd00 ip:dcc5a9e0 fp:dd73bd3c
[128.076404] R10:e2fe6000 R9:c1207b8c R8:de293a10
[128.081650] r7:ddbeb400 r6:00003000 r5:e5106064 r4:ddbebdd8
[128.088206] r3:e5106064 r2:ffff r1:00000000 r0:00000064
[128.094763]标志:模式 SVC_32 ISA ARM 段用户上 FIQ 上的 nZCv IRQ
[128.101929(2010)控制:30c5387d 表:9cc55a80 DAC:fffffffffd
[ 128.107701]进程 bash (pid:425、栈限制= 0xdd73a218)
[128.113473]堆栈:(0xdd73bd00至0xdd73c000)
[128.117851] bd00:00000000 dd73a018 dd73bd54 e0000000 c0326ddc ddbebc00 ddbeb5ec ddbeb400
[128.126066] bd20:de293a10 00000000 c1207b8c 00100000 dd73bd54 dd73bd40 bf204310 bf204194
[128.134283] bd40:00000000 ddbeb5d4 dd73bdac dd73bd58 bf2047e0 bf2042f8 00000000 c0642004
[128.142498] bd60:de293a10 c1265ac8 e2e00000 ddbeb5d8 ddbeb658 ddbeb420 dd73bdac dd73bd88
[128.150711] bd80:bf211ba0 ddbeb5f4 ddbeb400 ddbeb5f4 ddbeb59c ddbeb5a4 ddbeb420 dcc70d0c
[128.158924] bda0:dd73bdd4 dd73bdb0 bf204f3c bf204370 de293a00 ddbe400 0000000d bf21341c
[128.167138] bdc0:dd73bf80 ddbc6000 dd73bdf4 dd73bdd8 bf2050c4 bf204eac bf2119b4 de293a00
[128.175351] bde0:ddbeb400 0000000d dd73be0c dd73bdf8 bf2119d0 bf205000 de293a10 de293a10
[128.183566] be00:dd73be24 dd73be10 c0639a74 bf2119c0 de293a10 bf21341c dd73be3c dd73be28
[128.191778] BE20:c0638258 c0639a54 de293a44 de293a10 dd73be54 dd73be40 c0638308 c06381d8
[128.199992] be40:c1233530 de293a10 dd73be74 dd73be58 c0636904 c06382f0 ddbc6000 dcc70d00
[128.208204] be60:00000000 dd73be84 dd73be78 c0635ea8 c0636890 dd73be9c dd73be88
[128.216416] be80:c03ab340 c0635e8c dd67b8c4 0000000d dd73bedc dd73bea0 c03aab0c c03ab300
[128.224630] bea0:00000000 00000000 de0d53d0 00000000 697302a5 dcc5c540 dd73bf80 00148408
[128.232846] bec0:dd73bf80 0000000d dd73a000 00000000 dd73bf4c dd73bee0 c0336fd0 c03aaa3c
[128.241059] bee0:00000000 0000000a dd4e8d00 dcc55b00 00060003 00000000 0000000d 00000000
[128.249276] bf00:dcc5c540 00000001 dd73bf4c dd73bf18 c0337b94 c04c3664 00000000 0000040f
[128.257488] bf20:00000001 dd4e8d00 0000000d 0000000d dcc5c540 00148408 dd73bf80 c0207ca4
[128.265700] bf40:dd73bf7c dd73bf50 c0337e00 c0336afer c0335534 c033975c dcc5c540 dcc5c540
[128.273912] bf60:0000000d 00148408 c0207ca4 dd73a000 dd73bfa4 dd73bf80 c0338bfc c0337d60
[128.282124] bf80:00000000 00000000 0000000d 00148408 b6eeed60 00000004 00000000 dd73bfa8
[128.290335] bfa0:c0207b00 c0338bbc 0000000d 00148408 00000001 00148408 0000000d 00000000
[128.298549] bfc0:0000000d 00148408 b6eeed60 00000004 00000000 00000000 b6f4a000 bec33b84
[128.306762] bfe0:00000000 bec33adc b6e2646c b6e7e39c 60020010 00000001 00000000 00000000
[128.314973]回溯:
[128.317464][ ](rproc_free_vring [remoteproc])、来自[ ](rproc_vdev_release+0x24/0x78 [remoteproc])
[128.328210] R10:00100000 R9:c1207b8c R8:00000000 r7:de293a10 R6:ddbeb400 R5:ddbeb5ec
[128.336075] R4:ddbebc00
[128.338643][ ](rproc_vdev_release [remoteproc])从[ ](rproc_resource_clean+0x47c/0x53c [remoteproc])
[128.350082] R4:ddbeb5d4 R3:00000000
[128.353697][ ](rproc_resource_clean[remoteproc])、来自[ ](rproc_shutdown +0x9C/0x154 [remoteproc])
[128.364704] R10:dcc70d0c R9:ddbeb420 R8:ddbeb5a4 r7:ddbeb59c R6:ddbeb5f4 R5:ddbeb400
[128.372568] R4:ddbeb5f4
[128.375136][ ](rproc_shutdown [remoteproc])、从[ ](rproc_del+0xd0/0xdc [remoteproc])
[128.384921] R9:ddbc6000 R8:dd73bf80 r7:bf21341c R6:0000000d R5:ddbeb400 R4:de293a00
[128.392717][ ](rproc_del [remoteproc])、来自[ ](omap_rproc_remove+0x1c/0x34 [omap_remoteproc])
[128.403197] R6:0000000d R5:ddbeb400 R4:de293a00 R3:bf2119b4
[128.408893][ ](omap_rproc_remove [omap_remoteproc])从[ ](platform_drv_remove+0x2C/0x44)
[128.419112] R5:de293a10 R4:de293a10
[128.422707][ ](platform_drv_remove)从[ ](__DEVICE_RELEASE_DRIVER+0x8c/0x118)
[128.431964] R5:bf21341c R4:de293a10
[128.4355556][ ](_device_release_driver)从[ ](DEVICE_RELEASE_DRIVER+0x24/0x30)
[128.44492] R5:de293a10 R4:de293a44
[128.448496][ ](DEVICE_RELEASE_DRIVER)从[ ](unbind_store+0x80/0x100)
[128.456970] R5:de293a10 R4:c1233530
[128.460566][ ](unbind_store)从[ ](drv_attr_store+0x28/0x34)
[128.468343] r7:00000000 R6:00000000 R5:dcc70d00 R4:ddbc6000
[ 128.474035][ ](drv_attr_store)、来自[ ](sysfs_KF_write+0x4c/0x50)
[128.481992][ ](sysfs_KF_write)、来自[ ](kernfs_fop_write+0xdc/0x1e4)
[128.490203] R4:0000000d R3:dd67b8c4
[128.493799][ ](kernfs_fop_write)、来自[ ](_vfs_write+0x30/0x120)
[128.501755] R10:00000000 R9:dd73a000 R8:0000000d r7:dd73bf80 R6:00148408 R5:dd73bf80
[128.509616] R4:dcc5c540
[128.512162][ ](_vfs_write)、来自[ ](vfs_write+0xac/0x16c)
[128.519504] R8:c0207ca4 r7:dd73bf80 R6:00148408 R5:dcc5c540 R4:0000000d
[128.526236][ ](vfs_write)从[ ](sys_write+0x4c/0xa8)
[128.533316] R9:dd73a000 R8:c0207ca4 r7:00148408 R6:0000000d R5:dcc5c540 R4:dcc5c540
[128.541100][ ](sys_write)从[ ](RET_FAST_SYSCALL+0x0/0x34)
[128.548702] r7:00000004 r6:b6eeed60 r5:00148408 r4:0000000d
[128.554387]代码:e3e02000 e5900218 e0833000 e0835105 (e5c51018)
[128.562695]--[结束线迹97f93c9087233425]--

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

    您是否正在使用 AM572x GP EVM? 还是这是定制板?

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

    [引用用户="Yordan Kovachev"]  

    您是否正在使用 AM572x GP EVM? 还是这是定制板?

    [/报价]

    这在我们的定制板上。

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

    您的电路板上有多少 DDR? 您是否修改了 am57xx-evme-cmem.dtsi?
    此外、您如何在 DTS 中定义存储器:
    存储器@0{
    DEVICE_TYPE ="存储器";
    REG =<0x0 0x8000000000 0x0 0x8000000000>;
    };

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

    ipu2_CMA_pool:ipu2_CMA@95800000{
    兼容="共享 dma-pool ";
    REG =<0x0 0x95800000 0x0 0x3800000>;
    可重复使用;
    状态="正常";
    };

    dsp1_CMA_pool:dsp1_CMA@99000000{
    兼容="共享 dma-pool ";
    REG =<0x0 0x99000000 0x0 0x4000000>;
    可重复使用;
    状态="正常";
    };

    ipu1_CMA_pool:ipu1_CMA@9d000000{
    兼容="共享 dma-pool ";
    reg =<0x0 0x9d000000 0x0 0x2000000>;
    可重复使用;
    状态="正常";
    };

    dsp2_CMA_pool:dsp2_CMA@9f000000{
    兼容="共享 dma-pool ";
    REG =<0x0 0x9f000000 0x0 0x800000>;
    可重复使用;
    状态="正常";
    };
    };

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

    您好、Gerard、

    您是否从 NAND 引导内核? 当 ubi 映像太大而无法放入 NAND 时、症状看起来就像。  

    雷克斯

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

    [引用 user="Rex Chang"]

    您是否从 NAND 引导内核? 当 ubi 映像太大而无法放入 NAND 时、症状看起来就像。  

    [/报价]
    不、我们从 eMMC 引导内核。  


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

    您是否介意将控制台日志与 printenv 信息和完整的内核引导日志附加在一起。 内核未引导至登录提示、但显示了"Bash-3.4#"、我们看到类似的症状、但在其他平台上使用 NAND 引导。 我想获取您的信息、看看我们是否可以将其缩小为内核问题或与其他 NAND 启动不同的问题。

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

    [引用用户="Yordan Kovachev"]
    您的电路板上有多少 DDR? 您是否修改了 am57xx-evme-cmem.dtsi?
    [/报价]

    我们的板上有4GB 的 DDR。 我已修改我们的自定义*cmem.dtsi 文件:

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

    /* 0xf000_0000 - 0xf0ffff */
    cmem_block_mem_0:cmem_block_mem@f0000000{
    REG =<0x0 0xf0000000 0x0 0x01000000>;
    无地图;
    状态="正常";
    };

    /* 0xf100_0000 - 0xf1ffff */
    cmem_block_mem_1:cmem_block_mem@f1000000{
    REG =<0x0 0xf1000000 0x0 0x01000000>;
    无地图;
    状态="正常";
    };

    };

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

    #pool-size-cells =<2>;

    状态="正常";

    /*池0 - DSP1的 FPGA 缓冲器*/
    cmem_block_0:cmem_block@0{
    reg =<0>;
    memory-region =<&cmem_block_mem_0>;
    cmem-buf-Pools =<1 0x0 0x01000000>;
    };

    /*池1 - DSP2的 FPGA 缓冲器*/
    cmem_block_1:cmem_block@1{
    reg =<1>;
    memory-region =<&cmem_block_mem_1>;
    cmem-buf-Pools =<1 0x0 0x01000000>;
    };

    };
    };

    [引用用户="Yordan Kovachev"]
    此外、您如何在 DTS 中定义存储器:
    存储器@0{
    DEVICE_TYPE ="存储器";
    REG =<0x0 0x8000000000 0x0 0x8000000000>;
    };

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

    ipu2_CMA_pool:ipu2_CMA@95800000{
    兼容="共享 dma-pool ";
    REG =<0x0 0x95800000 0x0 0x3800000>;
    可重复使用;
    状态="正常";
    };

    dsp1_CMA_pool:dsp1_CMA@99000000{
    兼容="共享 dma-pool ";
    REG =<0x0 0x99000000 0x0 0x4000000>;
    可重复使用;
    状态="正常";
    };

    ipu1_CMA_pool:ipu1_CMA@9d000000{
    兼容="共享 dma-pool ";
    reg =<0x0 0x9d000000 0x0 0x2000000>;
    可重复使用;
    状态="正常";
    };

    dsp2_CMA_pool:dsp2_CMA@9f000000{
    兼容="共享 dma-pool ";
    REG =<0x0 0x9f000000 0x0 0x800000>;
    可重复使用;
    状态="正常";
    };
    };
    [/报价]

    以下是存储器定义:

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

    /* 0xe000 0000 - 0xe7ff FFFF */
    dsp1_CMA_pool:dsp1_CMA@e0000000{
    兼容="共享 dma-pool ";
    reg =<0x0 0xe0000000 0x0 0x8000000>;
    可重复使用;
    状态="正常";
    };

    /* 0xe800 0000 - 0xefff FFFF */
    dsp2_CMA_pool:dsp2_CMA@e80000{
    兼容="共享 dma-pool ";
    reg =<0x0 0xe8000000 0x0 0x8000000 >;
    可重复使用;
    状态="正常";
    };

    ipu1_CMA_pool:ipu1_CMA@df000000{
    兼容="共享 dma-pool ";
    reg =<0x0 0xdf000000 0x0 0x800000>;
    可重复使用;
    状态="正常";
    };

    ipu2_CMA_pool:ipu2_CMA@df800000{
    兼容="共享 dma-pool ";
    REG =<0x0 0xdf800000 0x0 0x800000>;
    可重复使用;
    状态="正常";
    };
    };

    谢谢

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

    如果我正确读取了它、您可以将 cmem 块0用于 DSP1的 FPGA 缓冲器、将块1用于 DSP2的 FPGA 缓冲器。 请参阅7月6日此主题 e2e.ti.com/.../604490中的帖子。 应避免前2个 cmem 块。

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

    [引用 user="Rex Chang"]
    如果我正确读取了它、您可以将 cmem 块0用于 DSP1的 FPGA 缓冲器、将块1用于 DSP2的 FPGA 缓冲器。 请参阅7月6日此主题 e2e.ti.com/.../604490中的帖子。 应避免前2个 cmem 块。  

    [/报价]

    我们不使用 OpenCL。 我们一直在使用先前针对所有 Processor SDK 发布的 cmem 配置;这是不是一项新要求?

    此外、我看到现在有04.01处理器 SDK -您是否希望该版本的问题具有更好的行为?

    谢谢

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

    ProcSDK 3.3中引入了 TI-mctd 守护进程、并始终保留前2个 CMEM 块。 它在启动时启动并从 ProcSDK 4.0开始、根据/etc/ti-mctd/ti_mctd_config.json.保留 cmem 块 能否检查 ti-mctd 是否正在运行? 如果未运行、是的、您可以使用前2个块。

    雷克斯