1
0
Fork 0
mirror of https://github.com/u-boot/u-boot.git synced 2025-04-26 07:17:10 +00:00

upl: Add initial documentation

Add some documentation to explain the basic concept along with a link
to the full spec.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2024-08-07 16:47:36 -06:00 committed by Tom Rini
parent b3cb1c4c0b
commit 3a1a3d549b
4 changed files with 50 additions and 2 deletions

View file

@ -1716,6 +1716,7 @@ T: git https://source.denx.de/u-boot/custodians/u-boot-dm.git
F: boot/upl*
F: cmd/upl.c
F: common/spl/spl_upl.c
F: doc/usage/upl.rst
F: doc/usage/cmd/upl.rst
F: include/upl.h
F: test/boot/upl.c

View file

@ -16,8 +16,8 @@ Description
-----------
The *upl* command is used to test U-Boot's support for the Universal Payload
Specification (UPL) firmware standard. It allows creation of a fake handoff for
use in testing.
Specification (UPL) firmware standard (see :doc:`../upl`). It allows creation of
a fake handoff for use in testing.
upl write

View file

@ -15,6 +15,7 @@ Use U-Boot
cmdline
semihosting
measured_boot
upl
Shell commands
--------------

46
doc/usage/upl.rst Normal file
View file

@ -0,0 +1,46 @@
.. 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