看你的描述,是说一些板子,在启动的时候有时候是正常启动的,但有时候却会启动异常。一般20次启动测试中,可能会出现一次的异常是吗?
首先和你确认一下,你的DDR的稳定性是OK的吗?是否有按照标准进行EMIF,DDR_PHY的配置,DDR3是否有做过software leveling。如果,DDR3方面确认ok后,我们着重看你的启动模式。你的启动方式是nand flash?
我的想法之一是:确认这里的kernel读写是否出错了,是不是说那一次失败的启动中,我从nand flash读取到的kernel信息就错了,导致kernel根本启动不起来。这个能否在你启动失败的时候通过md命令打印一下读取到的kernel内容,然后和正常时候kernel的内容相比,是否一致。Load Address: 80008000,这个是你读取的kernel的地址。如果是不对的,那是否表示着你的nand时序上面配置,并不是很好,可能是在一个临界值,就是多数情况下读取时正确的,但是个别时候会读取错误。重配nand的相关时序,config1~6,是否能使这个问题好转?