U-Boot -- Running an off the shelf distro on your embedded board
2026-05-27 , Auditorium

Basic UEFI support was added to U-Boot back in 2016. Back then it had
- Rudimentary UEFI support
- Ability to read/store UEFI variables to/from the U-Boot environment
- No UEFI secure boot
- No UEFI measured boot
- No capsule update support, even without authentication
- UEFI Boot Manager was just merged with only basic features

Over the years the UEFI implementation has matured making it easy to launch standard off the shelf distros in embedded hardware. We'll go through the features, starting from the initial EBBR support in U-Boot up to booting an OS (installing the OS over a disk or HTTPs as well as running live images) and all the problems we solved along the way.

  • A small introduction to UEFI, EBBR and SystemReady
  • How to install and boot off the shelf distros on embedded boards
  • What is UEFI secure boot and how you can enable it on your hardware. Multiple options exist and it depends on the available storage -- SPI, RPMB, eMMC, SD card only etc
  • How to enable and use UEFI measured boot
  • EFI HTTPs boot (with lwIP and mbedTLS support)
  • Authenticated capsule updates. How to add support for your board and how to use them via LVFS
  • A/B update support for firmware
  • SetVariable at runtime options and why distros need it

I plan to cover the entire lifecycle of booting distros on embedded hardware.
My team and I have written many blog posts for Linaro over the years (https://www.linaro.org/blog?tags=u-boot) explaining most of the functionality. I'd like to have a presentation on the entire end to end flow.

I've been working with embedded systems more than 20 years. Lately I've focused on bootlaoders, UEFI and security