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:
parent
b3cb1c4c0b
commit
3a1a3d549b
4 changed files with 50 additions and 2 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -15,6 +15,7 @@ Use U-Boot
|
|||
cmdline
|
||||
semihosting
|
||||
measured_boot
|
||||
upl
|
||||
|
||||
Shell commands
|
||||
--------------
|
||||
|
|
46
doc/usage/upl.rst
Normal file
46
doc/usage/upl.rst
Normal 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
|
Loading…
Add table
Reference in a new issue