Meaning
Code components for hardware initialization are designed to be used by both the startup firmware and the main operating system. Using shared bootloader drivers reduces the total size of the system image by eliminating duplicate logic. This approach is common in memory constrained devices like low power wireless trackers.
Maintenance Advantage
Updating a single library fixes bugs for both the boot process and the runtime environment. When engineers use shared bootloader drivers, they ensure that the hardware is configured identically in both stages of operation. This consistency prevents subtle bugs that can occur when a driver expects the hardware to be in a specific state.
Security Implication
Trusted execution environments rely on a secure handover of hardware control. Vulnerabilities in shared bootloader drivers can affect the integrity of the entire system from the moment of power on. Rigorous auditing of these common components is necessary to prevent a single flaw from compromising the device.
Memory Management
Static linking of these drivers ensures they are always available in a known location. In systems with limited flash, shared bootloader drivers provide a way to fit complex features into a small footprint. This efficiency allows for more sophisticated recovery and update mechanisms in the bootloader.