EMBEDDED LINUX
BOOTLOADER
Mohit Singh Gusain
SSE – PeopleTech
Introduction to
Embedded Bootloader
• Software that initializes hardware and loads
the operating system.
• Common Bootloaders:
U-Boot, Barebox, RedBoot, GRUB.
• Find the difference between UEFI, U-BOOT.
Bootloader Functionality
• Hardware Initialization: Setting up CPU,
memory, and peripherals.
• Loading Kernel: Copying the kernel image
into memory.
• Passing Control: Handing over control to
the kernel.
• Error Handling: Managing boot failures and
recovery.
Power-On Self-Test (POST):
• Hardware checks and initialization.
Bootloader Stage:
Booting • Bootloader execution and environment setup.
Process
Overview Kernel Loading:
• Bootloader loads and configures the kernel.
Kernel Initialization:
• Kernel sets up the operating system and
mounts filesystems.
Embedded
Linux boot
process
Bootmode Switch
NXP iMX8 Bootmode Switchs Ti AM62x Bootmode Switchs
ROM Bootloader (RBL)
• The RBL code initializes the PLL (phase
locked loop), CPU, memory controller, and
on-chip devices, and configures other
hardwars.
• The RBL load the SPL image (MLO - Memory
Loader) form the memory as per the
Bootmode switches configuration.
Secondary Program
Loader (SPL)
• SPL reconfigures the PLL.
• Set the UART console if debug port is
enables.
• Initialize the memory (RAM).
• Copies the Uboot image in the DDR
(RAM).
UBOOT
• [Link] : Uboot use this file to get the custom configuration for
booting the kernel.
• Initialize peripherals like i2c, NAND, Flash, Ethernet, USB etc.
• The bootloader Search for the kernel Image in the Flash memory
and decompresses the kernel image into RAM.
• Hand over control to the Linux kernel.
For Reference
• [Link]
process-f3c09e3c1a8f