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/TDA2EG-17:DSP1晚期连接失败

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/661153/linux-tda2eg-17-dsp1-late-attach-failed

器件型号:TDA2EG-17

工具/软件:Linux

尊敬的专家:

我使用的是具有 VisionSDK 2.12.2的 TDA2EX-17x17 SoC。 IPU2和 DSP1由 MLO 加载、用例使用4个凸轮正确运行。 但是在 Linux 中、在运行 vision_sdk_linux.out 后、我得到了以下结果:

root@dra7xx-EVM:/opt/vision_sdk ./vision_sdk_linux_demo.out
[host] OSA:MEM:0:将0x9fa00000映射到0x00100000
[host] OSA:MEM:1:将0x84203000映射到0xa6ffa000大小0x0fa00000
[host] OSA
:0x4000004:0xFA0003:0xFA0003映射
到0xFA0003:0xFA0003:0xFA000003:0xFA000003:0xFA000003 已将0x00000000映射到0x00000000 (大小为0x00000000
[主机]) OSA:主机远程日志共享存储器@ 0x9fb4f140
[主机] OSA:DSP1远程日志共享存储器@ 0x9fb769e0
[主机] OSA:IPU2远程日志共享存储器@ 0x9fc63da0
[主机] 52.083480 s:系统:系统 A15初始化!!
[主机][主机] 52.083572 s:系统:IPC:正在初始化!!
[主机][主机] 52.083572 s:系统:IPC:通知初始化正在进行!!
[主机][DSP1] 0.924205 s:***** DSP1固件构建时间22:20:51 2018年2月1
日[主机][DSP1] 0.924296 s:***系统:CPU 频率 、 
[主机][DSP1] 0.924510 s:System:System Common Init in Progress!!!
[主机][DSP1] 0.924693 s:系统:IPC 初始化正在进行!!!
[主机][DSP1] 0.924723 s:系统:连接至[IPU2]...
[主机][DSP1] 0.938723 s:系统:连接到[IPU2]... 成功!!!
[主机][DSP1] 0.938754 s:系统:通知寄存器到[IPU2]第0行、事件15...
[主机][DSP1] 0.938815 s:系统:通知初始化完成!!!
[主机][DSP1] 0.938998 s:系统:MSGQ 初始化完成!!!
[主机][DSP1] 0.9390s:系统:IPC 初始化完成!!!
[主机][DSP1] 0.940157 s:系统:系统通用初始化完成!!!
[主机][DSP1] 0.940187 s:系统:系统 DSP 正在进行中!!!
[主机][DSP1] 0.941072 s:系统:初始化 DSP 链接!!
[主机][DSP1] 0.941133 s:系统:SW 消息框消息池,可用消息计数= 1024
[主机][DSP1] 0.941133 s:系统:堆= local_L2 @ 0x00800000、总大小= 227264 B (221KB)、)
[主机][DSP1] 0.941194 s:系统:堆= local_DDR @ 0x00000000、总大小= 524288 B (512 KB)、)
[主机][DSP1] 0.957115 s:系统:正在初始化 DSP 链接... 完成了!!!
[主机][DSP1] 0.957146 s:系统:系统 DSP 初始化完成!!!
[主机][DSP1] 0.957207 s:系统--等待调用 IpcMgr_rpmsgStartup
[host][DSP1] 1.056518 s:系统--等待调用 IpcMgr_rpmsgStartup
[host][DSP1] 1.156530 s:系统--等待调用 IpcMgr_rpmsgStartup
[host][DSP1] 1.256511 s:系统--等待调用 IpcMgr_rpmsgStartup
[host][DSP1] 1.295522 s:utils:XMC_MPU:使用的段= 4
[主机][DSP1] 1.295583 s:系统:高速缓存:L1P = 32KB、L1D = 32KB、L2 = 32KB ... 启动后!!!
[主机][DSP1] 1.295613 s:系统:高速缓存:L1P = 32KB、L1D = 32KB、L2 = 32KB ... 通过应用程序更新后!!!
[主机][DSP1] 1.356524 s:系统--开始调用 IpcMgr_rpmsgStartup
[host][DSP1] 2.832275 s:IPC_IN_0:正在创建!!!
[主机][DSP1] 2.832763 s:IPC_IN_0:创建完成!!!
[主机][DSP1] 2.833038 s:算法:正在创建(algId = 0)!!!
[主机][DSP1] 2.874885 s:算法:创建完成(algId = 0)!!!
[主机][DSP1] 2.875068 s:IPC_OUT_0:正在创建!!!
[主机][DSP1] 2.875190 s:IPC_OUT_0:创建完成!!!
[主机][IPU2] 0.914414 s:***** IPU2固件构建时间22:22:07 2018年2月1
日[主机][IPU2] 0.914628 s:***系统:CPU 频率 、 
[主机][IPU2] 0.925821 s:系统:系统通用初始化正在进行!!!
[主机][IPU2] 0.936253 s:系统:IPC 初始化正在进行!!!
[主机][IPU2] 0.936344 s:系统:连接到[DSP1]...
[主机][IPU2] 0.938723 s:系统:连接到[DSP1]... 成功!!!
[主机][IPU2] 0.938815 s:系统:通知寄存器至[DSP1]第0行、事件15...
[主机][IPU2] 0.938998 s:系统:通知初始化完成!!!
[主机][IPU2] 0.940706 s:系统:MSGQ 初始化完成!!!
[主机][IPU2] 0.941255 s:系统:IPC 初始化完成!!!
[主机][IPU2] 0.948087 s:系统:系统通用初始化完成!!!
[主机][IPU2] 0.948209 s:系统:正在进行系统初始化!!
[主机][IPU2] 0.948270 s:系统:BSP Common Init In Progress!!!
[主机][IPU2] 0.948331 s:系统:BSP 通用初始化完成!!!
[主机][IPU2] 0.948392 s:系统:BSP 平台正在启动!!!
[主机][IPU2] 0.948484 s:系统:BSP 平台初始化完成!!!
[主机][IPU2] 0.948545 s:系统:FVID2正在进行中!!!
[主机][IPU2] 0.948697 s:系统:FVID2完成!!!
[主机][IPU2] 0.948758 s:系统:VPS Init In Progress!!!
[主机][IPU2] 0.948819 s:系统:启用 VPDMA 描述符内存地址转换[0xa0000000 -> 0x8000]
[主机][IPU2] 0.951656 s:*** VPDMA 固件正在加载... ***
[host][IPU2] 0.951778 s:VPDMA 固件地址= 0x9fc597c0
[host][IPU2] 0.951930 s:VPDMA 加载地址 = 0x4897d004
[主机][IPU2] 0.952022 s:VPDMA 固件版本= 0x4d0001b8
[host][IPU2] 0.952113 s:VPDMA 列表繁忙状态= 0x00000000
[主机][IPU2] 0.952205 s:*** VPDMA 固件加载成功***
[host][IPU2] 0.952510 s:*** VPDMA 固件正在加载... ***
[host][IPU2] 0.952601 s:VPDMA 固件地址= 0x9fc597c0
[host][IPU2] 0.952693 s:VPDMA 加载地址 = 0x489dd004
[host][IPU2] 0.952815 s:VPDMA 固件版本= 0x4d0001b8
[host][IPU2] 0.952906 s:VPDMA 列表繁忙状态= 0x00000000
[主机][IPU2] 0.952998 s:*** VPDMA 固件加载成功***
[host][IPU2] 0.987982 s:系统:VPS 初始化完成!!!
[主机][IPU2] 0.989721 s:utils:dma:Hwi 为 INT25创建!!!
[主机][IPU2] 0.989965 s:系统:正在初始化链接!!!
[主机][IPU2] 1.174647 s:系统:SW 消息框消息池,可用消息计数= 1024
[主机][IPU2] 1.174769 s:系统:堆= local_DDR @ 0x00000000、总大小= 262144 B (256KB)、)
[主机][IPU2] 1.175013 s:系统:堆= SR_OCMC @ 0x00000000、总大小= 0 B (0KB)、空闲 s)
[主机][IPU2] 1.175166 s:系统:堆= SR_DDR_cached @ 0x84203000、总大小= 262144000 B (250M)
[主机][IPU2] 1.175349 s:系统:堆= SR_DDR_NON_Cached @ bbfa00000,总大小= 1047040 B (0 MB),)
[host][IPU2] 1.200725 s:系统--等待调用 IpcMgr_rpmsgStartup
[host][IPU2] 1.292258 s:系统:正在初始化链接... 完成了!!!
[主机][IPU2] 1.295644 s:链:应用程序已启动!!!
[主机][IPU2] 1.308607 s:板:正在进行板初始化!!!
[主机][IPU2] 1.308759 s:系统--等待调用 IpcMgr_rpmsgStartup
[host][IPU2] 1.407887 s:系统--等待调用 IpcMgr_rpmsgStartup
[host][IPU2] 1.507899 s:系统--等待调用 IpcMgr_rpmsgStartup
[host][IPU2] 1.607881 s:系统--等待调用 IpcMgr_rpmsgStartup
[host][IPU2] 1.707893 s:系统--等待调用 IpcMgr_rpmsgStartup
[host][IPU2] 1.809064 s:系统--等待调用 IpcMgr_rpmsgStartup
[host][IPU2] 1.818398 s:板:板初始化完成!!!
[主机][IPU2] 1.818489 s:
[host][IPU2 ] 1.854938 s:ISSCAPTURE:正在创建!!!
[主机][IPU2] 2.362227 s:ISSCAPTURE:创建完成!!!
[主机][IPU2] 2.362563 s:VPE:正在创建!!!
[主机][IPU2] 2.830262 s:VPE:加载向下调节系数
[host][IPU2] 2.830567 s:VPE:系数加载... 完成了!!!
[主机][IPU2] 2.830811 s:VPE:创建完成!!!
[主机][IPU2] 2.831543 s:IPC_OUT_0:正在创建!!!
[主机][IPU2] 2.831970 s:IPC_OUT_0:创建完成!!!
[主机][IPU2] 2.832214 s:系统--等待调用 IpcMgr_rpmsgStartup
[host][IPU2] 2.875343 s:IPC_IN_0:正在创建!!!
[主机][IPU2] 2.876471 s:IPC_IN_0:创建完成!!!
[主机][IPU2] 2.876685 s:显示:正在创建!!!
[主机][IPU2] 2.877478 s:显示:创建完成!!!
[主机][IPU2] 2.877661 s:显示屏:正在启动!!!
[主机][IPU2] 2.877722 s:显示:开始完成!!!
[主机][IPU2] 2.878606 s:ISSCAPTURE:正在启动!!!
[主机][IPU2] 2.878972 s:ISSCAPTURE:启动完成!!!
[主机][IPU2] 2.931922 s:系统--开始调用 IpcMgr_rpmsgStartup
[host][IPU2] 5.930000 s:network_CTRL:正在启动服务器(端口=29170)!!!
[主机][IPU2] 5.930366 s:network_CTRL:正在启动服务器... 完成(端口=29170)!!!
[主机][IPU2] 20.155188 s:系统--调用结束 IpcMgr_rpmsgStartup
[host][IPU2] 20.155279 s:系统--开始调用 System_rpmsgInit
[host][IPU2] 20.157933 s:system -- end of call System_rpmsgInit
 assert (system_ipc.c|System_ipcInit|64)
[host][host ] 52.096352 s:系统:IPC:[IPU2]套接字绑定成功!!! (dst vproc = 1、Endpt = 81)
[主机][主机] 52.096382 s:系统:IPC:[IPU2]套接字信息(family = 41、dst proc id =-1、endpt = 81)!!!
[主机][主机] 52.096413 s:系统:IPC:[IPU2]套接字连接成功!!! (dst vproc = 1、Endpt = 80)
[主机][主机] 52.096413 s:系统:IPC:[IPU2]套接字信息(family = 41、dst proc id =-1、Endpt = 1024)!!!
[主机][主机] 52.096474 s:系统:IPC:[DSP1]套接字绑定失败(无效参数,22)!!!
[主机][主机] 52.096474 s:系统:IPC:[DSP1]通知 RX 通道创建失败(端点= 81)!!!

然后我检查了/sys/kernel/debug/remoteproc/remoteproc2/trace0:

root@dra7xx-EVM:/sys/kernel/debug/remoteproc/remoteproc2 cat *
40800000.dsp
已启用
运行(2)
[ 0.000] 25个资源条目、位于0x96000000
[ 0.432][t=0x0083fa1c] ti.ipc.family.vayu.virtqueue:vring:0 0x9f900000 (0x3000)
[ 0.432][
0.432][t=0x008402c5] ti.ipc.family.vayu.virtqueue:vring:1 0x9f904000 (0x3000)
[ 0.432][
0.432][t=0x00840964] ti.ipc.family.vayu.virtqueue:virtqueue_startup:vdev 状态:0x0
[ 0.432][
0.432][t=0x00840fa3] ti.ipc.family.vayu.virtqueue:virtqueue_startup:轮询 VDEV 状态...
[ 0.432] 

DSP1在 IpcMgr_rpmsgStartup 中被阻止、永远不会退出、而当.out 运行时、IPU2可以退出。 DSP1和 IPU2共享相同的代码:

void System_ipcConnecttoHLOS (void)
{
#ifdef A15_target_os_Linux
unsigned int state;
uint32 selProId = System_getSelfProCPId (void);
while (1)
{
RemoteLog_getAppInitState (selprintId、&state);
if (state!= core_app_init_init_prue_startup atus_prisp

)



;}gmsp
(sprisp = pn_startup (pn_prisp)}-rp (sprisp)- start)




vps_printf ("系统---调用 IpcMgr_rpmsgStartup\n");
vps_printf ("系统---开始调用 System_rpmsgInit\n");
#ifndef build_ARP32
System_rpmsgInit();
vps_printf ("系统--调用结束 System_rpmsgInit\n");
#endif
#endif

} 

我不确定为什么 DSP1在此行被阻止、而 trace0的含义是什么。 我应该深入研究哪个寄存器?

谢谢、致以最诚挚的问候!

ZM

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

    我已将您的问题转交给 IPC 专家。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果它卡在 virtqueue_startup 轮询 VDEV 状态中、则表示它正在等待状态(位于 IPC 共享存储器中)更改、以指示 IPC vrings 已由主机初始化并准备就绪。 主机(Linux)将设置此状态。

    您能否检查您的内核 DTS 和 u-boot 代码之间的 CMA 地址是否匹配、如此处所述?
    processors.wiki.ti.com/.../Early_Boot_and_Late_Attach_in_Linux

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

    最后我找到了原因:另一个 DSP1框架复制任务的优先级高于 System_ipcConnecttoHLOS 任务。 因此 IpcMgr_rpmsgStartup 不会随时运行。 正确的是、DSP1处于等待状态、错过了与 A15Linux 的握手。

    此致!
    ZM