我正在尝试基于 LS1028ARDB 评估板开发定制板。
在我拥有的定制板中,我们已将 DDR4 替换为 DDR3。
我已经看到 DDR3 正在使用自定义 RCW + PBI 工作。所以现在我想要的下一步是创建一个自定义 BL2,用于启动基于 kirkstone 版本的 yocto 编译。
为此,我修补了 atf repo 的 ddr_init.c 文件,这个“ddr_cfg_regs”结构:
https ://github.com/nxp-qoriq/atf/blob/lf_v2.6/plat/nxp/soc-ls1028a /ls1028ardb/ddr_init.c#L15
现在我正在尝试启动那个 BL2,我看到了下一个错误
NO
tiCE: Fixed DDR on board
ERROR: Found training error(s): 0x2000
ERROR: Error: Waiting for D_INIT timeout.
ERROR: Writing DDR register(s) failed
ERROR: Programing DDRC error
ERROR: DDR init failed.
NOTICE: BL2: v2.6(release):custom
NOTICE: BL2: Built : 06:37:22, Jun 7 2022
ERROR: Asserting as the DDR is not initialized yet.ERROR: SD read error - DMA error = 10000000
ERROR: Read error = fffffffb
ERROR: BL2: Failed to load image id 3 (-5)
Error reading from serial device
我添加了 BUILD_STRING = "custom" 选项来检查我正在运行的 BL2 是否是我的。
为了使 DDR 工作,我是否需要编辑 ddr_init.c 中的任何其他函数/值
或ATF 源中的任何其他文件?