The wiki is being retired!
Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!
coreboot in itself is "only" minimal code for initializing a mainboard with peripherals. After the initialization, it jumps to a payload.
GRUB2 is the standard bootloader for Linux and other Unix-like operating systems. You can use GRUB2 as a coreboot payload, too, in order to boot and operating system from a hard drive, for instance.
Coreboot can use a Linux kernel as payload directly. That is, the kernel is included in the ROM chip where coreboot resides.
Mitch Bradley's Open Firmware, and IEEE1275-1994 Open Firmware implementations, can also be used as coreboot payload.
OpenBIOS — IEEE1275-1994 Open Firmware.
Etherboot — Includes FILO, and its FILO supports SATA and USB booting.
Memtest86 / Memtest86+
Memtest86 — Can stress-test your RAM.
coreinfo is a coreboot payload which can display various system information.
GRUB invaders multi-boot compliant space invaders game. It can either be started from within GRUB (as a "kernel"), or it can be used as a coreboot payload.
tint is a falling blocks game.
Possible future payloads
The following payloads might or might not work (with more or less changes required) with coreboot -- their usage hasn't been tested or documented so far.
- CodeGen's SmartFirmware — IEEE1275-1994 Open Firmware
- GNUFI (UEFI)
- Plan 9 — A distributed operating system.
- RedBoot / eCos — Real-time OS for embedded systems; initial port to ELF completed but no longer available.
- GPXE — Needs some code changes
- NetBSD — Work in progress
The payload was originally intended to be a Linux kernel stored in flash. Flash ROM growth rate was anticipated optimistically however, today there are not many mainboards that actually have enough flash ROM room for a kernel. 512KB can be seen here-and-there and a few boards come with 1MB. Recent kernels really want that MB, and then you'll only have room for 300-400 KB of initial ramdisk, which could be too small too, depending on the application. During testing, a payload may also be downloaded via X-Modem from the serial debug console, saving flashing time.
So, other payloads are used; the two major ones are FILO and Etherboot. FILO loads a kernel from a filesystem on an IDE device and Etherboot loads a kernel from the network or from a filesystem on an IDE device.
If you're using FILO there is no Linux kernel until FILO loads it, and the kernel loaded by FILO (or Etherboot) can absolutely be the one you want to run in your system. Just set it up with the correct root and init commandline so that it can start init.