解决DDR时序导致u-boot跑飞的问题
把生成的u-boot-pbl-with-spl.bin 烧写到SPI flash中之后,重新上电串口打印如下
默认的DDR 使用的是插槽式DDR,控制器根据SPD获取DDR的运行速度,而我们自己设计的单板DDR为颗粒,已经焊接到PCB上去了,所以需要修改对应的config.h文件,去掉SPD 模式,同时由于我们自己使用的DDR3L与demo板的DDR3L 型号不同,所以也需要修改DDR的时序。一切修改完毕后,u-boot 继续向下执行,但仍然发生DDR 跑飞的现象。
现在需要定位是否是DDR时序的问题,基本工具为codeWarrior,attach上CPU,mem窗口查看DDR地址内容能否改写和刷新。
如果可以,说明DDR硬件上没问题,可能还是时序有问题。最终定位到是使用的RCW中DDR配置的速度是2400MT/S,而此处的DDR时序参数是按照1200MT/s来配置的,两者不匹配导致DDR运行u-boot的时候跑飞。
修改完成之后,u-boot正确进入到命令行。
各类问题欢迎进群讨论:QQ群:245079182