您好!
我们在基于 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