summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu-Chien Peter Lin <peter.lin@sifive.com>2025-01-11 09:55:27 +0800
committerLeo Yu-Chi Liang <ycliang@andestech.com>2025-02-03 15:26:00 +0800
commit47d90f6bd30ad3c5cc909131dbf80081a8685e5d (patch)
treed846ad2f5bccb79ced9c86b308fdea3e230aa88c
parent99654e1b9665de0245c0fd606760aa7d1e9b8810 (diff)
riscv: dts: binman.dtsi: Include OP-TEE OS image
The following diagram illustrates the boot flow for OP-TEE OS initialization on RISC-V. (1)-----------+ | U-Boot SPL | +------------+ | v (2)-------------------------------------------------------------+ | OpenSBI (fw_dynamic.bin) | | (4)------------------------+ | | | optee dispatcher driver | | +-----------------+-------^---------|-------+------------------+ M-mode | | | ---------+--[trusted domain]---+----.----+--[untrusted domain]------- S-mode | (coldboot domain) | | | v | | v (3)---------------------------+ |(5)----------------------------+ | OP-TEE OS (tee.bin) | | | U-Boot (u-boot-nodtb.bin) | +----------------------------+ | +-----------------------------+ | | | v |(6)----------------------------+ | | Linux | | +-----------------------------+ This patch enables the inclusion of the OP-TEE binary within the U-Boot ITB, allowing it to be loaded to a platform defined address by U-Boot SPL. Signed-off-by: Yu-Chien Peter Lin <peter.lin@sifive.com> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
-rw-r--r--arch/riscv/dts/binman.dtsi26
1 files changed, 24 insertions, 2 deletions
diff --git a/arch/riscv/dts/binman.dtsi b/arch/riscv/dts/binman.dtsi
index 9271de0ddfc..0405faca574 100644
--- a/arch/riscv/dts/binman.dtsi
+++ b/arch/riscv/dts/binman.dtsi
@@ -53,6 +53,19 @@
};
};
#endif
+#ifdef CONFIG_OPTEE
+ tee {
+ description = "OP-TEE";
+ type = "tee";
+ arch = "riscv";
+ compression = "none";
+ os = "tee";
+ load = /bits/ 64 <CONFIG_SPL_OPTEE_LOAD_ADDR>;
+ tee_blob: tee-os {
+ filename = "tee.bin";
+ };
+ };
+#endif
opensbi {
description = "OpenSBI fw_dynamic Firmware";
@@ -88,11 +101,20 @@
#endif
description = "NAME";
firmware = "opensbi";
-#ifndef CONFIG_SPL_LOAD_FIT_OPENSBI_OS_BOOT
- loadables = "uboot";
+#ifdef CONFIG_OPTEE
+#ifdef CONFIG_SPL_LOAD_FIT_OPENSBI_OS_BOOT
+ loadables = "linux", "tee";
#else
+ loadables = "uboot", "tee";
+#endif
+#else /* !CONFIG_OPTEEE */
+#ifdef CONFIG_SPL_LOAD_FIT_OPENSBI_OS_BOOT
loadables = "linux";
+#else
+ loadables = "uboot";
#endif
+#endif /* CONFIG_OPTEE */
+
#ifndef CONFIG_OF_BOARD
fdt = "fdt-SEQ";
#endif