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.

how to debug MCFW hang?

I am running mcfw on our custom DM8148 board, it has 512MB ddr3.

The ipnc_rdk_mcfw.out runs fine on Appro reference design, but when I try to run it on our custom board, it always hang right here:

running load_vpss.sh
Attached to slave procId 2.
Loaded file ./firmware/ipnc_rdk_fw_m3vpss.xem3 on slave procId 2.
Started slave procId 2.
After Ipc_loadcallback status [0x00000000]
 [m3vpss ] ***** SYSTEM  : Frequency <ORG> - 200000000, <NEW> - 200000000
 [m3vpss ] notify_attach  rtnVal  0
 [m3vpss ] initProxyServer  rtnVal  0
 [m3vpss ]
 [m3vpss ]  *** UTILS: CPU KHz = 400000 Khz ***
 [m3vpss ]
 [m3vpss ]  93: SYSTEM  : System Common Init in progress !!!
 [m3vpss ]  93: SYSTEM: IPC init in progress !!!
 [m3vpss ]  93: SYSTEM: Attaching to [HOST] ...
 [m3vpss ]  1093: SYSTEM: Attaching to [HOST] ...
 [m3vpss ]  1096: SYSTEM: Attaching to [HOST] ... SUCCESS !!!
 [m3vpss ]  1096: SYSTEM: Attaching to [DSP] ...
After Ipc_startcallback status [0x097d2000]
running load_video.sh
Attached to slave procId 1.
Loaded file ./firmware/ipnc_rdk_fw_m3video.xem3 on slave procId 1.
Started slave procId 1.
After Ipc_loadcallback status [0x00000000]
 [m3video] ***** SYSTEM  : Frequency <ORG> - 200000000, <NEW> - 200000000
 [m3vpss ]  2095: SYSTEM: Attaching to [DSP] ...
 [m3video]
 [m3video]  *** UTILS: CPU KHz = 400000 Khz ***
 [m3video]
 [m3video]  1264: SYSTEM  : System Common Init in progress !!!
 [m3video]  1264: SYSTEM: IPC init in progress !!!
 [m3video]  1264: SYSTEM: Attaching to [HOST] ...
 [m3video]  2264: SYSTEM: Attaching to [HOST] ...
 [m3video]  2267: SYSTEM: Attaching to [HOST] ... SUCCESS !!!
 [m3video]  2267: SYSTEM: Attaching to [DSP] ...
After Ipc_startcallback status [0x00000000]
running load_c6xdsp.sh
Attached to slave procId 0.
Loaded file ./firmware/ipnc_rdk_fw_c6xdsp.xe674 on slave procId 0.
Started slave procId 0.
After Ipc_loadcallback status [0x00000000]

The kernel freezes at here. I can not get more debug info from it.

We are using a different YUV sensor, I created a new driver for it. but it appears we haven't got that far yet when it freezes.

  • I tracked it down to this line:

    status = Ipc_control (procId,  Ipc_CONTROLCMD_STARTCALLBACK, NULL);

    It freeze here when loading DSP firmware.

  • I was using syslink2.10.2.17 that comes with RDK1.8, I just downloaded syslink 2.10.8.35, it now timeouts at ipc_control(STARTCALLBACK), and is giving more error messges now:

    Attached to slave procId 0.
    *** ElfLoader_load: Failed to write args! (ensure .args section is big enough)
            Error [0x0] at Line no: 1962 in file /home/hongfeng/dm8148_workspace/IPNC_RDK2.8/Source/ti_tools/syslink_2_10_08_35/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/procMgr/common/loaders/Elf/ElfLoader.c
    Loaded file ./firmware/ipnc_rdk_fw_c6xdsp.xe674 on slave procId 0.
    Started slave procId 0.
    After Ipc_loadcallback status [0x00000000]

    *** Platform_startCallback: Ipc_attach timeout
            Error [0xffffffff] at Line no: 2847 in file /home/hongfeng/dm8148_workspace/IPNC_RDK2.8/Source/ti_tools/syslink_2_10_08_35/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/ti81xx/Platform.c
    *** Ipc_control: Platform_startCallback failed!
            Error [0xffffffff] at Line no: 858 in file /home/hongfeng/dm8148_workspace/IPNC_RDK2.8/Source/ti_tools/syslink_2_10_08_35/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/ipc/hlos/knl/Ipc.c
    Assertion at Line no: 308 in /home/hongfeng/dm8148_workspace/IPNC_RDK2.8/Source/ti_tools/syslink_2_10_08_35/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/ipc/hlos/knl/Linux/IpcDrv.c: (status >= 0) : failed

    Error in Ipc_control Ipc_CONTROLCMD_STARTCALLBACK [0xffffffff]

  • changed .args size to 0x200, this elimitated the args error, but it still times out: IPC_attach_timeout.

    I guess I have to connect the JTAG next.