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.

PROCESSOR-SDK-J7200: running an MCU-app in parallel to Linux, using SDK-Linux-version 10.01.08.01

Part Number: PROCESSOR-SDK-J7200

Tool/software:

Hello experts,

we have a J7200 evaluation board and we want to run Linux in parallel with a custom MCU-R5F-firmware. To achieve this goal, we were dealing with building U-Boot and the SPL from the J7200-Linux-SDK, version 10.01.08.01, because as we understood it, the file tispl.bin contains the application for the MCU-unit, the R5 DM FW according to 3.1.1.1 in the SDK’s Software Developer’s Guide.

So, our question is, what needs to be done in order to use our custom MCU-R5F-application in parallel to Linux?

Or do you maybe know where a suitable how-to-guide or example could be found?

Much of the information on the topic that we found so far seems to be a somewhat outdated.

  • Hello,

    From the above description i understood that you want to build your own custom DM binary to run on the MCU domain R5F.

    What's the additional functionality that you wanted to introduce on top of the DM?

    Best Regards,

    Keerthy 

  • Okay, so now I figured out, how to make an R5-MCU application run with SPL: I basically set it as ti-dm in the k3-j7200-binman.dtsi-file.

    However, I encountered another problem: When using a custom binary built by using the RTOS-SDK, instead of the default one (board-support/prebuilt-images/ti-dm/j7200/ipc_echo_testb_mcu1_0_release_strip.xer5f) the boot process fails.

     

    U-Boot SPL 2024.04-ti-ga970f6e51043 (Nov 13 2024 - 14:26:23 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.6--v10.01.06 (Fiery Fox)')
    Trying to boot from MMC2
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Loading Environment from nowhere... OK
    ## No elf image at address 0x89000000
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.12.0(release):11.00.09-dirty
    NOTICE:  BL31: Built : 12:35:58, Mar 24 2025
    ERROR:   Timeout waiting for thread SP_RESPONSE to fill
    ERROR:   Thread SP_RESPONSE verification failed (-60)
    ERROR:   Message receive failed (-60)
    ERROR:   Failed to get response (-60)
    ERROR:   Transfer send failed (-60)
    ERROR:   Timeout waiting for thread SP_RESPONSE to fill
    ERROR:   Thread SP_RESPONSE verification failed (-60)
    ERROR:   Message receive failed (-60)
    ERROR:   Failed to get response (-60)
    ERROR:   Transfer send failed (-60)
    ERROR:   Unable to query firmware capabilities (-60)
    I/TC:
    I/TC: OP-TEE version: 4.5.0-73-gef1ebdc23-dev (gcc version 13.3.0 (GCC)) #1 Tue Feb  4 11:33:18 UTC 2025 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    E/TC:0 0 k3_sec_proxy_verify_thread:108 Queue is busy
    E/TC:0 0 k3_sec_proxy_recv:196 Thread SEC_PROXY_RESPONSE_THREAD verification failed. ret = -65523
    E/TC:0 0 ti_sci_do_xfer:120 Message receive failed (-65523)
    E/TC:0 0 ti_sci_init:480 Unable to communicate with control firmware (-65523)
    E/TC:0 0 do_init_calls:22 early_initcall __text_start + 0x00072db8 failed
    E/TC:0 0 k3_sec_proxy_verify_thread:108 Queue is busy
    E/TC:0 0 k3_sec_proxy_recv:196 Thread SEC_PROXY_RESPONSE_THREAD verification failed. ret = -65523
    E/TC:0 0 ti_sci_do_xfer:120 Message receive failed (-65523)
    E/TC:0 0 sa2ul_init:61 Failed to get SA2UL device
    E/TC:0 0 do_init_calls:22 service_initcall __text_start + 0x00073120 failed
    E/TC:0 0 k3_sec_proxy_verify_thread:108 Queue is busy
    E/TC:0 0 k3_sec_proxy_recv:196 Thread SEC_PROXY_RESPONSE_THREAD verification failed. ret = -65523
    E/TC:0 0 ti_sci_do_xfer:120 Message receive failed (-65523)
    E/TC:0 0 k3_sec_proxy_verify_thread:108 Queue is busy
    E/TC:0 0 k3_sec_proxy_recv:196 Thread SEC_PROXY_RESPONSE_THREAD verification failed. ret = -65523
    E/TC:0 0 ti_sci_do_xfer:120 Message receive failed (-65523)
    E/TC:0 0 k3_sec_proxy_verify_thread:108 Queue is busy
    E/TC:0 0 k3_sec_proxy_recv:196 Thread SEC_PROXY_RESPONSE_THREAD verification failed. ret = -65523
    E/TC:0 0 ti_sci_do_xfer:120 Message receive failed (-65523)
    E/TC:0 0 tee_otp_get_hw_unique_key:104 Could not get HUK
    E/TC:0 0 do_init_calls:22 service_initcall __text_start + 0x00073148 failed
    E/TC:0 0
    E/TC:0 0 Core data-abort at address 0x14 (translation fault)
    E/TC:0 0  esr 0x96000005  ttbr0 0x9e8af000   ttbr1 0x00000000   cidr 0x0
    E/TC:0 0  cpu #0          cpsr 0x600003c4
    E/TC:0 0  x0  000000009e877000 x1  0000000000000000
    E/TC:0 0  x2  0000000000000000 x3  0000000000000000
    E/TC:0 0  x4  0000000000000030 x5  000000009e876d78
    E/TC:0 0  x6  00000000fffffff0 x7  00000000ffffffe8
    E/TC:0 0  x8  0000000000000008 x9  000000009e89fd00
    E/TC:0 0  x10 000000009e884040 x11 0000000000000008
    E/TC:0 0  x12 0000000000000020 x13 000000009e89fc70
    E/TC:0 0  x14 0000000000000000 x15 0000000000000000
    E/TC:0 0  x16 000000009e81c26c x17 0000000000000000
    E/TC:0 0  x18 0000000000000000 x19 000000009e8a0000
    E/TC:0 0  x20 000000009e8a0008 x21 000000009e877000
    E/TC:0 0  x22 000000009e877000 x23 000000009e877ef0
    E/TC:0 0  x24 000000009e876db0 x25 0000000000000000
    E/TC:0 0  x26 0000000000000000 x27 0000000000000000
    E/TC:0 0  x28 0000000000000000 x29 000000009e89ff90
    E/TC:0 0  x30 000000009e816984 elr 000000009e816994
    E/TC:0 0  sp_el0 000000009e89ff90
    E/TC:0 0 TEE load address @ 0x9e800000
    E/TC:0 0 Call stack:
    E/TC:0 0  0x9e816994
    E/TC:0 0  0x9e807c88
    E/TC:0 0  0x9e821d3c
    E/TC:0 0 Panic 'unhandled pageable abort' at /usr/src/debug/optee-os/4.5.0+git/core/arch/arm/kernel/abort.c:582 <abort_handler>
    E/TC:0 0 TEE load address @ 0x9e800000
    E/TC:0 0 Call stack:
    E/TC:0 0  0x9e8080fc
    E/TC:0 0  0x9e81e7d4
    E/TC:0 0  0x9e807854
    E/TC:0 0  0x9e804a68

    Do you know how to resolve that issue?

  • Hi,

    Can you undo any of your custom changes and just build the default ipc_echo_testb_mcu1_0_release_strip.xer5f?

    Then try to boot. It should boot. The above crash is most likely as DM(Device manager aka ipc_echo_testb_mcu1_0_release_strip.xer5f) is not working and not responding to other cores requests.

    - Keerthy