Universal Payload (UPL) is an upcoming 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.
This series provides some initial support for this, for comment only. Simon Glass (9): 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 Plumb in universal payload to the init process sandbox_vpl: Enable Universal Payload upl: Add initial documentation boot/Kconfig | 72 +++- boot/Makefile | 4 + boot/upl_common.c | 51 +++ boot/upl_common.h | 24 ++ boot/upl_read.c | 607 +++++++++++++++++++++++++++++ boot/upl_write.c | 623 ++++++++++++++++++++++++++++++ cmd/Kconfig | 7 + cmd/Makefile | 1 + cmd/upl.c | 99 +++++ common/board_f.c | 22 ++ common/board_r.c | 2 + common/spl/Makefile | 2 + common/spl/spl.c | 6 + common/spl/spl_fit.c | 22 ++ common/spl/spl_upl.c | 153 ++++++++ configs/sandbox_defconfig | 6 +- configs/sandbox_vpl_defconfig | 4 + doc/usage/cmd/upl.rst | 149 +++++++ doc/usage/index.rst | 2 + doc/usage/upl.rst | 27 ++ include/asm-generic/global_data.h | 15 + include/spl.h | 11 + include/upl.h | 361 +++++++++++++++++ test/boot/Makefile | 2 + test/boot/upl.c | 457 ++++++++++++++++++++++ test/py/tests/test_upl.py | 25 ++ 26 files changed, 2750 insertions(+), 4 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.42.0.rc2.253.gd59a3bf2b4-goog