[PATCH v2 00/18] Support Firmware Handoff spec via bloblist

Raymond Mao raymond.mao at linaro.org
Mon Nov 27 20:50:11 CET 2023


Major changes:

Update bloblist to align to Firmware Handoff spec v0.9
(https://github.com/FirmwareHandoff/firmware_handoff).

Implement Qemu-Arm platform custom functions to retrieve the bloblist
(aka. Transfer List) from previous loader via boot arguments when
CONFIG_OF_BOARD option is enabled.

If a board provides both custom functions for getting the bloblist and
the address of external FDT, the FDT inside the bloblist will be prioritized
during FDT setup.

The patch set is tested with previous done TF-A/OP-TEE patches through a
complete Firmware Handoff cycle (BL2, BL31, BL32, BL33).
TF-A Patches:
feat(handoff): introduce firmware handoff library
(https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/22215)
feat(qemu): implement firmware handoff on qemu
(https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/22178)
feat(handoff): enhance transfer list library
(https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/23776)
feat(optee): enable transfer list in opteed
(https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/23777)
feat(qemu): enable transfer list to BL31/32
(https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/23778)
OP-TEE Patch:
Firmware handoff
(https://github.com/OP-TEE/optee_os/pull/6308)
fixup of transfer list entry overriding
(https://github.com/OP-TEE/optee_os/pull/6461)

Raymond Mao (3):
  bloblist: Align bloblist used_size and total_size to spec
  qemu-arm: Get bloblist from boot arguments
  bloblist: Load the bloblist from the previous loader

Simon Glass (15):
  bloblist: Update the tag numbering
  bloblist: Adjust API to align in powers of 2
  bloblist: Change the magic value
  bloblist: Set version to 1
  bloblist: Access record hdr_size and tag via a function
  bloblist: Drop the flags value
  bloblist: Drop the spare values
  bloblist: Change the checksum algorithm
  bloblist: Checksum the entire bloblist
  bloblist: Handle alignment with a void entry
  bloblist: Reduce blob-header size
  bloblist: Reduce bloblist header size
  bloblist: Add alignment to bloblist_new()
  bloblist: Update documentation and header comment
  fdt: Allow the devicetree to come from a bloblist

 arch/x86/lib/tables.c                    |   3 +-
 board/emulation/qemu-arm/Makefile        |   1 +
 board/emulation/qemu-arm/lowlevel_init.S |  19 ++
 board/emulation/qemu-arm/qemu-arm.c      |  54 ++++++
 common/bloblist.c                        | 225 +++++++++++++----------
 configs/qemu_arm64_defconfig             |   3 +
 configs/qemu_arm_defconfig               |   3 +
 doc/develop/bloblist.rst                 |   4 +-
 doc/develop/devicetree/control.rst       |   8 +-
 dts/Kconfig                              |   9 +-
 include/bloblist.h                       | 181 ++++++++++--------
 include/fdtdec.h                         |   3 +-
 lib/fdtdec.c                             |  52 ++++--
 test/bloblist.c                          |  86 ++++-----
 14 files changed, 420 insertions(+), 231 deletions(-)
 create mode 100644 board/emulation/qemu-arm/lowlevel_init.S

-- 
2.25.1



More information about the U-Boot mailing list