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.

SK-AM62A-LP: IPC Init Issue

Part Number: SK-AM62A-LP

Hello,

We're currently attempting to run vision_apps demos on SITARA for QNX but we've ran into an issue - the IPC does not get initialised, resulting in hangs on graph verification (IPC between MPU and MCU1_0 fails).

Comparing our log with the log from docs, we notice that the IPC never gets to "Done" state, while in TI's logs "IPC: Waiting for HLOS to be ready ... !!!" is never printed out.

Our current log is:

[MCU1_0]      0.041292 s: APP: Init ... !!!
[MCU1_0]      0.041327 s: MEM: Init ... !!!
[MCU1_0]      0.041348 s: MEM: Created heap (DDR_LOCAL_MEM, id=0, flags=0x00000004) @ af000000 of size 16777216 bytes !!!
[MCU1_0]      0.041401 s: MEM: Init ... Done !!!
[MCU1_0]      0.041419 s: IPC: Init ... !!!
[MCU1_0]      0.041438 s: IPC: 3 CPUs participating in IPC !!!
[MCU1_0]      0.041751 s: IPC: Waiting for HLOS to be ready ... !!!
[MCU1_0]      0.046241 s: #Sciserver Version: v2023.06.0.0-REL.MCUSDK.09.00.00.14+
[MCU1_0]      0.049014 s: ##RM_PM_HAL Version: v09.00.05
[MCU1_0]      0.051961 s: ##Starting Sciserver..... PASSED

The log in the documentation is:

[MCU1_0] 1.113785 s: CIO: Init ... Done !!!
[MCU1_0] 1.113841 s: ### CPU Frequency = 800000000 Hz
[MCU1_0] 1.113864 s: APP: Init ... !!!
[MCU1_0] 1.113877 s: MEM: Init ... !!!
[MCU1_0] 1.113895 s: MEM: Created heap (DDR_LOCAL_MEM, id=0, flags=0x00000004) @ af000000 of size 16777216 bytes !!!
[MCU1_0] 1.113946 s: MEM: Init ... Done !!!
[MCU1_0] 1.113962 s: IPC: Init ... !!!
[MCU1_0] 1.113999 s: IPC: 3 CPUs participating in IPC !!!
[MCU1_0] 1.115241 s: IPC: Init ... Done !!!
[MCU1_0] 1.115269 s: APP: Syncing with 2 CPUs ... !!!
[MCU1_0] 1.115291 s: APP: Syncing with 2 CPUs ... Done !!!
[MCU1_0] 1.115328 s: REMOTE_SERVICE: Init ... !!!
[MCU1_0] 1.115826 s: REMOTE_SERVICE: Init ... Done !!!
[MCU1_0] 1.115855 s: FVID2: Init ... !!!
[MCU1_0] 1.115885 s: FVID2: Init ... Done !!!
[MCU1_0] 1.115902 s: VHWA: VPAC Init ... !!!
[MCU1_0] 1.115917 s: SCICLIENT: Sciclient_pmSetModuleState module=219 state=2
[MCU1_0] 1.116065 s: SCICLIENT: Sciclient_pmSetModuleState success
[MCU1_0] 1.116097 s: VHWA: LDC Init ... !!!
[MCU1_0] 1.116344 s: VHWA: LDC Init ... Done !!!
[MCU1_0] 1.116431 s: VHWA: MSC Init ... !!!
[MCU1_0] 1.117080 s: VHWA: MSC Init ... Done !!!
[MCU1_0] 1.117103 s: VHWA: VISS Init ... !!!
[MCU1_0] 1.117389 s: VHWA: VISS Init ... Done !!!
[MCU1_0] 1.117414 s: VHWA: VPAC Init ... Done !!!
[MCU1_0] 1.117492 s: VX_ZONE_INIT:Enabled
[MCU1_0] 1.117514 s: VX_ZONE_ERROR:Enabled
[MCU1_0] 1.117532 s: VX_ZONE_WARNING:Enabled
[MCU1_0] 1.118205 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target MCU1-0
[MCU1_0] 1.118314 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target VPAC_LDC1
[MCU1_0] 1.118405 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target VPAC_MSC1
[MCU1_0] 1.118499 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target VPAC_MSC2
[MCU1_0] 1.118600 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target VPAC_VISS1
[MCU1_0] 1.118632 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
[MCU1_0] 1.118653 s: APP: OpenVX Target kernel init ... !!!
[MCU1_0] 1.122696 s: APP: OpenVX Target kernel init ... Done !!!
[MCU1_0] 1.122723 s: VISS REMOTE SERVICE: Init ... !!!
[MCU1_0] 1.122769 s: VISS REMOTE SERVICE: Init ... Done !!!
[MCU1_0] 1.122812 s: APP: Init ... Done !!!
[MCU1_0] 1.122830 s: APP: Run ... !!!
[MCU1_0] 1.122843 s: IPC: Starting echo test ...
[MCU1_0] 1.123376 s: APP: Run ... Done !!!
[MCU1_0] 1.123485 s: IPC: Echo status: mpu1_0[x] mcu1_0[s] c7x_1[P]

We suspect this behaviour is caused by the tiboot3.bin file we're using - it's the prebuilt tiboot3.bin that comes with the SDK.

The SDK we're using is ti-processor-sdk-qnx_am62axx_09_00_00_01.

Thank you for your time!

Best regards

Hristo

  • Hello Hristo,

    I am reassigning your thread to our QNX contact to comment.

    I don't have any experience with QNX, but on the Linux side the remoteproc driver is used to initialize remote cores. So if this was a Linux problem I would check to make sure the correct binaries are getting loaded into each of the remote cores. At least in our default Linux image, we bundled multiple potential remote core binaries into the filesystem, so you had to be intentional about selecting the binary that you wanted to use.

    Again, this Linux link might not apply to QNX. But I'll attach it in case it is helpful for yall or future readers:
    https://dev.ti.com/tirex/explore/node?node=A__AX2DLf3J3o-JHYMSq7Eg0w__AM62A-ACADEMY__WeZ9SsL__LATEST 

    Regards,

    Nick

  • Hi Hristo,

    Seems the tispl.bin image in your SD Card is not correct. 

    Once you do "make sdk" in vision_apps repo, it generates the R5 and C7x side firmware also which are needed for IPC to work.

    After doing "make sdk", please run these scripts to copy the binaries into SD card directly:

        make qnx_fs_create_sd

        make qnx_fs_install_sd

    The above will copy the correct tispl.bin to the SD Card generated from vision_apps build. If you copy the pre-generated tispl.bin(one with SDK), IPC will not work with that -as those are Linux specific. You can give a try by directly running the above commands and testing it - no need to copy any binary from your side.

    Regards,

    Shiva