我在基于基于ARM9的SoC(来自micrel的KSZ9692PBI)的定制板中刷了u-boot和linux。主板有8MB NOR闪存,64MB DDR。我面临以下问题
75%的时间u-boot正在成功加载并启动linux,但是Linux启动有时会在启动时挂起,而其他情况则会挂起。
25%的时间u-boot本身挂在不同的地方。
DDR频率200MHZ,CPU为250MHz。
我认为董事会中没有松散的联系。
请帮我解决问题
答案 0 :(得分:1)
即使我们不确定这是OP的问题,但我还是决定将我的评论提升为更好的保留答案。
我使用的是ARM9 SOC和DDR3芯片的定制主板。它是从制造商的参考电路板原理图中列出的,我最初使用与参考板相同的存储器控制器配置运行它。大多数电路板工作正常,但有些电路板显示出与您所看到的相似的症状。
在调试期间,我们注意到即使DDR芯片触摸不热,使用冷冻喷雾冷却它们也会使电路板正常工作。只要DDR保持冷却,电路板就会无限期运行mtest
,甚至启动进入Linux并继续运行。如果我们允许芯片回暖,电路板就会挂起。
我们的硬件人员认为必须是时序,而且散热正在改变芯片时序,足以使内存控制器配置正常工作。我们联系了我们的供应商(Marvell),他们提供了一个工具,该工具贯穿JTAG吊舱,使定时集中并提供适当的控制器配置。
这解决了所有故障板的问题。
答案 1 :(得分:0)
将DDR频率更改为166解决了问题......这绝对是200 MHz时的问题......