[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