armbeagleboneblackbeagleboardu-bootomap

Why uboot need to load at specific address in beagleoboard?


In beagle board bring up we use this specific address below to load up uImage and dtb?

loaduImage=fatload mmc 0:1 0x80007fc0 uImage

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

Why can't we use some other address? It is pointed out in the data sheet of beagle board xm that DRAM address in beagle board starts from 0x80000000 so why not choose any address?

Why can't we load up uImage at some address and after 128MB load up dtb as suggested in https://www.kernel.org/doc/Documentation/arm/Booting documentation.

Quoting from the link: A safe location is just above the 128MiB boundary from start of RAM.


Solution

  • Header is 0x40, so kernel ends up in 0x80008000, a 4k page boundry. 0x80008000 is just convention and if you want you can change the address but you need to modify kernel code accordingly.

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