Boot Stages in an Embedded System

M. Waseem Abbas
2 min readApr 10, 2023

When an embedded system boots up, the Boot ROM is the first code that is executed. It resides in an on chip non-volatile memory and its primary responsibility is to initialize the hardware, check for any errors or malfunctions, and then load the First Stage Boot Loader (FSBL) into memory.

The FSBL is a small piece of code that is responsible for initializing the hardware and memory e.g. external DDR, setting up the execution environment, and loading the Secondary Stage Boot Loader (SSBL) into memory. The SSBL is an optional component that provides additional functionality during the boot process.

Once the FSBL has successfully completed its tasks, it hands over control to the SSBL, if it is present. The SSBL can perform additional checks, such as verifying the integrity of the OS Kernel before loading it into memory.

Finally, the OS Kernel, typically an RTOS (Real Time Operating System), is loaded into memory and executed. The Kernel is the core of the operating system and is responsible for managing the hardware and software resources of the device. It provides services such as memory management, process management, device driver interfaces, and system call interfaces to user-level applications.

Overall, the boot sequence of an embedded system involves several stages, including Boot ROM, FSBL, SSBL (optional), and OS Kernel. Each stage has a specific role in initializing the system and preparing it for use.

Understanding the boot sequence of an embedded system is crucial for developers and engineers who are involved in designing and implementing such systems. It can help identify potential issues and ensure that the system is booting up correctly.

--

--