NXP MCU 技术论坛
直播中

zhongnian

9年用户 1453经验值
擅长:MEMS/传感技术
私信 关注
[问答]

Yocto LS1028定制板用BL2,为了使DDR工作是否需要编辑ddr_init.c中的任何其他函数/值或ATF源中的任何其他文件??


我正在尝试基于 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,我看到了下一个错误


NOtiCE:  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 源中的任何其他文件?

回帖(1)

红旧衫

2023-12-27 11:47:44
要使DDR工作,您需要确保在ddr_init.c文件中对其进行适当的配置和初始化。具体来说,您需要根据您的DDR类型,设置正确的时序和其他相关参数。

此外,在ATF源中的其他文件中也可能需要进行调整,以确保BL2正常工作。例如,您可能需要编辑SCFG寄存器的配置文件,以使其与您的系统配置保持一致。

最后,您还需要确保您的硬件配置正确,包括时钟,电源和信号强度等方面。如果有任何问题,建议查看硬件原理图和数据手册。

关于您的BL2启动错误,建议检查与DDR初始化相关的日志和错误消息,并根据需要进行调整。您还可以在开发板或仿真器上运行DDR测试程序,以确保DDR可靠工作。
举报

更多回帖

×
20
完善资料,
赚取积分