From: eLinux.org
Briefly, a bootloader is the first software program that runs when a computer starts. It is responsible for loading and transferring control to the operating system kernel software (such as the Hurd or the Linux). The kernel, in turn, initializes the rest of the operating system (e.g. GNU).
Bootloader | ARM | BFIN | MIPS | PPC | SH | x86 | remarks |
---|---|---|---|---|---|---|---|
APEX | y | - | ? | ? | ? | ? | |
Barebox (U-Boot-v2) | y | y | y | y | (in progress) | y | allows networked setup, integrated editor and scripting |
Blob | y | - | - | - | - | - | |
CFE | - | - | y | - | - | - | for specific BroadCom chipsets |
coreboot (LinuxBIOS) [1] | y | - | - | - | - | y | Conference talk by Peter Stuge at Embedded Linux Conference Europe 2008, video |
Kexecboot | y | - | - | - | - | ? | is a second-stage bootloader, consisting of the Linux kernel and a small gui |
U-Boot | y | y | y | y | y | y | allows networked setup |
Grub | ? | - | ? | y | - | y | |
Lilo | - | - | - | - | - | y | x86 only, requires nasm to build |
MicroMonitor | y | y | ? | y | y | ? | |
PMON 2000 | - | - | y | - | - | - | |
Qi | y | - | - | - | - | - | Very fast, simple boot direct to Linux |
RedBoot | y | ? | y | y | y | y | allows networked setup |
Syslinux | - | - | - | - | - | y | variants (including) isolinux are very flexible for booting x86 |
Yaboot | - | - | - | y | - | - | |
YAMON | - | - | y | - | - | - |
A lot more exhaustive list is available at Wikipedia
Please don't pick any of these for new designs!