[U-Boot] Kernel loading and memory layout
Jerry Van Baren
gerald.vanbaren at ge.com
Wed Jan 21 13:34:10 CET 2009
Vinay Venkataraghavan wrote:
> Greetings,
>
> I am new to using uboot but have gone through the code to a certain
> degree but still have some questions.
>
> 1. Where does uboot transfer control to the linux kernel. By this I
> mean which file in the source code would I look for this.
>
> Would it for example be in : arch/powerpc/boot and in one of the
> assembly language files?
You could start with the "bootm" command in common/cmd_bootm.c and read
its logic and comments (just skim the code and comments till you get to
the end where it does the transfer to the loaded program).
> 2. I went through and did a lot of reading on how grub loads a linux kernel.
>
> Is the memory layout of uboot similar to that of grub. If not, how
> and where do I find more information on how does uboot layout the
> memory and where is the real-mode portion of the kernel loaded and
> where is the protected mode portion of the kernel loaded etc.
It is totally different from grub. Grub is a second++ stage bootloader
that runs after the PC-BIOS does the first stage initialization and
loads grub.
U-Boot is generally the first and only bootloader (booting from NAND
flash requires a very compact, simple first stage bootloader, which
makes u-boot a second stage bootloader).
U-Boot loads the linux kernel in RAM where ever you tell it to and then
jumps to the linux kernel entry point. The linux kernel, on start up,
relocates itself to where *it* wants to live and then proceeds.
> Any pointers to the source code would greatly help.
>
> Any other information to get me started along these lines would be of great help.
>
> Thank you.
> Vinay
Best regards,
gvb
More information about the U-Boot
mailing list