[PATCH v9 05/11] arm: armv8: mmu: add mem_map_fix_dram_banks

Ilias Apalodimas ilias.apalodimas at linaro.org
Fri Oct 10 13:59:38 CEST 2025


On Fri, 10 Oct 2025 at 08:53, Anshul Dalal <anshuld at ti.com> wrote:
>
> For armv8, U-Boot uses a static map defined as 'mem_map' for configuring
> the MMU as part of mmu_setup.
>
> But since the exact configuration of memory banks might not be known at
> build time, many platforms such as imx9, versal2 etc. utilize
> gd->bd->bi_dram to configure the static map at runtime.
>
> Therefore this patch adds a new API mem_map_fix_dram_banks that modifies
> the static map in a similar way. Allowing the caller to map all dram
> banks by just passing the index to last entry in their mem_map and it's
> length.
>
> Reviewed-by: Dhruva Gole <d-gole at ti.com>
> Signed-off-by: Anshul Dalal <anshuld at ti.com>
> Tested-by: Wadim Egorov <w.egorov at phytec.de>
> ---
>  arch/arm/cpu/armv8/cache_v8.c    | 28 ++++++++++++++++++++++++++++
>  arch/arm/include/asm/armv8/mmu.h | 10 ++++++++++
>  2 files changed, 38 insertions(+)
>
> diff --git a/arch/arm/cpu/armv8/cache_v8.c b/arch/arm/cpu/armv8/cache_v8.c
> index 74c78cb2fb0..cdf17d5f396 100644
> --- a/arch/arm/cpu/armv8/cache_v8.c
> +++ b/arch/arm/cpu/armv8/cache_v8.c
> @@ -58,6 +58,34 @@ static int get_effective_el(void)
>         return el;
>  }
>
> +int mem_map_fix_dram_banks(unsigned int index, unsigned int len, u64 attrs)

Nit, but perhaps mem_map_from_dram_banks() is a better name?

> +{
> +       unsigned int i;
> +       int ret = fdtdec_setup_memory_banksize();
> +
> +       if (ret) {
> +               printf("%s: Failed to setup dram banks\n", __func__);
> +               return ret;

We already include <log.h>, so I prefer using log_err() etc.

> +       }
> +
> +       if (index + CONFIG_NR_DRAM_BANKS >= len) {
> +               printf("%s: Provided mem_map array has insufficient size for DRAM entries\n",
> +                      __func__);
> +               return -ENOMEM;
> +       }
> +
[...]

Thanks
/Ilias


More information about the U-Boot mailing list