Raspberry Pi Boot Process

Programming, for all ages and all languages.
Post Reply
User avatar
mark3094
Member
Member
Posts: 164
Joined: Mon Feb 14, 2011 10:32 pm
Location: Australia
Contact:

Raspberry Pi Boot Process

Post by mark3094 »

I was reading a bit about the Rasperry Pi boot process here:
https://github.com/dwelch67/raspberrypi

It mentions that it uses some named files for boot:
  • bootcode.bin
  • loader.bin
  • start.elf
  • config.txt
  • kernel.img
I haven't worked with ARM yet, so sorry if this is worded incorrectly, but are the files listed above specific to the Raspberry Pi's boot process, or is it the same with all ARM chips? Or perhaps it is the Broadcom SoC that the RPi uses?

Does this mean that Kernel.img can (more or less) be replaced with a custom Kernel, without having to write a bootloader?
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: Raspberry Pi Boot Process

Post by JamesM »

Hi,

Afaik the rpi uses uboot as the bootloader, so yes you can just provide an elf file as the kernel.

The rpi has a complex boot process because its actually a graphics chip with an arm coprocessor. So on boot the graphics chip starts and needs to start the slave arm core.


This process is internal to broadcom so you need to keep the binary blob bootloader.
User avatar
Owen
Member
Member
Posts: 1700
Joined: Fri Jun 13, 2008 3:21 pm
Location: Cambridge, United Kingdom
Contact:

Re: Raspberry Pi Boot Process

Post by Owen »

I'm not familiar with the Raspberry Pi's boot process, but I can comment from a more general perspective: Its not uncommon for ARM SoCs to support booting off of a flash chip/SD card/MMC card formatted with either an MBR or FAT. Many Freescale SOCs will try to boot by reading an image from a partition marked with a special partition type identifier; while most TI OMAP cores, if I remember correctly, will look for a FAT file system and then read a specific file off of it.

In both cases these files are in a custom simple image format (Generally just binary with a custom header)
Post Reply