arm: imx8m: add OP-TEE node

Add tee node in SoC u-boot device trees. Use a kconfig entry to specify
load and entry addresses for the op-tee image in the respective
defconfig.
Default IMX8M_OPTEE_LOAD_ADDR is supplied. To keep it simple, the same
addresses are used for each SoC as are defined in upstream tf-a
(BL32_BASE) [1].

[1] https://github.com/ARM-software/arm-trusted-firmware/tree/master/plat/imx/imx8m

Signed-off-by: Yannic Moog <y.moog@phytec.de>
This commit is contained in:
Yannic Moog
2025-01-10 13:35:33 +01:00
committed by Simon Glass
parent 0a55967f4f
commit a6cdef48a3
5 changed files with 75 additions and 4 deletions

View File

@@ -164,6 +164,21 @@
};
#endif
tee: tee {
description = "OP-TEE";
type = "tee";
arch = "arm64";
compression = "none";
os = "tee";
load = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
entry = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
tee-os {
filename = "tee.bin";
optional;
};
};
binman_fip: fip {
arch = "arm64";
compression = "none";
@@ -192,7 +207,7 @@
fdt = "fdt-SEQ";
firmware = "uboot";
#ifndef CONFIG_ARMV8_PSCI
loadables = "atf";
loadables = "atf", "tee";
#endif
};
};

View File

@@ -240,6 +240,21 @@
};
#endif
tee: tee {
description = "OP-TEE";
type = "tee";
arch = "arm64";
compression = "none";
os = "tee";
load = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
entry = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
tee-os {
filename = "tee.bin";
optional;
};
};
binman_fip: fip {
arch = "arm64";
compression = "none";
@@ -268,7 +283,7 @@
fdt = "fdt-SEQ";
firmware = "uboot";
#ifndef CONFIG_ARMV8_PSCI
loadables = "atf";
loadables = "atf", "tee";
#endif
};
};

View File

@@ -185,6 +185,21 @@
};
#endif
tee: tee {
description = "OP-TEE";
type = "tee";
arch = "arm64";
compression = "none";
os = "tee";
load = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
entry = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
tee-os {
filename = "tee.bin";
optional;
};
};
@fdt-SEQ {
description = "NAME";
type = "flat_dt";
@@ -204,7 +219,7 @@
fdt = "fdt-SEQ";
firmware = "uboot";
#ifndef CONFIG_ARMV8_PSCI
loadables = "atf";
loadables = "atf", "tee";
#endif
};
};

View File

@@ -144,6 +144,21 @@
};
#endif
tee: tee {
description = "OP-TEE";
type = "tee";
arch = "arm64";
compression = "none";
os = "tee";
load = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
entry = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
tee-os {
filename = "tee.bin";
optional;
};
};
fdt {
compression = "none";
description = "NAME";
@@ -164,7 +179,7 @@
fdt = "fdt";
firmware = "uboot";
#ifndef CONFIG_ARMV8_PSCI
loadables = "atf";
loadables = "atf", "tee";
#endif
};
};

View File

@@ -37,6 +37,17 @@ config SYS_HAS_ARMV8_SECURE_BASE
If enabled, please also define the value for ARMV8_SECURE_BASE,
for i.MX8M, it could be some address in OCRAM.
config IMX8M_OPTEE_LOAD_ADDR
hex "Load address of OPTEE image"
default 0xbe000000 if IMX8MM
default 0xbe000000 if IMX8MN
default 0x56000000 if IMX8MP
default 0xfe000000 if IMX8MQ
help
The load and entry address for the OPTEE image. This value defaults to
the one defined in tf-a if not provided in the board defconfig file.
choice
prompt "NXP i.MX8M board select"
optional