NXP MCU 技术论坛
直播中

乐侨珂

9年用户 1064经验值
擅长:控制/MCU
私信 关注
[问答]

求助,关于LX2160ARDB上的UEFI问题求解

我最近LX2160ARDB 具有 32GB RAM 和 128GB EMMC 的开发套件。
Currenty 正在运行来自 SDCard 和 EMMC 的 u-boot 和 LSDK,但卡在正在运行的 UEFI 上。
我尝试了 NXP 资源中的 firmware_lx2160ardb_rev2_xspiboot_uefi.img,并尝试从头开始构建,但是一旦我通过 TFTP 加载它并写入 XSPI,重新启动后它不会加载。

1 ) 如果我qixis_reset Altbank(默认为 XSPI 0)然后卡在:
=> 注意: BL2: v2.4(发布):LSDK-21.08-0-g340b20bcb
注意:BL2:建成时间:2025 年 1 月 30 日 11:57:17
注意:UDIMM 18ADF2G72AZ-3G2E1
注意:DDR PMU 硬件版本 0x1210
注意:DDR PMU 固件 vision-0x1001 (vA-2019.04)
注意:DDR4 UDIMM,带 2 位 64 位总线 (x8)
注意:32 GB DDR4,64 位,CL=22,ECC 开启,256B,CS0 CS1
2) 但是,如果我将 DIP 开关更改为从 XSPI 1 自动加载,则获得以下内容:
注意:32 GB DDR4,64 位,CL=22,ECC 开启,256B,CS0 CS1
注意: BL2: v2.4(发布):LSDK-21.08-0-g340b20bcb
注意:BL2:建成时间:2025 年 1 月 30 日 11:57:17
注意:UDIMM 18ADF2G72AZ-3G2E1
注意:DDR PMU 硬件版本 0x1210
注意:DDR PMU 固件 vision-0x1001 (vA-2019.04)
错误:执行 FW 失败(错误 -5)
错误:计算 DDR PHY 寄存器失败。
PHY 握手超时,ddr_dsr2 = 0
错误:发现训练错误:0x100
错误:错误:等待D_INIT超时。
错误:写入 DDR 寄存器失败
错误:编程 DDRC 错误
错误:DDR 初始化失败。
注意:platform_def.h 中定义的 DRAM0 大小不正确


回帖(1)

wufan931111

2025-4-9 17:54:54

针对LX2160ARDB上UEFI启动失败的问题,以下是逐步排查与解决方案:


1. 确认启动模式设置



  • 检查拨码开关SW7设置:确保设置为XSPI启动模式。对于Rev2板,SW7[1-4]需设为 0010(XSPI 32-bit)或 0100(XSPI 16-bit)。参考手册确认正确配置。

  • 验证QIXIS切换:执行qixis_reset altbank后,通过qixis_print命令确认启动源已切换至XSPI的备用Bank。


2. 验证UEFI固件



  • 确认镜像适用性:确保下载的firmware_lx2160ardb_rev2_xspiboot_uefi.img与硬件版本完全匹配。检查NXP文档确认镜像支持您的EMMC和内存型号(UDIMM 18ADF2G72AZ-3G2E1)。

  • 校验镜像完整性:比对下载镜像的哈希值(如SHA256)与NXP提供的是否一致,避免下载损坏。


3. 正确烧写XSPI



  • 擦除与写入步骤
    => sf probe 0:0  # 初始化SPI Flash
    => sf erase 0x0 +0x1000000  # 擦除整个XSPI区域(根据实际大小调整)
    => tftp ${loadaddr} firmware_lx2160ardb_rev2_xspiboot_uefi.img
    => sf write ${loadaddr} 0x0 ${filesize}  # 写入镜像

    确保loadaddr无冲突,且写入地址与XSPI布局匹配(通常从0x0开始)。



4. DDR初始化问题



  • 检查DDR配置:UEFI/BL2需正确配置DDR参数。对比LSDK的DDR设置(位于drivers/ddr/fsl),确认频率、时序与UDIMM兼容。

  • 更新RCW:若使用自定义RCW,确保包含正确的DDR初始化代码。参考NXP示例调整lx2160ardb_xspi_rcw.cfg


5. 调试与日志收集



  • 串口日志:连接串口查看完整启动日志,定位卡在DDR PMU的具体阶段。

  • JTAG调试:若支持,使用JTAG工具(如Lauterbach)捕获更早阶段的异常,分析BL2或DDR初始化失败原因。


6. 构建环境检查



  • 代码版本:确保UEFI代码与LSDK-21.08兼容,或尝试更新至最新版本修复潜在问题。

  • 配置参数:构建时指定正确的目标(如lx2160ardb-rev2),并在设备树中确认内存节点与SPI Flash配置正确。


7. 硬件排查



  • SPI Flash检测:在U-Boot中执行sf probe,确认能正确识别Flash型号和容量。

  • 电源与连接:检查板子供电稳定,SPI芯片焊接无虚焊。


替代方案


若问题仍未解决,可尝试:



  • 从SD卡启动UEFI:将UEFI镜像写入SD卡,测试是否为XSPI硬件问题。

  • 使用预编译镜像:换用NXP提供的其他版本(如LSDK-20.12)排除构建环境干扰。


通过以上步骤,应能定位并解决UEFI启动卡住的问题。若仍存在异常,建议在NXP社区提交详细日志和配置以获取进一步支持。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分