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.

[参考译文] TDA4VL-Q1:更新 MCU (DM) R5F 固件二进制文件 tispl.bin 后、器件无法启动

Guru**** 2481465 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1457664/tda4vl-q1-device-can-not-bootup-after-updating-mcu-dm-r5f-firmware-binary-tispl-bin

器件型号:TDA4VL-Q1

工具与软件:

尊敬的 TI:  

关于 J721S2 TDA4AL 的 mainmcu 映像、

我想使用我自己的 MCU 映像并将其加载到 MCU 器件的 SPL 阶段下。

在我用我的构建版本 xer5f 替换 ipc_echo_testb_mcu1_0_release_strip.xer5f 后、重新编译 tispl.bin 和 tiboot3.bin

新  tispl.bin 具有更大的大小。

但是、我尝试在启动器件时发现了 filling 错误。

我曾尝试增大  ti-u-boot 的 config_SPL_SYS_malloc_size

你有什么意见吗?

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)

并且启动失败、如以下日志所示

e2e.ti.com/.../log0105.txt

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

    尊敬的 TI:

    如果我将映像刷写到 eMMC 并从 eMMC 启动、则会出现另一个错误、如下所示

    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 ###
    

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

    尊敬的 TI

    我将 xxxxx_strip.xer5f 文件用作 dm FW、器件将不会出现"alloc space explened"错误、

    但是、还有如下所示的其他错误

    请帮助检查,非常感谢

    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 optee.readthedocs.io/.../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
    

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

    Daniel、您好!

    您正在使用哪个 SDK? 您是否在构建相同的 SDK 版本的 .xer5f ?

    另外、我看到您构建了 IPC 裸机示例、MCU1_0应该会随 IPC 任务一起运行 SCI 服务器、然后只有 IPC 任务能正常工作。因此、您需要构建基于 FreeRTOS 的示例。

     是否正确执行以下步骤?

    1. 转至 Linux 安装程序、将现有的 R5F MCU (DM)固件二进制文件替换为新的二进制文件

    主机# CP /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j721e/ipc_echo_testb_mcu1_0_release_strip.xer5f
    
    1. 重新编译 u-boot 以使用顶级 makefile 重新生成 tispl.bin。

    host# make u-boot
    

      有关顶级 makefile 的更多详细信息、请参阅顶层 makefile。

    1. 更换在 sdcard 的引导分区中包含新 R5F 固件二进制文件的更新 tispl.bin、然后重新引导

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

     

    此致

    Tarun Mukesh

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

    尊敬的  Tarun Mukesh

    您正在使用哪个 SDK? 您是否在构建相同的 SDK 版本的 .xer5f ?

    => pdk_j721s2_10_00_00_27

    我们使用 Yocto 编译、编译 ipc_rtos_echo_test_freertos、并将 ipc_rtos_echo_test_freertos_mcu1_0_release_strip.xer5f 复制到 dm-FW 中  

    在 Yocto-build\sources\meta-ti\meta-ti-bsp\recips-bsp\ti-dm-fw.bb 下执行 。

    这意味着"您需要构建基于 FreeRTOS 的示例"?

    下面的日志是什么意思?

    注意:BL31:v2.10.0 (发布):v2.10.0-367-g00f1ec6b87-dirty
    通知:BL31:创建时间:2024年2月9日16:09:05
    错误:等待填充线程 SP_RESPONSE 超时
    错误:线程 SP_RESPONSE 验证失败(-60)

    非常感谢

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

    Daniel、您好!

    什么意思是"需要构建基于 FreeRTOS 的示例"?

    之前您提到过您构建了  ipc_echo_testb_mcu1_0_release_strip.xer5f、但现在您说过您使用 ipc_rtos_echo_test_freertos_mcu1_0_release_strip.xer5f 作为 ipc_echo_testb_mcu1_0_release_strip.xer5f、没问题。

    问题可能是 Yocto 构建、sci 服务器需要在 MCU1_0上运行以及 IPC 任务、根据您的日志显示 SCI 服务器未运行、我怀疑应用程序未能在 MCU1_0上运行。  

    我分配给 Yocto 专家、他将帮助您了解任何与 Yocto 相关的问题。

    此致

    Tarun Mukesh

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

    尊敬的 Tarun Mukesh

    我 用新的 xer5f 映像替换 ipc_echo_testb_mcu1_0_release_strip.xer5f。

    首先是尺寸问题、  

    但是、可以在使用  ipc_rtos_echo_test_freertos_mcu1_0_release 后解决大小问题 _strip.xer5f

    目前为止、出现"error:  timeout waiting for thread SP_response to fill"错误。

    关于您说过"我怀疑应用程序无法在 MCU1_0上运行"、

    我可以  单独在 MCU 上运行 ipc_rtos_echo_test_freertos_mcu1_0_release.appimage。

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

    Daniel、您好!

    您是否尝试过 Tarun 在 回答中列出的步骤

    仅更换现有映像中的 tispl.bin 时、器件是否可以正常启动? 本质上、您的错误是否仅在尝试使用 Yocto 构建映像时出现?

    如果您解决了 malloc 增加而不是删除版本的大小问题、您仍然会看到超时错误吗?

    此致!
    Jared