TDA4VEN-Q1: TDA4VEN适配2GBDDR,由原来的8GB更换为2GB

Part Number: TDA4VEN-Q1

附件是我们配置的设备树,目前配置完成之后设备起不来会卡在一半,启动log见附件,请帮忙看下是哪里出了问题?

dt.zip 启动日志.txt 

  • 您好,
    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 您好,TDA4这个芯片是否有适配过2GBDDR?能否先发一些示例参考一下,这个问题比较急,帮忙看下,感谢

  • 您好,最新的日志如下,J722S EVM更换2G DDR造成CPU异常卡死,SMC feature probe中PV time 失败与SMP bring-up失败3146.2G DDR下CPU启动异常的内核日志.zip

  • 固件版本:SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    **问题汇总**
    平台为 Texas Instruments J722S EVM,DDR 从 8G 切换为 2G 后,Linux 启动出现分阶段异常。当前看到的现象不是单一问题,而是至少两个阶段的失败。
    第一阶段是早期时间初始化相关问题。打开调试后,原始路径会在 pv_time_init 附近出现异常;在加入 skip_pv_time_init 后,日志已经能够继续越过 pv_time_init,并进入 console_init,说明当时的卡点确实在 PV time/SMCCC 相关路径,而不是串口或 console 初始化本身。证据见 《内核日志1-defcong未修改.txt》和 《内核日志3-关闭CONFIG_PARAVIRT.txt》。同时当前配置里已经关闭了 PARAVIRT,见 wrr9460_defconfig。
    第二阶段是 SMP 拉起异常。在未限制 CPU 数量时,系统进入 “Bringing up secondary CPUs ...” 后,最后一条有效调试日志停在 CPU1 发起 PSCI CPU_ON 前,说明多核启动路径卡在 PSCI/secure firmware 交互前后,CPU1 没有完成进入 secondary_start_kernel。证据见 《内核日志3-关闭CONFIG_PARAVIRT.txt》。
    第三阶段是单核模式下仍然无法完成启动。加入 maxcpus=1 后,日志明确显示只激活了 1 个 CPU,说明二级 CPU 拉起问题被绕过了,但系统后续依然没有正常启动,最后停在 OP-TEE 初始化阶段,最后一条日志是 optee: probing for conduit method.。证据见 《内核日志4-关闭CONFIG_PARAVIRT-maxcpus=1.txt》。
    **当前判断**
    从现有日志看,2G DDR 下 Linux 基本内存识别本身已经不是最早卡点。日志中可见 OP-TEE 保留区、CMA 保留区以及 2G 可用内存统计都已经建立成功,见 《内核日志4-关闭CONFIG_PARAVIRT-maxcpus=1.txt》。这说明问题更像是切到 2G DDR 后,secure world / firmware 相关路径存在不兼容,包括但不限于:
    1. PARAVIRT/PV time 触发的 SMCCC 特性探测路径异常。
    2. PSCI CPU_ON 拉起二级核失败。
    3. 即使关闭多核后,OP-TEE 初始化阶段仍然停住。
    这三个点都涉及 SMC / secure firmware 交互,因此目前更应怀疑 TF-A、OP-TEE、TIFS/SCI 固件、或 2G DDR 对 secure world/carveout/secondary boot 地址的影响,而不是单纯 Linux reserved-memory 配置错误。