[PATCH v2 00/21] Universal Payload initial series
Mark Kettenis
mark.kettenis at xs4all.nl
Sat Jul 13 10:12:50 CEST 2024
> From: Simon Glass <sjg at chromium.org>
> Date: Sat, 13 Jul 2024 08:00:34 +0100
>
> Universal Payload (UPL) is an Industry Standard for firmware
> components[1].
I think you have some trouble understanding the concept of industry
standard ;). I guess you want this to become an industry standard.
Firmly https://xkcd.com/927/ territory if you ask me.
> 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.
>
> This series provides some initial support for this, targeting 0.9.1 and
> sandbox only.
>
> Features still to come include:
> - Support for architectures
> - FIT validation
> - Handoff validation
> - Interoperability tests
>
> This series is available at dm/uplb-working and requires the alist
> series at dm/alist-working[2]
>
> [1] https://universalpayload.github.io/spec/
> [2] https://patchwork.ozlabs.org/project/uboot/list/?series=414642
>
> Changes in v2:
> - Put the upl tests under their own subcommand to avoid bootstd init
> - Add a function to init the UPL process in SPL
> - Hang when something goes wrong, to avoid a broken boot
> - Add a runtime flag to enable UPL
> - Add a link to the spec
> - Add a link to the command
> - Support CI testing
> - Rework to use alist instead of fixed-length arrays
>
> Simon Glass (21):
> sandbox: Use const in os_jump_to_file()
> sandbox: Fix a comment in os_find_u_boot()
> test: Move some SPL-loading test-code into sandbox common
> sandbox: Enable SPL_LOAD_BLOCK
> fdt: Don't overwrite bloblist devicetree
> sandbox: fdt: Avoid overwriting an existing fdt
> sandbox: Return error code from read/write/seek
> sandbox: Add ELF file to VPL u-boot.img
> sandbox: Set up global_data earlier
> upl: Add support for reading a upl handoff
> upl: Add support for writing a upl handoff
> upl: Add basic tests
> upl: Add a command
> upl: Add support for Universal Payload in SPL
> spl: Plumb in the Universal Payload handoff
> upl: Plumb in universal payload to the init process
> sandbox_vpl: Enable Universal Payload
> upl: Add initial documentation
> sandbox: Add a flag to enable UPL
> sandbox: Add an SPL loader for UPL
> upl: Add an end-to-end test
>
> MAINTAINERS | 13 +
> Makefile | 4 +-
> arch/sandbox/cpu/cpu.c | 2 +
> arch/sandbox/cpu/os.c | 30 +-
> arch/sandbox/cpu/spl.c | 116 +++++-
> arch/sandbox/cpu/start.c | 18 +-
> arch/sandbox/include/asm/spl.h | 15 +
> arch/sandbox/include/asm/state.h | 1 +
> boot/Kconfig | 70 ++++
> boot/Makefile | 4 +
> boot/upl_common.c | 60 +++
> boot/upl_common.h | 24 ++
> boot/upl_read.c | 588 ++++++++++++++++++++++++++++
> boot/upl_write.c | 622 ++++++++++++++++++++++++++++++
> cmd/Kconfig | 7 +
> cmd/Makefile | 1 +
> cmd/upl.c | 118 ++++++
> common/board_f.c | 22 ++
> common/board_r.c | 2 +
> common/spl/Kconfig | 1 +
> common/spl/Makefile | 2 +
> common/spl/spl.c | 8 +
> common/spl/spl_fit.c | 22 ++
> common/spl/spl_upl.c | 171 ++++++++
> configs/sandbox_defconfig | 1 +
> configs/sandbox_vpl_defconfig | 4 +
> doc/usage/cmd/upl.rst | 186 +++++++++
> doc/usage/index.rst | 2 +
> doc/usage/upl.rst | 46 +++
> drivers/block/sandbox.c | 4 +-
> drivers/usb/emul/sandbox_flash.c | 2 +-
> fs/sandbox/sandboxfs.c | 6 +-
> include/asm-generic/global_data.h | 19 +
> include/os.h | 6 +-
> include/spl.h | 16 +
> include/test/suites.h | 1 +
> include/upl.h | 361 +++++++++++++++++
> lib/fdtdec.c | 1 +
> test/boot/Makefile | 2 +
> test/boot/upl.c | 436 +++++++++++++++++++++
> test/cmd_ut.c | 3 +
> test/image/spl_load_os.c | 53 +--
> test/py/tests/test_upl.py | 38 ++
> 43 files changed, 3036 insertions(+), 72 deletions(-)
> create mode 100644 boot/upl_common.c
> create mode 100644 boot/upl_common.h
> create mode 100644 boot/upl_read.c
> create mode 100644 boot/upl_write.c
> create mode 100644 cmd/upl.c
> create mode 100644 common/spl/spl_upl.c
> create mode 100644 doc/usage/cmd/upl.rst
> create mode 100644 doc/usage/upl.rst
> create mode 100644 include/upl.h
> create mode 100644 test/boot/upl.c
> create mode 100644 test/py/tests/test_upl.py
>
> --
> 2.34.1
>
>
More information about the U-Boot
mailing list