Open Source Firmware Conference 2025

Guo Dong

Guo Dong has been actively engaged in firmware development since 2007, beginning with contributions to EDK and EDK2. After several years of experience with coreboot, he co-founded the Slim Bootloader (SBL) project alongside his team. Guo Dong currently focuses on advancing SBL and developing UEFI payload solutions, maintaining a strong commitment to open-source firmware innovation and platform enablement.


Session

10-09
10:35
15min
An introduction and update on Universal Payload Specification
Guo Dong, Dhaval Sharma

The Universal Payload Specification (UPL) defines a standardized interface between the Platform Initialization (bootloader) phase—which sets up system hardware—and the Payload phase. In the context of boot firmware, the Payload is the component responsible for initializing the boot media and launching the operating system. The Universal Payload is designed to be both platform-independent and bootloader-independent, enabling a single payload implementation to work across diverse hardware and firmware environments.
UPL specifies how to format and pass parameters to the Payload, ensuring interoperability between spec-compliant bootloader and Payload stages. This approach allows Payloads to be distributed independently of board firmware, and by formalizing these interfaces, UPL aims to accelerate board bring-up and simplify the integration of open-source firmware components.

This paper will:
- Highlight the need for a universal contract, illustrated with real-world examples from ARM, x86, and RISC-V devices.
- Detail UPL’s table-driven boot flow and its compatibility with existing device tree and FIT tooling.
- Present implementation experience reports for RISC-V platforms using Tianocore as a payload, as well as x86 platforms with SBL and Tianocore.

We conclude that:
The Universal Payload Specification has the potential to become a foundational element for a fully open, reusable, and verifiable firmware ecosystem, and we outline the remaining challenges and future milestones on this path.

Link to the spec:
https://universalpayload.github.io/spec/

Upstreamed patches for reference:
https://github.com/tianocore/edk2/tree/master/UefiPayloadPkg

SR1