R-Pi Boot process

June 4, 2012 — 3 Comments

Just a note to myself to keep useful info.
Bakul Shah in freebsd-arm quotes R-Pi forum, but I failed to find original.

1. Stage 1 boot is in the on-chip ROM. Loads stage2 in the L2 cache!
2. Stage 2 is bootcode.bin. Enables SDRAM and loads stage3
3. Stage 3 is loader.bin. Knows about elf format and load start.elf
4. start.elf loads kernel.img (+ it is the main gpu code).
It reads config.txt, cmdline.txt and bcm2835.dtb
If the dtb file exists, it is loaded at 0x100 & kernel @ 0x8000
Else if disable_commandline_tags is set load kernel @ 0x0
Else if load kernel @ 0x8000 and put ATAGS at 0x100
See Issue 16 in https://github.com/raspberrypi/linux/issues
5. kernel.img, is the *first* thing that runs on the ARM

And more information on config.txt here



3 responses to R-Pi Boot process

  1. Aleksandr Rybalko June 6, 2012 at 2:24 am

    >> If the dtb file exists, it is loaded at 0x100 & kernel @ 0x8000
    IIRC it load kernel @0x00000000, and override 0x100 location with ATAGS,
    and some location between 0x100 and 0x8000 with .dtb.

  2. I believe this is the forum thread you’re looking for 😉

Trackbacks and Pingbacks:

  1. Lab 3, R-Pi Booting process - November 16, 2012

    […] Now time to study the boot process on Raspberry Pi. Good source to study: R-Pi Boot process […]

Leave a Reply

Text formatting is available via select HTML. <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>