Add bloblist support to total_comput platform for passing data from TF-A using the firmware handoff framework.
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidan...@arm.com> --- arch/arm/Kconfig | 2 +- board/armltd/total_compute/Makefile | 2 +- board/armltd/total_compute/total_compute.c | 5 ++++- board/armltd/total_compute/total_compute.env | 6 ++++++ configs/total_compute_defconfig | 3 +++ 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index b7311d3b754..0c04048f0e5 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1415,7 +1415,7 @@ config TARGET_TOTAL_COMPUTE select DM_SERIAL select DM_GPIO select MMC - imply OF_HAS_PRIOR_STAGE + imply OF_HAS_PRIOR_STAGE if !BLOBLIST imply MISC_INIT_R config TARGET_LS2080A_EMU diff --git a/board/armltd/total_compute/Makefile b/board/armltd/total_compute/Makefile index f1ef5a0c39a..615c7876353 100644 --- a/board/armltd/total_compute/Makefile +++ b/board/armltd/total_compute/Makefile @@ -4,4 +4,4 @@ # Usama Arif <usama.a...@arm.com> obj-y := total_compute.o -obj-y += lowlevel_init.o +obj-$(CONFIG_OF_HAS_PRIOR_STAGE) += lowlevel_init.o diff --git a/board/armltd/total_compute/total_compute.c b/board/armltd/total_compute/total_compute.c index 75ba3c33d56..75bc6b0631f 100644 --- a/board/armltd/total_compute/total_compute.c +++ b/board/armltd/total_compute/total_compute.c @@ -31,6 +31,7 @@ static struct mm_region total_compute_mem_map[TC_MEM_MAP_MAX] = { struct mm_region *mem_map = total_compute_mem_map; +#ifdef CONFIG_OF_HAS_PRIOR_STAGE /* * Push the variable into the .data section so that it * does not get cleared later. @@ -45,14 +46,16 @@ int board_fdt_blob_setup(void **fdtp) *fdtp = (void *)fw_dtb_pointer; return 0; } +#endif int misc_init_r(void) { size_t base; +#ifdef CONFIG_OF_HAS_PRIOR_STAGE if (!env_get("fdt_addr_r")) env_set_hex("fdt_addr_r", fw_dtb_pointer); - +#endif if (!env_get("kernel_addr_r")) { /* * The kernel has to be 2M aligned and the first 64K at the diff --git a/board/armltd/total_compute/total_compute.env b/board/armltd/total_compute/total_compute.env index 7924632678e..84d5a10b107 100644 --- a/board/armltd/total_compute/total_compute.env +++ b/board/armltd/total_compute/total_compute.env @@ -11,6 +11,12 @@ bootcmd= blk_dev=mmc; fi; echo block device is ${blk_dev}; + if test -n "${fdt_addr_r}"; then + echo "Custom FDT at ${fdt_addr_r}"; + else; + setenv fdt_addr_r ${fdtcontroladdr}; + echo "FDT address is now set to ${fdt_addr_r}"; + fi; if part number ${blk_dev} 0 vbmeta is_avb; then echo '${blk_dev} with vbmeta partition detected.'; echo 'Starting Android Verified boot...'; diff --git a/configs/total_compute_defconfig b/configs/total_compute_defconfig index 70bec3ba3a0..e66c011efb1 100644 --- a/configs/total_compute_defconfig +++ b/configs/total_compute_defconfig @@ -55,3 +55,6 @@ CONFIG_SYS_FLASH_CFI=y CONFIG_SYS_MAX_FLASH_SECT=256 # CONFIG_RANDOM_UUID is not set CONFIG_LIBAVB=y +CONFIG_BLOBLIST=y +CONFIG_BLOBLIST_PASSAGE_MANDATORY=y +CONFIG_BLOBLIST_SIZE_RELOC=0x10000 -- 2.34.1