我正在确认使用 LS1046A 的定制开发板能否启动。我在 https://github.com/nxp-qoriq/atf.git 上创建了 PBL, 以启用 QSPI 模式启动。但是,执行时控制台消息停留在“NOTICE: BL2: Built: [日期和时间]”处。
根据建议,我使用 QCVS DDR 工具访问 DDR,但读写均失败。此外,当我在[目标连接]选项卡中运行[诊断连接]时,在[测试DDR内存访问]部分输出了一个错误:“无法在地址0x80000000处写入数据”。
需要修改https://github.com/nxp-qoriq/atf.git上的哪些区域才能初始化我的自定义板的DDR?目前,我正在基于LS1046ARDB创建一个PBL。
谢谢。
是的,请使用DDRv工具提供的参数。
感谢您,DDR初始化成功。不过第三步也是必须的,所以我会记下来。
3.在ATF代码中,勘误表A09803设置“ddr_out:address=0x1080114,value=0x401160”,但在DDRv工具生成的DDR初始化文件中,它被描述为CCSR_BE_M(0x01080114,0x00401150 | 0x00000020)。因此,通过修改 ddr_init.c将 0x401170 写入 0x114,成功。
这是一个错误吗?
1.首先,对于在定制板上引入的新DDR,我们建议客户使用QCVS DDRv工具进行验证和优化,以获得优化的参数,以便在atf源代码中使用它们。
有关 QCVS DDRv 工具的使用,您可以参考以下文档。
https://www.nxp.com.cn/docs/en/user-guide/QCVS_DDR_User_Guide.pdf
您可以使用“从 SPD 读取”方法创建 QCVS DDR 项目,然后连接到您的自定义板进行验证以获取优化参数并构建以生成代码 ddr_init.c并在 ATF 源代码中使用它。
2.根据您的定制板修改atf源代码。
返回文件夹flexbuild_lsdk2108_github,运行以下命令获取atf源代码。
$ flex-builder-c atf-m ls1046ardb-b qspi
转到 atf 源代码文件夹 components/firmware/atf/,请根据您的定制板修改 ddr 控制器初始化文件 plat/nxp/soc-ls1046a/ls1046ardb/ddr_init.c。
使用以下命令重建 atf。
$ flex-builder-c atf-m ls1046ardb-b qspi
您将在文件夹 flexbuild_lsdk2108_github/build/firmware/atf/ls1046ardb/ 中获得 atf 图像 bl2_qspi.pbl 和 fip_uboot.bin。
请在 QSPI 闪存的 0 处部署 bl2_qspi.pbl 并在 0x100000 处部署 fip_uboot.bin。