board: total_Compute: enable bloblist for SPL handoff
authorJayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
Thu, 8 May 2025 10:55:55 +0000 (11:55 +0100)
committerTom Rini <trini@konsulko.com>
Fri, 23 May 2025 14:01:15 +0000 (08:01 -0600)
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@arm.com>
arch/arm/Kconfig
board/armltd/total_compute/Makefile
board/armltd/total_compute/total_compute.c
board/armltd/total_compute/total_compute.env
configs/total_compute_defconfig

index fedfdb2..79f60eb 100644 (file)
@@ -1416,7 +1416,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
index f1ef5a0..615c787 100644 (file)
@@ -4,4 +4,4 @@
 # Usama Arif <usama.arif@arm.com>
 
 obj-y  := total_compute.o
-obj-y  += lowlevel_init.o
+obj-$(CONFIG_OF_HAS_PRIOR_STAGE)       += lowlevel_init.o
index 75ba3c3..75bc6b0 100644 (file)
@@ -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
index 7924632..84d5a10 100644 (file)
@@ -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...';
index 70bec3b..e66c011 100644 (file)
@@ -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