Link to this headingBooting

Boot Loader 1: Used to boot the CPU
Boot Loader 2: Used to setup the wires and other devices on the main board.
Boot Loader 3.1: Used to setup the Memory and Memory map
Boot Loader 3.2: Optional Secure Boot
Boot Loader 3.3: U-boot

Link to this headingCoreboot

Link to this headingBooting

Stages:

  1. bootblock
    • switch to 32 bit Protected Mode
    • cache-as-ram (CAR) Setup the heap and stack
  2. verstage (optional)
    • enforce R, R/W premissions on flashmap
    • verify signatures of the flash memory
  3. romstage
    • Initialize RAM, cbmem
    • Mostly Vendor Blobs
  4. postcar
    • Remove cache-as-ram (CAR) Setup
    • switch to RAM Code
  5. ramstage
    • Initalize Hardware, PCI, TPM, Graphics, etc.
    • Set BIOS, ACPI, coreboot tables
    • Check Resume OS?
  6. payload
    • launch Linux, Grub, etc.

Link to this headingUboot

Compile and install bootloaders and uboot