On Wed Sep 10, 2025 at 4:44 PM IST, Bryan Brattlof wrote:
> On September  5, 2025 thus sayeth Anshul Dalal:
>> K3 platforms have reserved memory regions for TFA and OPTEE which should
>> be unmapped for U-Boot.
>> 
>> Therefore this patch adds the necessary fdt fixups to properly set the
>> load address for TFA/OPTEE and unmaps both by mmu_unmap_reserved_mem.
>> 
>> Signed-off-by: Anshul Dalal <ansh...@ti.com>
>> ---
>>  arch/arm/mach-k3/common.c | 26 ++++++++++++++++++++++++++
>>  1 file changed, 26 insertions(+)
>> 
>> diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c
>> index 9c2fe92cf25..71fc7d31abe 100644
>> --- a/arch/arm/mach-k3/common.c
>> +++ b/arch/arm/mach-k3/common.c
>> @@ -31,6 +31,7 @@
>>  #include <dm/uclass-internal.h>
>>  #include <dm/device-internal.h>
>>  #include <asm/armv8/mmu.h>
>> +#include <mach/k3-common-fdt.h>
>>  #include <mach/k3-ddr.h>
>>  
>>  #define PROC_BOOT_CTRL_FLAG_R5_CORE_HALT    0x00000001
>> @@ -263,6 +264,7 @@ void board_prep_linux(struct bootm_headers *images)
>>  
>>  void enable_caches(void)
>>  {
>> +    void *fdt = (void *)gd->fdt_blob;
>>      int ret;
>>  
>>      ret = mem_map_fix_dram_banks(K3_MEM_MAP_FIRST_BANK_IDX, K3_MEM_MAP_LEN,
>> @@ -273,6 +275,30 @@ void enable_caches(void)
>>  
>>      mmu_setup();
>>  
>> +    if (CONFIG_K3_ATF_LOAD_ADDR >= CFG_SYS_SDRAM_BASE) {
>> +            ret = fdt_fixup_reserved(fdt, "tfa", CONFIG_K3_ATF_LOAD_ADDR,
>> +                                     0x80000);
>> +            if (ret)
>> +                    debug("%s: Failed to perform tfa fixups (%s)\n",
>> +                          __func__, fdt_strerror(ret));
>> +            ret = mmu_unmap_reserved_mem("tfa");
>> +            if (ret)
>> +                    debug("%s: Failed to unmap tfa rsvd mem (%s)\n",
>> +                          __func__, fdt_strerror(ret));
>> +    }
>> +
>> +    if (CONFIG_K3_OPTEE_LOAD_ADDR >= CFG_SYS_SDRAM_BASE) {
>> +            ret = fdt_fixup_reserved(fdt, "optee",
>> +                                     CONFIG_K3_OPTEE_LOAD_ADDR, 0x1800000);
>
> We will most likely need to move these sizes into Kconfig. The fact they 
> have remained the same is purely an artifact from us not changing
> anything nor developing much on OP-TEE for most of K3's lifetime.
>
> For future chips BL1 and OP-TEE will likely need to grow.

Yeah, we would probably need to update the fdt_fixup_reserved API as
well which currently just ignores the size we provide if one already
exists in the reserved-memory node.

Regards,
Anshul

Reply via email to