arm: total_compute: Initialize environment variables
authorBoyan Karatotev <boyan.karatotev@arm.com>
Fri, 25 Oct 2024 17:18:15 +0000 (18:18 +0100)
committerTom Rini <trini@konsulko.com>
Mon, 4 Nov 2024 20:50:43 +0000 (14:50 -0600)
Initialize the environment variables 'fdt_addr_r' and 'kernel_addr_r'
during the misc init phase. The static configurations are not needed,
remove them.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
arch/arm/Kconfig
board/armltd/total_compute/total_compute.c
include/configs/total_compute.h

index d012741..f4ce884 100644 (file)
@@ -1391,6 +1391,7 @@ config TARGET_TOTAL_COMPUTE
        select DM_MMC
        select DM_GPIO
        imply OF_HAS_PRIOR_STAGE
+       imply MISC_INIT_R
 
 config TARGET_LS2080A_EMU
        bool "Support ls2080a_emu"
index 571a075..02bb648 100644 (file)
@@ -8,6 +8,8 @@
 #include <dm.h>
 #include <dm/platform_data/serial_pl01x.h>
 #include <env.h>
+#include <linux/sizes.h>
+
 #include <asm/armv8/mmu.h>
 #include <asm/global_data.h>
 #include <asm/system.h>
@@ -51,6 +53,27 @@ void *board_fdt_blob_setup(int *err)
        return (void *)fw_dtb_pointer;
 }
 
+int misc_init_r(void)
+{
+       size_t base;
+
+       if (!env_get("fdt_addr_r"))
+               env_set_hex("fdt_addr_r", fw_dtb_pointer);
+
+       if (!env_get("kernel_addr_r")) {
+               /*
+                * The kernel has to be 2M aligned and the first 64K at the
+                * start of SDRAM is reserved for DTB.
+                */
+               base = gd->ram_base + SZ_2M;
+               assert(IS_ALIGNED(base, SZ_2M));
+
+               env_set_hex("kernel_addr_r", base);
+       }
+
+       return 0;
+}
+
 int board_init(void)
 {
        return 0;
index 205e6a6..8053dca 100644 (file)
@@ -14,9 +14,7 @@
 #define CFG_EXTRA_ENV_SETTINGS \
                                "bootm_size=0x20000000\0"       \
                                "load_addr=0xa0000000\0"        \
-                               "kernel_addr_r=0x80080000\0"    \
-                               "initrd_addr_r=0x88000000\0"    \
-                               "fdt_addr_r=0x83000000\0"
+                               "initrd_addr_r=0x88000000\0"
 /*
  * If vbmeta partition is present, boot Android with verification using AVB.
  * Else if system partition is present (no vbmeta partition), boot Android