U-Boot on boot core as an always-on debug tool
2026-05-27 , Auditorium

Contemporary SoCs perform initial system boot on a dedicated core and start the additional cores only after the system was fully initialized. This boot core may be a Cortex-M, which is also capable of running U-Boot, and remains active even after the other cores started.

This talk first clarifies the specifics of porting U-Boot to Cortex-M, including read-only text and read-write data at offset, limited SRAM size, partial relocation, console access, and start of the additional cores.

Next, the talk explains how U-Boot running on the boot core can be used as an always-on debug tool, to inspect the state of the other cores, peripherals and memory in the system. This includes interaction with peripherals even if the other cores may have crashed, and the use of DMA to access memory above the 32bit boundary. The talk ends with a real-world example of such a setup.

Marek is an embedded systems consultant, with primary focus on upstream U-Boot bootloader, Linux kernel and OpenEmbedded. Recently, Marek has been working on hardware assisted testing instrumentation for various embedded system components to improve long term maintainability.