This patch set adds/adapts a few bloblist APIs and implements Arm arch custom function to retrieve the bloblist (aka. Transfer List) from previous loader via boot arguments when BLOBLIST option is enabled and all boot arguments are compliant to the register conventions defined in the Firmware Handoff spec v0.9.
FDT library function will load the FDT from the bloblist if it exists. Otherwise it fallbacks to get the FDT from traditional way. If an arch wishes to have different behaviors for loading bloblist from the previous boot stage, it is required to implement the custom function xferlist_from_boot_arg(). V5: Drop [PATCH v4 8/9] fdt: update the document and Kconfig description. Raymond Mao (8): bloblist: add API to check the register conventions bloblist: check bloblist with specified buffer size bloblist: refactor of bloblist_reloc() arm: armv7: save boot arguments arm: armv8: save boot arguments arm: Get bloblist from boot arguments bloblist: Load the bloblist from the previous loader fdt: get FDT from bloblist arch/arm/cpu/armv7/start.S | 19 ++++++++ arch/arm/cpu/armv8/start.S | 14 ++++++ arch/arm/lib/Makefile | 2 + arch/arm/lib/xferlist.c | 27 ++++++++++++ arch/arm/lib/xferlist.h | 19 ++++++++ common/bloblist.c | 85 +++++++++++++++++++++++++++--------- common/board_f.c | 9 ++-- configs/qemu_arm64_defconfig | 3 ++ include/bloblist.h | 47 ++++++++++++++++---- lib/fdtdec.c | 18 ++++---- test/bloblist.c | 8 ++-- 11 files changed, 202 insertions(+), 49 deletions(-) create mode 100644 arch/arm/lib/xferlist.c create mode 100644 arch/arm/lib/xferlist.h -- 2.25.1