[PATCH 1/1] board: total_Compute: enable bloblist for SPL handoff
Jayanth Dodderi Chidanand
jayanthdodderi.chidanand at arm.com
Thu May 8 12:55:55 CEST 2025
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.chidanand at 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.arif at 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
More information about the U-Boot
mailing list