AddThis Social Bookmark Button

07 Bootloader

Overview
The bootloader is in charge of loading kernel. There are so many bootloaders available that we can not describe them in detail. The features of bootloaders are quite different. More and more features have been integrated into the bootloaders. However during power on period, the memory is limited, so the developer has to configure the bootloader to fit own project.

Bootloaders
The open source bootloaders for Linux include:

 

LILO was the default bootloader for most Linux distributions in the years after the popularity of loadlin. Today, most distributions use GRUB as the default.

 

 

 

 

GRUB. It is predominantly used on Unix-like systems; the GNU operating system uses GNU GRUB as its boot loader, as do most general-purpose Linux distributions.

 

 

 

 

ROLO is a simple ROM bootloader for x86-based Linux systems. ROLO is a part of the ELinOS Embedded Linux Distribution.

 

 

 

 

loadlin is a Linux boot loader that runs under DOS or Microsoft Windows (95, 98 or Me only).

 

 

 

 

Etherboot is a software package for creating ROM images that can download code over an Ethernet network to be executed on an x86 computer.

 

 

 

 

LinuxBIOS/coreboot coreboot (formerly known as LinuxBIOS) is a Free Software project aimed at replacing the proprietary BIOS (firmware) you can find.

 

 

 

 

bootldr, by Compaq.

 

 

 

 

 

Blob is a boot loader for SA11x0 (StrongARM) platforms. Blob is able to boot a Linux kernel stored in flash or RAM and provide that kernel with a ram disk.

 

 

 

 

PMON. The PMON/2000 BootROM Monitor (PMON/2000) permits full-featured debugging to be performed on a target board that has a serial port, 512KB of ROM, and 128KB of RAM that can be dedicated to the Prom Monitor software.

 

 

 

Das U-Boot. The "U-Boot" Universal Bootloader project provides firmware for many CPU architectures and boards with full source code under GPL. Up to now, U-Boot is commonly recognized as most featured bootloader and ported to many platforms.

 

 

 

RedBoot. It is a comprehensive debug and bootstrap firmware solution for the development, deployment, and management of embedded devices. It supports a wide variety of embedded applications ranging from native stand-alone, proprietary and eCos RTOS based applications, through to embedded Linux based systems. RedBoot is fully open source, and free of royalty and license fees.

Network Booting
If possible, networking booting is very useful during kernel and RFS development. To boot the target system, we can use BOOTP/DHCP, TFTP and NFS. So the host computer should be configured to support BOOTP/DHCP request, transfer kernel via TFTP and NFS.


More about U-Boot

 

This site is official site for U-Boot maintainer Wolfgang Denk.

Das U-Boot is German words, which stand for The Universal bootloader. This project is developed upon FADSROM, 8xxROM, PPCBoot. The directory, makefile are quite similar with Linux development. Actually part of the code is ported from Linux kernel, most of them are device drivers. U-Boot supports embedded Linux and many other OSes, including NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, Solaris, Irix, SCO, and pSOS. U-Boot is also support PPC, MIPS, x86, NIOS, XScale processors.

U-Boot features:

  • System boot from NFS, RAMDISK RFS;
  • NFS mount, load compressed or uncompressed kernel from flash memory;
  • System configurable;
  • Fully support flash memory, NVRAM and EEPROM;
  • CRC32 for data integration check in flash and RAM disk;
  • Very rich device drivers for serial, SDRAM, flash, Ethernet, LCD, NVRAM, EEPROM, keypad, USB, PCMCIA, PCI and RTC;
  • Power On Self Testing (POST) for SDRAM, flash and CPU;
  • XIP kernel boot.