[PATCH 0/4] vpl: Introduce a verifying program loader

Simon Glass sjg at chromium.org
Sat May 8 00:37:19 CEST 2021


U-Boot provides a verified-boot feature based around FIT, but there is
no standard way of implementing it for a board. At present the various
required pieces must be built up separately, to produce a working
implementation. In particular, there is no built-in support for selecting
A/B boot or recovery mode.

This series introduces VPL, a verified program loader. Its purpose is to
run the verified-boot process and decide which SPL binary should be run.
Adding VPL into the boot flow provides a standard way of implementing
verified boot. So far, only the phase itself is added. More work is
needed to add logic to the phase, based on continuing discussions about
how best to standardise this feature.


Simon Glass (4):
  doc: Convert SPL documentation to ReST
  doc: Expand SPL docs to explain the phase and config
  binman: Add VPL support
  Introduce Verifying Program Loader (VPL)

 common/Kconfig                             |  67 ++++++++
 common/spl/Kconfig                         | 168 ++++++++++++++++++++-
 common/spl/spl.c                           |  25 ++-
 doc/develop/index.rst                      |   1 +
 doc/{README.SPL => develop/spl.rst}        |  99 +++++++-----
 include/bootstage.h                        |   2 +
 include/linux/kconfig.h                    |   3 +
 include/spl.h                              |  20 ++-
 lib/Kconfig                                |  54 +++++++
 scripts/Kbuild.include                     |   4 +
 scripts/Makefile.build                     |   4 +
 tools/binman/etype/u_boot_vpl.py           |  42 ++++++
 tools/binman/etype/u_boot_vpl_bss_pad.py   |  44 ++++++
 tools/binman/etype/u_boot_vpl_dtb.py       |  28 ++++
 tools/binman/etype/u_boot_vpl_expanded.py  |  45 ++++++
 tools/binman/etype/u_boot_vpl_nodtb.py     |  42 ++++++
 tools/binman/ftest.py                      | 110 +++++++++++---
 tools/binman/state.py                      |   3 +-
 tools/binman/test/082_fdt_update_all.dts   |   2 +
 tools/binman/test/201_u_boot_vpl.dts       |  11 ++
 tools/binman/test/202_u_boot_vpl_nodtb.dts |  13 ++
 tools/binman/test/203_fdt_incl_vpl.dts     |  13 ++
 tools/binman/test/204_vpl_bss_pad.dts      |  17 +++
 23 files changed, 748 insertions(+), 69 deletions(-)
 rename doc/{README.SPL => develop/spl.rst} (61%)
 create mode 100644 tools/binman/etype/u_boot_vpl.py
 create mode 100644 tools/binman/etype/u_boot_vpl_bss_pad.py
 create mode 100644 tools/binman/etype/u_boot_vpl_dtb.py
 create mode 100644 tools/binman/etype/u_boot_vpl_expanded.py
 create mode 100644 tools/binman/etype/u_boot_vpl_nodtb.py
 create mode 100644 tools/binman/test/201_u_boot_vpl.dts
 create mode 100644 tools/binman/test/202_u_boot_vpl_nodtb.dts
 create mode 100644 tools/binman/test/203_fdt_incl_vpl.dts
 create mode 100644 tools/binman/test/204_vpl_bss_pad.dts

-- 
2.31.1.607.g51e8a6a459-goog



More information about the U-Boot mailing list