Chapter 3. All About Bootloaders
The bootloader is the second element of embedded Linux. It is the part that starts the system up and loads the operating system kernel. In this chapter, I will look at the role of the bootloader and, in particular, how it passes control from itself to the kernel using a data structure called a device tree, also known as a flattened device tree or FDT. I will cover the basics of device trees, so that you will be able to follow the connections described in a device tree and relate it to real hardware.
I will look at the popular open source bootloader, U-Boot, and show you how to use it to boot a target device, and also how to customize it to run on a new device, using the BeagleBone Black as an example. Finally, I will take a quick look at Barebox, a bootloader that shares its past with U-Boot, but which has, arguably, a cleaner design.
In this chapter, we will cover the following topics:
- What does a bootloader do?
- The boot sequence.
- Booting with UEFI firmware.
- Moving...