[PATCH] ARM: fdt: copy TF-A reserved memory into fdt passed to Linux
Quentin Schulz
quentin.schulz at cherry.de
Fri Jun 26 19:00:40 CEST 2026
Hi Alexander,
On 6/13/26 10:41 PM, Alexander Sverdlin wrote:
> [You don't often get email from alexander.sverdlin at gmail.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> Currently some ARM-based platforms reserve TF-A memory in their own ways:
> - Mediatek gets BL31 region via SMC call in ft_system_setup()
> - K3 uses CONFIG_K3_ATF_LOAD_ADDR, effectively in ft_system_setup()
>
On Rockchip, we reserve the first 2MiB of DRAM. c.f.
arch/arm/mach-rockchip/sdram.c. I haven't checked how it makes it to the
Linux FDT but I'm assuming it does otherwise it'd be broken in
interesting ways.
Don't ask us how we'll handle TF-A changing its location or amount of
RAM. We also need to support Rockchip's TF-A blob which... doesn't
support FDT (hence NO_PLATFORM_PARAM=y for most SoCs by default).
When xPL passes an FDT to TF-A (BL31; CONFIG=NO_PLATFORM_PARAM=n), TF-A
passes it to OP-TEE OS (BL32) and OP-TEE OS writes its reserved area to
the FDT before going back to U-Boot BL33.
U-Boot reads this (if CONFIG_OPTEE_LIB=y + CONFIG_OF_LIBFDT=y which are
forced if you built with TEE variable present in your environment) and
propagates the reserved areas to the kernel FDT, c.f.
optee_copy_firmware_node(). So you probably want to hook yourself to
wherever this is called.
Doing a quick grep in TF-A sources, it seems Alwinner is patching the
FDT (and I'm now concerned not seeing Rockchip in there.... some more
work to do I guess) which I assume is what prompted this series :)
Cheers,
Quentin
More information about the U-Boot
mailing list