diff options
author | Boyan Karatotev <boyan.karatotev@arm.com> | 2024-10-25 18:18:15 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-11-04 14:50:43 -0600 |
commit | ea70352af8a7ca0025c44c309dc9e28f6ed956ce (patch) | |
tree | 53931f38ad54049d220d693412591d1cd292d9a5 | |
parent | ed3649472467275e5c9430def028d54263f73a1b (diff) |
arm: total_compute: Initialize environment variables
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>
-rw-r--r-- | arch/arm/Kconfig | 1 | ||||
-rw-r--r-- | board/armltd/total_compute/total_compute.c | 23 | ||||
-rw-r--r-- | include/configs/total_compute.h | 4 |
3 files changed, 25 insertions, 3 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index d0127418ee1..f4ce884e376 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -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" diff --git a/board/armltd/total_compute/total_compute.c b/board/armltd/total_compute/total_compute.c index 571a0751457..02bb648ce71 100644 --- a/board/armltd/total_compute/total_compute.c +++ b/board/armltd/total_compute/total_compute.c @@ -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; diff --git a/include/configs/total_compute.h b/include/configs/total_compute.h index 205e6a62787..8053dca315c 100644 --- a/include/configs/total_compute.h +++ b/include/configs/total_compute.h @@ -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 |