我想使用另一个U-boot从RAM启动U-boot映像。我使用tftp tftp 0x90000000 u-boot.img
将U-boot映像加载到RAM中,并尝试使用go 0x90000000
运行它,但没有任何反应。我想有一些关于初始化的冲突。当我转到U-boot代码时,我在 /arch/arm/cpu/armv7/start.S 文件中找到以下注释只有在我们不做的情况下才执行重要的init。从记忆开始!。所以我有一些问题。
首先,是否可以这样做?
对重要的init 是什么的任何想法?
我还需要从u-boot代码中删除其他内容吗?
答案 0 :(得分:0)
为了避免将每个新映像版本刻录到闪存的麻烦,我花了几天时间尝试做同样的事情,毕竟,如果我有一个有效的引导加载程序,为什么不从中加载新版本。我认为U-Boot文档页面的this部分很好地解释了为什么 im 不可能的原因。
如果要从另一个引导加载程序启动U-Boot,则必须禁用很多代码,即。 e。其他引导加载程序已经执行的所有初始化部分...
您必须禁用的代码包含U-Boot中最关键的部分,即。 e。当您将U-Boot移植到新硬件上时,这些错误将位于所有错误的99%或更多的区域。结果,您的RAM映像可能会起作用,但是最后,您将需要一个完整的映像来对其进行闪存编程,然后您必须启用所有这些非常关键且完全未经测试的代码。