[PATCH next v3] arm: mach-k3: use Kconfig options for ATF/OPTEE size
Anshul Dalal
anshuld at ti.com
Thu Mar 12 04:43:24 CET 2026
The reserved memory sizes for ATF and OPTEE were hard-coded for K3
devices, this patch replaces them with a Kconfig option allowing for
easier modifications.
Acked-by: Andrew Davis <afd at ti.com>
Reviewed-by: Dhruva Gole <d-gole at ti.com>
Reviewed-by: Manorit Chawdhry <m-chawdhry at ti.com>
Signed-off-by: Anshul Dalal <anshuld at ti.com>
---
Changes in v3:
- Pick R-by tag from Manorit
- Change help and prompt text to use the generic 'memory' instead of DDR
- Link to v2: https://lore.kernel.org/r/20260311-tfa_tee_addr_kconfig_refactor-v2-1-d66bbdb36a3e@ti.com
Changes in v2:
- Update help text to mention firewall configuration
- Pick R/Ack-by tags
- Link to v1: https://lore.kernel.org/r/20260310-tfa_tee_addr_kconfig_refactor-v1-1-d24abbca82ee@ti.com
---
arch/arm/dts/k3-binman.dtsi | 4 ++--
arch/arm/mach-k3/Kconfig | 17 +++++++++++++++++
arch/arm/mach-k3/common_fdt.c | 5 +++--
3 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/arch/arm/dts/k3-binman.dtsi b/arch/arm/dts/k3-binman.dtsi
index 0fd93f9536a..ad127663d03 100644
--- a/arch/arm/dts/k3-binman.dtsi
+++ b/arch/arm/dts/k3-binman.dtsi
@@ -477,7 +477,7 @@
FWPERM_SECURE_PRIV_RWCD |
FWPERM_SECURE_USER_RWCD)>;
start_address = <0x0 CONFIG_K3_ATF_LOAD_ADDR>;
- end_address = <0x0 (CONFIG_K3_ATF_LOAD_ADDR + 0x1ffff)>;
+ end_address = <0x0 (CONFIG_K3_ATF_LOAD_ADDR + CONFIG_K3_ATF_RESERVED_SIZE - 1)>;
};
firewall_armv8_optee_fg: template-8 {
control = <(FWCTRL_EN | FWCTRL_LOCK |
@@ -486,7 +486,7 @@
FWPERM_SECURE_PRIV_RWCD |
FWPERM_SECURE_USER_RWCD)>;
start_address = <0x0 CONFIG_K3_OPTEE_LOAD_ADDR>;
- end_address = <0x0 (CONFIG_K3_OPTEE_LOAD_ADDR + 0x17fffff)>;
+ end_address = <0x0 (CONFIG_K3_OPTEE_LOAD_ADDR + CONFIG_K3_OPTEE_RESERVED_SIZE - 1)>;
};
ti_falcon_template: template-9 {
diff --git a/arch/arm/mach-k3/Kconfig b/arch/arm/mach-k3/Kconfig
index 1b8c0b1eb96..a32ed3a9683 100644
--- a/arch/arm/mach-k3/Kconfig
+++ b/arch/arm/mach-k3/Kconfig
@@ -130,6 +130,15 @@ config K3_ATF_LOAD_ADDR
The load address for the ATF image. This value is used to build the
FIT image header that places ATF in memory where it will run.
+config K3_ATF_RESERVED_SIZE
+ hex "Reserved memory size for ATF"
+ default 0x80000 if (SOC_K3_AM625 || SOC_K3_AM62A7 || SOC_K3_AM62P5 || SOC_K3_J722S)
+ default 0x20000
+ help
+ The runtime memory size reserved for ATF. This value is used to fixup the
+ kernel device-tree's reserved-memory node for ATF and configure the
+ firewall.
+
config K3_OPTEE_LOAD_ADDR
hex "Load address of OPTEE image"
default 0x9e800000
@@ -137,6 +146,14 @@ config K3_OPTEE_LOAD_ADDR
The load address for the OPTEE image. This value defaults to 0x9e800000
if not provided in the board defconfig file.
+config K3_OPTEE_RESERVED_SIZE
+ hex "Reserved memory size for OPTEE"
+ default 0x1800000
+ help
+ The runtime memory size reserved for OPTEE. This value is used to fixup
+ the kernel device-tree's reserved-memory node for OPTEE and configure the
+ firewall.
+
config K3_DM_FW
bool "Separate DM firmware image"
depends on CPU_V7R && !SOC_K3_AM642 && !SOC_K3_AM654 && !CLK_TI_SCI && !TI_SCI_POWER_DOMAIN
diff --git a/arch/arm/mach-k3/common_fdt.c b/arch/arm/mach-k3/common_fdt.c
index cb0fb8274a5..39cb00c3f43 100644
--- a/arch/arm/mach-k3/common_fdt.c
+++ b/arch/arm/mach-k3/common_fdt.c
@@ -173,12 +173,13 @@ int fdt_fixup_reserved(void *blob)
int ret;
ret = fdt_fixup_reserved_memory(blob, "tfa", CONFIG_K3_ATF_LOAD_ADDR,
- 0x80000);
+ CONFIG_K3_ATF_RESERVED_SIZE);
if (ret)
return ret;
return fdt_fixup_reserved_memory(blob, "optee",
- CONFIG_K3_OPTEE_LOAD_ADDR, 0x1800000);
+ CONFIG_K3_OPTEE_LOAD_ADDR,
+ CONFIG_K3_OPTEE_RESERVED_SIZE);
}
static int fdt_fixup_critical_trips(void *blob, int zoneoffset, int maxc)
---
base-commit: 8bc2a5196c1c0bb5dbdaca073323da0015a0de37
change-id: 20260310-tfa_tee_addr_kconfig_refactor-2bf77949df0f
Best regards,
--
Anshul Dalal <anshuld at ti.com>
More information about the U-Boot
mailing list