TDA4VL-Q1: device can not bootup after updating MCU (DM) R5F firmware binary, tispl.bin

Part Number: TDA4VL-Q1

Tool/software:

Dear TI, 

About the mainmcu image of J721S2 TDA4AL,

I would like to use my own mcu image and load it under SPL stage of mcu part.

after i replace the ipc_echo_testb_mcu1_0_release_strip.xer5f with my build xer5f and rebuild the tispl.bin and tiboot3.bin

The new tispl.bin have bigger size.

However, i try to bootup device i found fillowing error.

I had try to enlarge the CONFIG_SPL_SYS_MALLOC_SIZE of ti-u-boot

Do you have any comment about it?

U-Boot MCU SPL 2024.04-ti-gd1e3aedf631f (Jan 05 2025 - 10:22:33 +0000)
SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
EEPROM not available at 0x50, trying to read at 0x51
Reading on-board EEPROM at 0x51 failed -121
SPL initial stack usage: 13456 bytes
Trying to boot from MMC2
alloc space exhausted
Could not get FIT buffer of 6225216 bytes
        check CONFIG_SPL_SYS_MALLOC_SIZE ttt (0x1000000)

and the bootup failed as following log

log0105.txt
U-Boot MCU SPL 2024.04-ti-gd1e3aedf631f (Jan 05 2025 - 10:22:33 +0000)
SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
EEPROM not available at 0x50, trying to read at 0x51
Reading on-board EEPROM at 0x51 failed -121
SPL initial stack usage: 13456 bytes
Trying to boot from MMC2
alloc space exhausted
Could not get FIT buffer of 6225216 bytes
        check CONFIG_SPL_SYS_MALLOC_SIZE ttt (0x1000000)
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
Starting ATF on ARM64 core...

NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
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.2.0-dev (gcc version 13.3.0 (GCC)) #1 Fri Apr 12 09:51:21 UTC 2024 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_get_response:101 Message receive failed (-65523)
E/TC:0 0 ti_sci_do_xfer:150 Failed to get response (-65523)
E/TC:0 0 ti_sci_init:486 Unable to communicate with control firmware (-65523)
E/TC:0 0 call_initcalls:43 Initcall __text_start + 0x00070af8 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_get_response:101 Message receive failed (-65523)
E/TC:0 0 ti_sci_do_xfer:150 Failed to get response (-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_get_response:101 Message receive failed (-65523)
E/TC:0 0 ti_sci_do_xfer:150 Failed to get response (-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_get_response:101 Message receive failed (-65523)
E/TC:0 0 ti_sci_do_xfer:150 Failed to get response (-65523)
E/TC:0 0 tee_otp_get_hw_unique_key:97 Could not get HUK
E/TC:0 0 call_initcalls:43 Initcall __text_start + 0x00070b20 failed
I/TC: Activated SA2UL device
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_get_response:101 Message receive failed (-65523)
E/TC:0 0 ti_sci_do_xfer:150 Failed to get response (-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_get_response:101 Message receive failed (-65523)
E/TC:0 0 ti_sci_do_xfer:150 Failed to get response (-65523)
E/TC:0 0 sa2ul_init:106 Could not change TRNG firewall owner
E/TC:0 0 call_initcalls:43 Initcall __text_start + 0x00070b28 failed
E/TC:0 0
E/TC:0 0 Core data-abort at address 0x14 (translation fault)
E/TC:0 0  esr 0x96000005  ttbr0 0x9e8a2000   ttbr1 0x00000000   cidr 0x0
E/TC:0 0  cpu #0          cpsr 0x600003c4
E/TC:0 0  x0  000000009e875000 x1  0000000000000000
E/TC:0 0  x2  0000000000000000 x3  0000000000000000
E/TC:0 0  x4  0000000000000050 x5  000000009e892d70
E/TC:0 0  x6  ffffffffffffffb0 x7  0000000000010cb0
E/TC:0 0  x8  0000000000010cb0 x9  000000009e892f80
E/TC:0 0  x10 000000009e882070 x11 0000000000000008
E/TC:0 0  x12 0000000000000000 x13 000000009e8a3e60
E/TC:0 0  x14 0000000000000000 x15 0000000000000000
E/TC:0 0  x16 000000009e81cb90 x17 0000000000000000
E/TC:0 0  x18 0000000000000000 x19 000000009e8a41e0
E/TC:0 0  x20 000000009e8a41e8 x21 000000009e875000
E/TC:0 0  x22 000000009e875000 x23 000000009e875f00
E/TC:0 0  x24 000000009e874dc0 x25 0000000000000000
E/TC:0 0  x26 0000000000000000 x27 0000000000000000
E/TC:0 0  x28 0000000000000000 x29 000000009e8a4170
E/TC:0 0  x30 000000009e817350 elr 000000009e817360
E/TC:0 0  sp_el0 000000009e8a4170
E/TC:0 0 TEE load address @ 0x9e800000
E/TC:0 0 Call stack:
E/TC:0 0  0x9e817360
E/TC:0 0  0x9e807ca0
E/TC:0 0  0x9e822530
E/TC:0 0  0x9e807e9c
E/TC:0 0 Panic 'unhandled pageable abort' at /usr/src/debug/optee-os/4.2.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  0x9e80817c
E/TC:0 0  0x9e81eff4
E/TC:0 0  0x9e807884
E/TC:0 0  0x9e804a68

  • Dear TI,

    If i flash the image to emmc and bootup from emmc, i got another error as following

    U-Boot MCU FIH SPL 2024.04-ti-gd1e3aedf631f (Apr 05 2011 - 23:00:00 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    SPL initial stack usage: 13456 bytes
    Trying to boot from MMC1
    alloc space exhausted
    Could not get FIT buffer of 2815488 bytes
            check CONFIG_SPL_SYS_MALLOC_SIZE (0x1000000)
    mmc_load_image_raw_sector: mmc block read error
    Partition 1 invalid on device 0
    spl_register_fat_device: fat register err - -1
    spl_load_image_fat: error reading image tispl.bin, err - -1
    spl: no partition table found
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###
    

  • Dear TI

    I use xxxxx_strip.xer5f file as a dm fw, device will not have "alloc space exhausted" error,

    However, there are other error appear as following

    Please help to check, thank you very much

    U-Boot MCU FIH SPL 2024.04-ti-gd1e3aedf631f (Jan 06 2025 - 03:53:32 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    SPL initial stack usage: 13456 bytes
    Trying to boot from MMC1
    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
    init_env from device 17 not supported!
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
    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.2.0-dev (gcc version 13.3.0 (GCC)) #1 Fri Apr 12 09:51:21 UTC 2024 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_get_response:101 Message receive failed (-65523)
    E/TC:0 0 ti_sci_do_xfer:150 Failed to get response (-65523)
    E/TC:0 0 ti_sci_init:486 Unable to communicate with control firmware (-65523)
    E/TC:0 0 call_initcalls:43 Initcall __text_start + 0x00070af8 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_get_response:101 Message receive failed (-65523)
    E/TC:0 0 ti_sci_do_xfer:150 Failed to get response (-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_get_response:101 Message receive failed (-65523)
    E/TC:0 0 ti_sci_do_xfer:150 Failed to get response (-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_get_response:101 Message receive failed (-65523)
    E/TC:0 0 ti_sci_do_xfer:150 Failed to get response (-65523)
    E/TC:0 0 tee_otp_get_hw_unique_key:97 Could not get HUK
    E/TC:0 0 call_initcalls:43 Initcall __text_start + 0x00070b20 failed
    I/TC: Activated SA2UL device
    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_get_response:101 Message receive failed (-65523)
    E/TC:0 0 ti_sci_do_xfer:150 Failed to get response (-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_get_response:101 Message receive failed (-65523)
    E/TC:0 0 ti_sci_do_xfer:150 Failed to get response (-65523)
    E/TC:0 0 sa2ul_init:106 Could not change TRNG firewall owner
    E/TC:0 0 call_initcalls:43 Initcall __text_start + 0x00070b28 failed
    E/TC:0 0
    E/TC:0 0 Core data-abort at address 0x14 (translation fault)
    E/TC:0 0  esr 0x96000005  ttbr0 0x9e8a2000   ttbr1 0x00000000   cidr 0x0
    E/TC:0 0  cpu #0          cpsr 0x600003c4
    E/TC:0 0  x0  000000009e875000 x1  0000000000000000
    E/TC:0 0  x2  0000000000000000 x3  0000000000000000
    E/TC:0 0  x4  0000000000000050 x5  000000009e892d70
    E/TC:0 0  x6  ffffffffffffffb0 x7  0000000000010cb0
    E/TC:0 0  x8  0000000000010cb0 x9  000000009e892f80
    E/TC:0 0  x10 000000009e882070 x11 0000000000000008
    E/TC:0 0  x12 0000000000000000 x13 000000009e8a3e60
    E/TC:0 0  x14 0000000000000000 x15 0000000000000000
    E/TC:0 0  x16 000000009e81cb90 x17 0000000000000000
    E/TC:0 0  x18 0000000000000000 x19 000000009e8a41e0
    E/TC:0 0  x20 000000009e8a41e8 x21 000000009e875000
    E/TC:0 0  x22 000000009e875000 x23 000000009e875f00
    E/TC:0 0  x24 000000009e874dc0 x25 0000000000000000
    E/TC:0 0  x26 0000000000000000 x27 0000000000000000
    E/TC:0 0  x28 0000000000000000 x29 000000009e8a4170
    E/TC:0 0  x30 000000009e817350 elr 000000009e817360
    E/TC:0 0  sp_el0 000000009e8a4170
    E/TC:0 0 TEE load address @ 0x9e800000
    E/TC:0 0 Call stack:
    E/TC:0 0  0x9e817360
    E/TC:0 0  0x9e807ca0
    E/TC:0 0  0x9e822530
    E/TC:0 0  0x9e807e9c
    E/TC:0 0 Panic 'unhandled pageable abort' at /usr/src/debug/optee-os/4.2.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  0x9e80817c
    E/TC:0 0  0x9e81eff4
    E/TC:0 0  0x9e807884
    E/TC:0 0  0x9e804a68
    

  • Hello Daniel,

    Which SDK you are using ? Are you building same SDK version of .xer5f ?

    and also i see you built ipc baremetal example, MCU1_0 should run sci server along with IPC task then only it will work.so you need to build freertos based example.

     Follow the below steps correctly ?

    1. Go to linux installer and replace the existing R5F MCU (DM) firmware binary with the new one

    host#  cp <path_to_new_fw_binary>/ipc_echo_testb_freertos_mcu1_0_release.xer5f <path_to_linux_installer>/board-support/prebuilt-images/ti-dm/j721e/ipc_echo_testb_mcu1_0_release_strip.xer5f
    
    1. Recompile u-boot to regenerate tispl.bin using the top level makefile.

    host# make u-boot
    

    Please refer to Top-Level Makefile for more details on Top Level makefile.

    1. Replace the updated tispl.bin containing new R5F firmware binary in the boot partition of sdcard and reboot

    host# sudo cp board-support/u-boot_build/A72/tispl.bin  /media/$USER/boot

     

    Regards

    Tarun Mukesh

  • Dear Tarun Mukesh

    Which SDK you are using ? Are you building same SDK version of .xer5f ?

    ==>pdk_j721s2_10_00_00_27

    We use yocto build and i build the ipc_rtos_echo_test_freertos and copy ipc_rtos_echo_test_freertos_mcu1_0_release_strip.xer5f to dm-fw 

    under yocto-build\sources\meta-ti\meta-ti-bsp\recipes-bsp\ti-dm-fw by ti-dm-fw.bb.

    What do you mean that "you need to build freertos based example"?

    and, what does following log mean?

    NOTICE: BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    NOTICE: BL31: Built : 16:09:05, Feb 9 2024
    ERROR: Timeout waiting for thread SP_RESPONSE to fill
    ERROR: Thread SP_RESPONSE verification failed (-60)

    Thank you very much

  • Hello Daniel,

    What do you mean that "you need to build freertos based example"?

    Earlier you mentioned you built ipc_echo_testb_mcu1_0_release_strip.xer5f i thought its baremetal, but now as you said you are using ipc_rtos_echo_test_freertos_mcu1_0_release_strip.xer5f as ipc_echo_testb_mcu1_0_release_strip.xer5f it is fine.

    The issue can be with yocto build ,sci server needs to run on MCU1_0 along with IPC task and as per your log it appears SCI server is not running and i suspect the application failed to run on MCU1_0. 

    I am assigning to the yocto expert and he will assist you to find out any yocto related issues.

    Regards

    Tarun MUkesh

  • Dear Tarun MUkesh

    i replace the ipc_echo_testb_mcu1_0_release_strip.xer5f WITH my new xer5f image.

    first i have the size issue, 

    However, the size issue can be fixed after use the  ipc_rtos_echo_test_freertos_mcu1_0_release_strip.xer5f

    Sofar, i have the "ERROR:   Timeout waiting for thread SP_RESPONSE to fill" error.

    about you said that "i suspect the application failed to run on MCU1_0",

    i can run the ipc_rtos_echo_test_freertos_mcu1_0_release.appimage at MCU alone.