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

Anshul Dalal anshuld at ti.com
Fri Oct 10 14:40:46 CEST 2025


On Fri Oct 10, 2025 at 5:29 PM IST, Ilias Apalodimas wrote:
> 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?
>

Yeah, that's more descriptive of the actual functionality. Will fix in
the next revision.

>> +{
>> +       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.
>

Sounds good to me, will fix.

Thanks for the review!
Anshul


More information about the U-Boot mailing list