[PATCH -next v8 11/11] arm: mach-k3: reserve space for page table entries

Anshul Dalal anshuld at ti.com
Thu Oct 9 15:41:15 CEST 2025


On Wed Oct 8, 2025 at 8:33 PM IST, Bryan Brattlof wrote:
> On October  6, 2025 thus sayeth Anshul Dalal:
>> With the memory map configuration being done dynamically, reserve extra
>> space during U-Boot relocation to ensure we have enough for the fixups.
>> 
>> Signed-off-by: Anshul Dalal <anshuld at ti.com>
>> ---
>>  arch/arm/mach-k3/arm64/arm64-mmu.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>> 
>> diff --git a/arch/arm/mach-k3/arm64/arm64-mmu.c b/arch/arm/mach-k3/arm64/arm64-mmu.c
>> index 479451452a2..f999af143fb 100644
>> --- a/arch/arm/mach-k3/arm64/arm64-mmu.c
>> +++ b/arch/arm/mach-k3/arm64/arm64-mmu.c
>> @@ -41,3 +41,8 @@ struct mm_region k3_mem_map[K3_MEM_MAP_LEN] = {
>>  };
>>  
>>  struct mm_region *mem_map = k3_mem_map;
>> +
>> +u64 get_page_table_size(void)
>> +{
>> +	return SZ_128K;
>> +}
>
> How are we calculating this size? With 2^39 addresses this should bring 
> us into the MBs of TLB data. 
>
> I see we limit U-Boot to 512 entries, but that doesn't match this either
>

Of the current K3 devices, the largest reported size for the fixed up
memory maps was ~32KiB with AM62 SiP (TFA at 80000000 and TEE at 80080000).

With the carveouts not aligned to 2MiB, maximum size I saw was ~64KiB.
So with an added 2x margin of safety, I arrived at 128KiB ;)

This is enough for all current K3 devices and we can always increase it
later if need be. As the panic we would get is pretty self explanatory:

  Insufficient RAM for page table: 0x3000 > 0x2000. Please increase the size in get_page_table_size()

Regards,
Anshul


More information about the U-Boot mailing list