【问题标题】:Why uboot need to load at specific address in beagleoboard?为什么你引导需要在 beagleboard 的特定地址加载?
【发布时间】:2015-11-28 23:17:27
【问题描述】:

在 beagle board 中,我们使用下面这个特定的地址来加载 uImage 和 dtb?

loaduImage=fatload mmc 0:1 0x80007fc0 uImage

loadfdt=fatload mmc 0:1 ${dtaddr} omap3-beagle-xm.dtb

为什么我们不能使用其他地址?在beagle board xm的data sheet中指出,beagle board中的DRAM地址从0x80000000开始,为什么不选择任何地址呢?

为什么我们不能按照https://www.kernel.org/doc/Documentation/arm/Booting 文档中的建议在某个地址加载 uImage 并在 128MB 之后加载 dtb。

引用链接:安全位置位于 RAM 开始的 128MiB 边界上方。

【问题讨论】:

  • 您的标题与文字不符。标题似乎是指加载 U-Boot 的位置,而文本询问的是 uImage 和 FDT blob。 FWIW 将 uImage 放置在 0x80007fc0 不是一个好主意。是的,这会将 zimage 放在一个不错的地址(即 0x80008000)。但那是内核的起始地址,zImage还是要解压,所以Russel King建议zImage应该在上面加载> 0x8000 "为了避免在解压前需要重新定位,这会使启动过程稍微快一些。"

标签: arm beagleboneblack beagleboard u-boot omap


【解决方案1】:

标头为 0x40,因此内核最终位于 0x80008000,即 4k 页面边界。 0x80008000 只是约定,如果您愿意,您可以更改地址,但您需要相应地修改内核代码。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2015-11-29
    相关资源
    最近更新 更多