This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM3352:在 DDR 时序调整后 U-Boot 失败

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/601208/am3352-u-boot-fails-after-ddr-timing-adjustment

器件型号:AM3352

您好!

我们在基于 BeagleBone-Black 的定制板上使用 U-Boot 时没有遇到任何问题。 当我们在某些电路板上遇到存储器问题时、我们尝试调整 EMIF 存储器时序

processors.wiki.ti.com/.../Sitara_Linux_Training:_Tuning_the_DDR3_Timings_on_BeagleBoneBlack

当我们更改 U-Boot 源代码中的寄存器值时、无法加载 Linux 内核、并向我们提供了几条不同的错误消息:

无法更新属性/ocp/ethernet@4a100000/slave@4a100200:mac-address、err=FDT_ERR_BADSTRUCTURE
无法更新属性/ocp/ethernet@4a100000/slave@4a100200:local-mac-address、err=FDT_ERR_BADSTRUCTURE
无法更新属性/ocp/ethernet@4a100000/slave@4a100300:mac-address、err=FDT_ERR_BADSTRUCTURE
无法更新属性/ocp/ethernet@4a100000/slave@4a100300:local-mac-address、err=FDT_ERR_BADSTRUCTURE

musb-hdrc:内核必须将外部集线器列入黑名单
MUSB 初始化控制器失败、状态为-22
musb-hdrc:内核必须将外部集线器列入黑名单
MUSB 初始化控制器失败、状态为-22
NET:数据中止

也许您应该阅读 doc/README.arm-unaligned 访问

PC:[<9f77c970>] LR:[<9f7a35fc>]
SP:9f640ec8 IP:00000000 FP:80800020
R10:8083ecc1 R9:9f640f28 R8:00000014
R7:4a100000 R6:9f7a1f18 R5:9f6412d0 R4:9f641318
r3:00000000 r2:9f6413e0 r1:00000000 r0:9f6413cc
标志:在模式 SVC_32上关闭 FIQ 的 Nzcv IRQ
正在重置 CPU ...

正在重置...

当返回到原始寄存器值时、一切正常、U-Boot 能够正确加载 Linux 内核。

我还尝试通过 JTAG 加载 U-Boot 的 SPL 部分、如上述调优指南中所述。 DDR 存储器本身的配置似乎没有任何问题。 因此、我认为构建 U-Boot 映像的第二部分时出错了、但我不明白为什么更改 DDR 时序寄存器会影响这一点?!

除了 U-Boot 源中的 DDR 时序寄存器外、我是否还需要更改其他内容?

此致、

Marcel Kaus