> From: Simon Glass <s...@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 > >