mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 18:04:48 +00:00

Add some documentation to explain the basic concept along with a link to the full spec. Signed-off-by: Simon Glass <sjg@chromium.org>
46 lines
1.4 KiB
ReStructuredText
46 lines
1.4 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
Universal Payload
|
|
-----------------
|
|
|
|
`Universal Payload (UPL) <https://universalpayload.github.io/spec/index.html>`_
|
|
is an Industry Standard for firmware components. UPL
|
|
is designed to improve interoperability within the firmware industry, allowing
|
|
mixing and matching of projects with less friction and fewer project-specific
|
|
implementations. UPL is cross-platform, supporting ARM, x86 and RISC-V
|
|
initially.
|
|
|
|
UPL is defined in termns of two firmware components:
|
|
|
|
`Platform Init`
|
|
Perhaps initial setup of the hardware and jumps to the payload.
|
|
|
|
`Payload`
|
|
Selects the OS to boot
|
|
|
|
In practice UPL can be used to handle any number of handoffs through the
|
|
firmware startup process, with one program acting as platform init and another
|
|
acting as the payload.
|
|
|
|
UPL provides a standard for three main pieces:
|
|
|
|
- file format for the payload, which may comprise multiple images to load
|
|
- handoff format for the information the payload needs, such as serial port,
|
|
memory layout, etc.
|
|
- machine state and register settings at the point of handoff
|
|
|
|
See also the :doc:`cmd/upl`.
|
|
|
|
UPL in U-Boot
|
|
~~~~~~~~~~~~~
|
|
|
|
U-Boot supports:
|
|
|
|
- writing a UPL handoff (devicetree) in SPL
|
|
- reading a UPL handoff in U-Boot proper
|
|
- creating a FIT
|
|
|
|
There are some new FIT features in UPL which are not yet supported in U-Boot.
|
|
|
|
.. sectionauthor:: Simon Glass <sjg@chromium.org>
|
|
.. July 2024
|