为什么uboot需要在beagleoboard的特定地址加载?

为什么uboot需要在beagleoboard的特定地址加载?

问题描述:

在beagle板上,我们使用下面这个特定的地址加载uImage和dtb?为什么uboot需要在beagleoboard的特定地址加载?

loaduImage = fatload MMC 0:1个0x80007fc0的uImage

loadfdt = fatload MMC 0:1 $ {} dtaddr OMAP3 - 比格 - xm.dtb

为什么我们不能用一些其他的地址?在beagle板的DRAM地址从0x80000000开始在比格板xm的数据表中指出为什么不选择任何地址?

为什么我们无法在https://www.kernel.org/doc/Documentation/arm/Booting文档中建议在某个地址和128MB加载dtb之后加​​载uImage。

引用链接:安全位置刚好在128MiB边界之上,从RAM开始。

+1

您的标题与文本不匹配。标题似乎指U-Boot加载的位置,而文本则询问uImage和FDT blob。 FWIW将uImage放置在0x80007fc0不是一个好主意。是的,这将zimage放在一个很好的地址(即0x80008000)。但是这是内核的起始地址,并且zImage仍然必须*解压缩*,这就是为什么Russel King建议应该将zImage加载到***以上*** 0x8000 *“以避免先前需要重新定位解压缩,这将使启动过程稍快。“* – sawdust

头是0x40,所以内核在0x80008000,一个4k页边界结束。 0x80008000只是惯例,如果你想要,你可以改变地址,但你需要相应地修改内核代码。

http://processors.wiki.ti.com/index.php/HOWTO_Change_the_Linux_Kernel_Start_Address