xref: /rk3399_ARM-atf/fdts/stmm_template.dts (revision 5feb20822a68242b63d46f6811357e8c4cf1d74c)
1*8d66892aSYeoreum Yun/*
2*8d66892aSYeoreum Yun * Copyright (c) 2025, Arm Limited and Contributors. All rights reserved.
3*8d66892aSYeoreum Yun *
4*8d66892aSYeoreum Yun * SPDX-License-Identifier: BSD-3-Clause
5*8d66892aSYeoreum Yun */
6*8d66892aSYeoreum Yun
7*8d66892aSYeoreum Yun#include <stmm_common.dtsi>
8*8d66892aSYeoreum Yun
9*8d66892aSYeoreum Yun/ {
10*8d66892aSYeoreum Yun	/*
11*8d66892aSYeoreum Yun	 * FF-A compatible Secure Partition Manager parses the
12*8d66892aSYeoreum Yun	 * config file and fetches the following booting arguments to
13*8d66892aSYeoreum Yun	 * pass on to the StandAloneMM(StMM) Secure Partition.
14*8d66892aSYeoreum Yun	 */
15*8d66892aSYeoreum Yun	compatible = "arm,ffa-manifest-1.0";
16*8d66892aSYeoreum Yun	execution-ctx-count = <STMM_CORE_COUNT>;
17*8d66892aSYeoreum Yun	exception-level = <MODE_SEL0>; /* SEL0*/
18*8d66892aSYeoreum Yun	execution-state = <ES_AARCH64>; /* AArch64*/
19*8d66892aSYeoreum Yun	image-size = <SIZE_INIT(STMM_IMAGE_SIZE)>;
20*8d66892aSYeoreum Yun	xlat-granule = <TG_4KB>; /* 4KiB */
21*8d66892aSYeoreum Yun	boot-order = <0>;
22*8d66892aSYeoreum Yun	gp-register-num = <0>;
23*8d66892aSYeoreum Yun
24*8d66892aSYeoreum Yun	device-regions {
25*8d66892aSYeoreum Yun		compatible = "arm,ffa-manifest-device-regions";
26*8d66892aSYeoreum Yun
27*8d66892aSYeoreum Yun		/**
28*8d66892aSYeoreum Yun		 * System registers, rtc, uart and etc regions for access from S-EL0.
29*8d66892aSYeoreum Yun		 */
30*8d66892aSYeoreum Yun		io_fpga: io_fpga {
31*8d66892aSYeoreum Yun			description ="io_fpga";
32*8d66892aSYeoreum Yun		};
33*8d66892aSYeoreum Yun
34*8d66892aSYeoreum Yun		system_reg_el0: system_reg_el0 {
35*8d66892aSYeoreum Yun			description ="system_reg_el0";
36*8d66892aSYeoreum Yun		};
37*8d66892aSYeoreum Yun
38*8d66892aSYeoreum Yun		/**
39*8d66892aSYeoreum Yun		 * ARM CSS SoC Peripherals area.
40*8d66892aSYeoreum Yun		 * Similar to SOC_CSS_MAP_DEVICE.
41*8d66892aSYeoreum Yun		 */
42*8d66892aSYeoreum Yun		soc_components: soc_components {
43*8d66892aSYeoreum Yun			description ="soc_components";
44*8d66892aSYeoreum Yun		};
45*8d66892aSYeoreum Yun
46*8d66892aSYeoreum Yun#ifdef STMM_FLASH0_BASE
47*8d66892aSYeoreum Yun		/**
48*8d66892aSYeoreum Yun		 * NOR0 Flash region, used for Firmware Image Update.
49*8d66892aSYeoreum Yun		 */
50*8d66892aSYeoreum Yun		flash0: flash0 {
51*8d66892aSYeoreum Yun			description ="flash0";
52*8d66892aSYeoreum Yun		};
53*8d66892aSYeoreum Yun#endif
54*8d66892aSYeoreum Yun
55*8d66892aSYeoreum Yun#ifdef STMM_FLASH1_BASE
56*8d66892aSYeoreum Yun		/**
57*8d66892aSYeoreum Yun		 * NOR1 Flash region, used for Secure booting.
58*8d66892aSYeoreum Yun		 */
59*8d66892aSYeoreum Yun		flash1: flash1 {
60*8d66892aSYeoreum Yun			description ="flash1";
61*8d66892aSYeoreum Yun		};
62*8d66892aSYeoreum Yun#endif
63*8d66892aSYeoreum Yun
64*8d66892aSYeoreum Yun#ifdef STMM_TPM_S_CRB_BASE
65*8d66892aSYeoreum Yun		tpm_s_crb: tpm_s_crb {
66*8d66892aSYeoreum Yun			description ="tpm pesudo s-crb";
67*8d66892aSYeoreum Yun		};
68*8d66892aSYeoreum Yun#endif
69*8d66892aSYeoreum Yun
70*8d66892aSYeoreum Yun#ifdef STMM_TPM_NS_CRB_BASE
71*8d66892aSYeoreum Yun		tpm_ns_crb: tpm_ns_crb {
72*8d66892aSYeoreum Yun			description ="tpm pesudo ns-crb";
73*8d66892aSYeoreum Yun		};
74*8d66892aSYeoreum Yun#endif
75*8d66892aSYeoreum Yun	};
76*8d66892aSYeoreum Yun
77*8d66892aSYeoreum Yun	memory-regions {
78*8d66892aSYeoreum Yun		compatible = "arm,ffa-manifest-memory-regions";
79*8d66892aSYeoreum Yun
80*8d66892aSYeoreum Yun		/*
81*8d66892aSYeoreum Yun		 * SPM Payload memory. Mapped as code region for S-EL0
82*8d66892aSYeoreum Yun		 * Similar to ARM_SP_IMAGE_MMAP.
83*8d66892aSYeoreum Yun		 */
84*8d66892aSYeoreum Yun		image_fvb: stmm_region {
85*8d66892aSYeoreum Yun			description = "image";
86*8d66892aSYeoreum Yun		};
87*8d66892aSYeoreum Yun
88*8d66892aSYeoreum Yun		/*
89*8d66892aSYeoreum Yun		 * Memory shared between EL3 and S-EL0.
90*8d66892aSYeoreum Yun		 * Similar to ARM_SPM_BUF_EL0_MMAP.
91*8d66892aSYeoreum Yun		 */
92*8d66892aSYeoreum Yun		shared_buf: rx-tx-buffers {
93*8d66892aSYeoreum Yun			description = "shared-buff";
94*8d66892aSYeoreum Yun		};
95*8d66892aSYeoreum Yun
96*8d66892aSYeoreum Yun		/*
97*8d66892aSYeoreum Yun		 * Memory shared between Normal world and S-EL0.
98*8d66892aSYeoreum Yun		 * Similar to ARM_SP_IMAGE_NS_BUF_MMAP.
99*8d66892aSYeoreum Yun		 */
100*8d66892aSYeoreum Yun		ns_shared_buf: ns_comm_buffer {
101*8d66892aSYeoreum Yun			/*
102*8d66892aSYeoreum Yun			 * Description is needed for StMM to identify
103*8d66892aSYeoreum Yun			 * ns-communication buffer.
104*8d66892aSYeoreum Yun			 */
105*8d66892aSYeoreum Yun			description = "ns-comm";
106*8d66892aSYeoreum Yun		};
107*8d66892aSYeoreum Yun
108*8d66892aSYeoreum Yun		/*
109*8d66892aSYeoreum Yun		 * Heap used by SP to allocate memory for DMA.
110*8d66892aSYeoreum Yun		 */
111*8d66892aSYeoreum Yun		stmm_heap: heap {
112*8d66892aSYeoreum Yun			/*
113*8d66892aSYeoreum Yun			 * Description is needed for StMM to identify
114*8d66892aSYeoreum Yun			 * heap buffer.
115*8d66892aSYeoreum Yun			 */
116*8d66892aSYeoreum Yun			description = "heap";
117*8d66892aSYeoreum Yun		};
118*8d66892aSYeoreum Yun	};
119*8d66892aSYeoreum Yun};
120*8d66892aSYeoreum Yun
121*8d66892aSYeoreum Yun#include "stmm_dev_region.dtsi"
122*8d66892aSYeoreum Yun#include "stmm_mem_region.dtsi"
123