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:从 SD 卡启动时、日志中有一些错误消息导致启动失败。 我们希望您能提供专业的建议,帮助我们解决这个问题。

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1512167/tda4vl-q1-when-booting-from-an-sd-card-there-are-some-error-messages-in-the-log-causing-startup-failure-we-hope-you-can-provide-professional-advice-to-help-us-resolve-this-issue

器件型号:TDA4VL-Q1

工具/软件:

集成10.0版本的 MCU 模块时、在编译 Linux 和 RTOS 以及编译 MCU 固件后、我们将生成的文件(tiboot3.bin、、 u-boot.img u-env.txt 来自 Linux 构建和 tispl.bin MCU 构建)复制到 SD 卡的引导分区中。 将 SD 卡插入开发板并为其上电后、串行端口日志显示错误、从而导致引导故障。 通过与已知的工作 tispl.bin情况进行比较、我们怀疑中缺少组件 tispl.bin 的问题(可能是由于固件未更新或与 MCU 连接失败)。 此外、该 build-images 文件夹缺少 bl31.bin 和 bl32.bin。 请提供专业建议和解决方案。

错误日志如下所示

U-Boot SPL 2024.04 (2025年5月9日- 10:34:01 +0000)

SYSFW ABI:4.0 (固件版本0x000a '10.0.8--v10.00.08 (Fiery Fox)')

EEPROM 在0x50处不可用、尝试在0x51处读取

读取0x51处的板载 EEPROM 失败-19

SPL 初始栈使用量:13456字节

ESM PMIC 初始化失败:-19

尝试从 MMC2引导

警告:在 GP 设备上检测到映像签名证书。 跳过证书以防止启动失败。 如果映像也经过加密、此操作将失败

警告:在 GP 设备上检测到映像签名证书。 跳过证书以防止启动失败。 如果映像也经过加密、此操作将失败

警告:在 GP 设备上检测到映像签名证书。 跳过证书以防止启动失败。 如果映像也经过加密、此操作将失败

警告:在 GP 设备上检测到映像签名证书。 跳过证书以防止启动失败。 如果映像也经过加密、此操作将失败

警告:在 GP 设备上检测到映像签名证书。 跳过证书以防止启动失败。 如果映像也经过加密、此操作将失败

从无处加载环境... 好的

在 ARM64内核上启动 ATF……

 

注意: BL31:v2.10.0 (发行版):v2.10.0-367-g00f1ec6b87-dirty

通知: BL31:制造时间: 2024年2月9日16:09:05

错误:  等待线程 SP_RESPONSE 填充时超时

错误:  线程 SP_RESPONSE 验证失败(-60)

错误:  消息接收失败(-60)

错误:  获取响应失败(-60)

错误:  传输发送失败(-60)

错误:  等待线程 SP_RESPONSE 填充时超时

错误:  线程 SP_RESPONSE 验证失败(-60)

错误:  消息接收失败(-60)

错误:  获取响应失败(-60)

错误:  传输发送失败(-60)

错误:  无法查询固件功能(-60)

I/O TC:

I/UTC:OP-TEE 版本:4.2.0-DEV (gcc 版本13.3.0 (GCC))#1周五4月12日09:51:21 TC 2024 Aarch64

I/OP-TEE:警告:此 TC 配置可能不安全!

I/O:警告:请检查 optee.readthedocs.io/.../porting_guidelines.html TC

I/O:主 TC 初始化

I/GIC:未提供 TC 转销商基地址

I/GIC:假定默认的 TC 组状态和修饰符

E/队 列:0 k3_sec_proxy_verify_thread:108 TC 正忙

e / TC:0 k3_sec_proxy_recv:196线程 SEC_proxy_response_thread 验证失败。 RET =-65523

E/ESP TC:0 ti_sci_get_response:101消息接收失败(-65523)

E/sci_do_xfer TC:150获取响应失败(-65523)

e/ti_sci_init TC:486无法与控制固件通信(-65523)

E/0x00070af8:0 call_initcalls:43 TC __text_start + 0x00070af8失败

E/队 列:0 k3_sec_proxy_verify_thread:108 TC 正忙

e / TC:0 k3_sec_proxy_recv:196线程 SEC_proxy_response_thread 验证失败。 RET =-65523

E/ESP TC:0 ti_sci_get_response:101消息接收失败(-65523)

E/sci_do_xfer TC:150获取响应失败(-65523)

E/队 列:0 k3_sec_proxy_verify_thread:108 TC 正忙

e / TC:0 k3_sec_proxy_recv:196线程 SEC_proxy_response_thread 验证失败。 RET =-65523

E/ESP TC:0 ti_sci_get_response:101消息接收失败(-65523)

E/sci_do_xfer TC:150获取响应失败(-65523)

E/队 列:0 k3_sec_proxy_verify_thread:108 TC 正忙

e / TC:0 k3_sec_proxy_recv:196线程 SEC_proxy_response_thread 验证失败。 RET =-65523

E/ESP TC:0 ti_sci_get_response:101消息接收失败(-65523)

E/sci_do_xfer TC:150获取响应失败(-65523)

E/HUK:0 TEE_OTP_GET_HW_UNIQUE_KEY:97无法获取 TC

E/0x00070b20:0 call_initcalls:43 TC __text_start + 0x00070b20失败

I/UL:已激活 TC 设备

E/队 列:0 k3_sec_proxy_verify_thread:108 TC 正忙

e / TC:0 k3_sec_proxy_recv:196线程 SEC_proxy_response_thread 验证失败。 RET =-65523

E/ESP TC:0 ti_sci_get_response:101消息接收失败(-65523)

E/sci_do_xfer TC:150获取响应失败(-65523)

E/队 列:0 k3_sec_proxy_verify_thread:108 TC 正忙

e / TC:0 k3_sec_proxy_recv:196线程 SEC_proxy_response_thread 验证失败。 RET =-65523

E/ESP TC:0 ti_sci_get_response:101消息接收失败(-65523)

E/sci_do_xfer TC:150获取响应失败(-65523)

E/TRNG:0 sa2ul_init:106无法更改 TC 防火墙所有者

E/0x00070b28:0 call_initcalls:43 TC __text_start + 0x00070b28失败

E/SupportAssist TC:0 0

E/0x14 TC:0地址处的内核数据中止(转换故障)

E/ESR:0 0 TC 0x96000005 tbr0 0x9e8a2000  tbr1 0x00000000  CIDR 0x0

E/CPUR:0 0 TC #0         CPSR 0x600003c4

E/x0 TC:0 x0 000000009e875000 x1 000000000000

E/00000000 TC:0 x2 0000000000000000 x3 0000000000000000  

E/x4 TC:0 x4 0000000000000050 x5 000000009e892d70  

e/x6 TC:0 0 x6 ffffffffffffffffffffb0 x7 000000010cb0  

E/X9 TC:0 0 x8 0000000000010cb0 x9 00009e892f80  

E/00000008 TC:0 x 10 000000009e882070 x 11 0000000000000008

E/X12:0 0 x12 0000000000000000 TC 13 000000009e8a3e60

E/00000000:0 x 14 TC 000000000000 x 15 0000000000000000

E/X17:0 x16 00009e81cb90 TC 000000000000

E/00000000 TC:0 x 18 0000000000000000 x 19 000000009e8a41e0

e/875000 TC:0 x 20 000000009e8a41e8 x 21 000000009e875000

E/875000 TC:0 x 22 000000009e875000 x 23 00009e875f00

E/dc0 TC:0 x 24 000000009e874dc0 x 25 000000000000

E/00000000:0 x 26 0000000000000000 TC 27 0000000000000000

E/00000000:0 x 28 0000000000000000 TC 29 000000009e8a4170

E/ELR:0 X30 000000009e817350 TC 00009e817360

e/0 TC sp_el0 00009e8a4170

E/TEE:0 TC 加载地址@ 0x9e800000

E/Call Stack:0 0 TC:

E/0x9e817360:0 TC:0 0x9e817360

E/0x9e807ca0:0 TC  

E/0x9e822530:0 0 TC  

E/0x9e807e9c TC:0 0 0x9e807e9c

E/git/core/arch/arm/kernel/abort.c src:582处的 TC:0紧急"未处理的可分页中止"

E/TEE:0 TC 加载地址@ 0x9e800000

E/Call Stack:0 0 TC:

E/0x9e80817c TC:0 0 0x9e80817c

E/0x9e81eff4 TC:0 0 0x9e81eff4

E/0x9e807884 TC:0 0 0x9e80784

E/0x9e804a68 TC:0 0 0x9e804a68

 

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

    你(们)好  

    错误:等待线程 SP_RESPONSE 填充时超时
    错误:线程 SP_RESPONSE 验证失败(-60)
    错误:消息接收失败(-60)
    错误:获取响应失败(-60)
    错误: 无法查询固件功能-60)

    从您提供的日志中可以看出、ATF 和 OPTEE 无法与在 M4_0内核上运行的 TIFS 进行通信。

    您能否确认是在 TI EVM 上运行还是在定制电路板上运行?

    此外、您能否确保使用正确的 ATF 和 optee 二进制文件? 如果您使用了错误的二进制、则可能会出现使用错误的次级代理与 TIFS 进行通信的问题。

    此致
    Diwakar

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

    您好,感谢您的答复。

    我们使用的是定制板。 我们如何确认我们使用的 ATF 和 OPTEE 二进制文件是正确的? 我们已经尝试在不集成 MCU 代码的情况下启动、该代码会正常启动。 在从 ti-processor-sdk-rtos-j721s2-evm-10_00_00_05集成 MCU 软件并进行编译后、我们替换了生成的 tispl.bin 文件、并在启动时遇到这些错误日志。 您能否提供一些方法来验证我们使用的 ATF 和 OPTEE 二进制文件是否正确? 或者、您能否提供一些在集成 mcusw 后需要注意的步骤、以确保我们能够正确生成完整的 tispl.bin 文件并正常启动?

    此致
    香港  

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

    你(们)好  

    我们如何确认我们使用的 ATF 和 OPTEE 二进制文件是正确的? [/报价]

    您能帮助我使用您用于构建 ATF 和 optee 的命令吗?另外、请共享 TIFS 跟踪。

    要从 TIFS 获取跟踪、您可以遵循以下常见问题解答。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/872604/faq-system-firmware-calls-have-failed-or-crashed-what-do-i-do

    我们尝试了在不集成 MCU 代码的情况下启动、它会正常启动。

    你能详细说明一下这个,你是什么意思集成 MCU 代码. 我们在这里讨论的代码是什么?

    或者、您是否可以提供集成 mcusw 后需要注意的一些步骤、以确保我们能够正确生成完整的 tispl.bin 文件并正常启动?

    您的意思是集成 MCUSW , tispl.bin 包含 ATF.OPTEE、DM A72 SPL 等不同于 MCUSW 的组件。

    您正在更改 DM 二进制文件吗? 如果是、我是否可以知道从10.0 SDK 获取 DM 和从其他 SDK 获取组件的其余部分? 我们还没有在我们这边测试过这种组合

    此致
    Diwakar

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

    未集成 MCU 代码意味着工程中未包含 ti-processor-sdk-rtos-j721s2-evm-10_00_00_05中的 mcusw 文件夹、这意味着实际上没有 mcusw 文件夹。 此时、SPL 可正常启动。 此外、我们使用了默认的 ipc_echo_testb_freertos_mcu1_0_release.xer5f 文件、该文件正常启动。 但是、如果我们使用在 MCU 演示下生成的 xer5f 文件、它们都无法启动。 这是什么原因? 代码中是否缺少某些内容?

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

    您好、Kong、

    但是、如果我们使用在 MCU 演示下生成的 xer5f 文件、它们都无法启动。 原因是什么?

    请问您正在构建什么 MCU 演示以及生成了哪个 xer5f?

    请向我们分享您为构建 tispl.bin 而执行的步骤

    此致

    Tarun Mukesh

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

    您好:

    编译过程如下:[ MCU 的编译仅供参考、我指的是9.1sdk、10.00可能不同]

    #Start Docker

    Chiu-Phoenix$/scripts/docker_run.sh

    #编译 Linux

    Chiu-Phoenix$/build/make_linux_bsp.sh

    #compile RTOS

    Chiu-Phoenix$/build/make_rtos_bsp.sh

    编译 mcu1_0

    cd tda4_rtos/mcusw/build/

    build$ make all -j60

    build$ make allcores -j60

    cd ./../sdk_builder

    SDK_Builder$ CP -rvf ../mcusw/binary/mcu_app/bin/j721s2_evm/mcu_app_mcu1_0_release.xer5f ../vision_apps/out/J721S2/R5F/release/vx_app_rtos_linux_mcu1_0.out

    sdk_builder$ make uboot -j60

    #产品:

    tda4_linux/board-support/ti-u-boot-2024.04/j721s2-arm64-linux/tispl.bin

    我们没有对上述编译中使用的文件进行任何更改、它们都来自现有的 SDK、我们将之前的默认 tispl.bin 文件与编译 MCU 后生成的 tispl.bin 文件进行了比较、发现编译 MCU 后生成的 tispl.bin 文件似乎缺少一些部分、并且看起来不完整。 比较图如下所示。 您能否为我们提供一些指导、帮助我们正常启动 SPL

    左侧是启动失败文件、其中包含大量 EF 55 AA FE 文件

    .xer5f

    tispl.bin

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

    您好:

    我不明白为什么要为 MCU1_0构建2个可执行文件?

    SDK_Builder$ CP -rvf ../mcusw/binary/mcu_app/bin/j721s2_evm/mcu_app_mcu1_0_release.xer5f ../vision_apps/out/J721S2/R5F/release/vx_app_rtos_linux_mcu1_0.out

    此致

    Tarun Mukesh

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

    您好、

    此文件是 makefile_uboot 中需要的、因此已在此处复制了文档。

      没有 构建2个可执行文件。

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

    makefile_uboot 路径为:sdk_builder\makerules\makefile_uboot.mak

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

    您好、Kong、

    我仍然不明白您在这里要说什么、如果您使用的 是 mcu_app_mcu1_0_release.xer5f、那么裸机示例中只有 MCU 相关内容。

    MCU1_0是一个需要 SCI 服务器任务才能在其上运行的 DM 内核。 不能仅运行没有 sciserver 的 MCU 的裸机示例、因为所有其他内核都有 sciclient 调用、并将等待 sciserver 寻址。

    简而言之、无法仅在 MCU1_0内核上使用裸机 MCU 示例。您需要开发一个 FreeRTOS 示例、其中包含将 MCU 与 SCIserver 一起使用的任务。

    此致

    Tarun Mukesh

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

    您好、

    您需要开发一个 FreeRTOS 示例、其中包含使用 MCU 和 SCIserver 的任务。

    我尝试在 tda4_rtos/mcusw/build/Rules.make 文件中将编译类型修改为 RTOS、

    但编译不正确、并且  can_profile_app_freertos_mcu1_0_release.xer5f 文件可能正常生成。

    但移植从以前的现象。

    IPC RTOS 演示 生成失败、日志信息如下所示

    您在这里有任何参考资料吗?

    谢谢

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

    您好:

    我尝试在 tda4_rtos/mcusw/build/Rules.make 文件
    中将编译类型修改为 RTOS

    它的工作方式并不是这样、您需要根据需要单独创建一个包含 sciserver 和 MCU 任务的示例。

    在 SDK 中,您可以参考   在 MCU1_0上运行的 CddIpcRProcLinux (mcusw/mcal_drv/mcal/examples/CddIpcRProcLinux)的示例。

    此致

    Tarun Mukesh