xref: /arm-trusted-firmware/plat/arm/board/tc/fdts/tc_spmc_optee_sp_manifest.dts (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu/*
2*91f16700Schasinglulu * Copyright (c) 2020-2023, Arm Limited. All rights reserved.
3*91f16700Schasinglulu *
4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu */
6*91f16700Schasinglulu/dts-v1/;
7*91f16700Schasinglulu
8*91f16700Schasinglulu/ {
9*91f16700Schasinglulu	compatible = "arm,ffa-core-manifest-1.0";
10*91f16700Schasinglulu	#address-cells = <2>;
11*91f16700Schasinglulu	#size-cells = <2>;
12*91f16700Schasinglulu
13*91f16700Schasinglulu	attribute {
14*91f16700Schasinglulu		spmc_id = <0x8000>;
15*91f16700Schasinglulu		maj_ver = <0x1>;
16*91f16700Schasinglulu		min_ver = <0x1>;
17*91f16700Schasinglulu		exec_state = <0x0>;
18*91f16700Schasinglulu		load_address = <0x0 0xfd000000>;
19*91f16700Schasinglulu		entrypoint = <0x0 0xfd000000>;
20*91f16700Schasinglulu		binary_size = <0x80000>;
21*91f16700Schasinglulu	};
22*91f16700Schasinglulu
23*91f16700Schasinglulu	hypervisor {
24*91f16700Schasinglulu		compatible = "hafnium,hafnium";
25*91f16700Schasinglulu		vm1 {
26*91f16700Schasinglulu			is_ffa_partition;
27*91f16700Schasinglulu			debug_name = "op-tee";
28*91f16700Schasinglulu			load_address = <0xfd280000>;
29*91f16700Schasinglulu			vcpu_count = <8>;
30*91f16700Schasinglulu#ifdef TS_SP_FW_CONFIG
31*91f16700Schasinglulu			mem_size = <26738688>; /* 25MB TZC DRAM */
32*91f16700Schasinglulu#else
33*91f16700Schasinglulu			mem_size = <30928896>; /* 29MB TZC DRAM */
34*91f16700Schasinglulu#endif
35*91f16700Schasinglulu		};
36*91f16700Schasinglulu#ifdef TS_SP_FW_CONFIG
37*91f16700Schasinglulu		vm2 {
38*91f16700Schasinglulu			is_ffa_partition;
39*91f16700Schasinglulu			debug_name = "internal-trusted-storage";
40*91f16700Schasinglulu			load_address = <0xfee00000>;
41*91f16700Schasinglulu			vcpu_count = <1>;
42*91f16700Schasinglulu			mem_size = <2097152>; /* 2MB TZC DRAM */
43*91f16700Schasinglulu		};
44*91f16700Schasinglulu		vm3 {
45*91f16700Schasinglulu			is_ffa_partition;
46*91f16700Schasinglulu			debug_name = "crypto";
47*91f16700Schasinglulu			load_address = <0xfec00000>;
48*91f16700Schasinglulu			vcpu_count = <1>;
49*91f16700Schasinglulu			mem_size = <2097152>; /* 2MB TZC DRAM */
50*91f16700Schasinglulu		};
51*91f16700Schasinglulu#endif
52*91f16700Schasinglulu	};
53*91f16700Schasinglulu
54*91f16700Schasinglulu	cpus {
55*91f16700Schasinglulu		#address-cells = <0x2>;
56*91f16700Schasinglulu		#size-cells = <0x0>;
57*91f16700Schasinglulu
58*91f16700Schasinglulu		CPU0:cpu@0 {
59*91f16700Schasinglulu			device_type = "cpu";
60*91f16700Schasinglulu			compatible = "arm,armv8";
61*91f16700Schasinglulu			reg = <0x0 0x0>;
62*91f16700Schasinglulu			enable-method = "psci";
63*91f16700Schasinglulu		};
64*91f16700Schasinglulu
65*91f16700Schasinglulu		/*
66*91f16700Schasinglulu		 * SPMC (Hafnium) requires secondary cpu nodes are declared in
67*91f16700Schasinglulu		 * descending order
68*91f16700Schasinglulu		 */
69*91f16700Schasinglulu		CPU7:cpu@700 {
70*91f16700Schasinglulu			device_type = "cpu";
71*91f16700Schasinglulu			compatible = "arm,armv8";
72*91f16700Schasinglulu			reg = <0x0 0x700>;
73*91f16700Schasinglulu			enable-method = "psci";
74*91f16700Schasinglulu		};
75*91f16700Schasinglulu
76*91f16700Schasinglulu		CPU6:cpu@600 {
77*91f16700Schasinglulu			device_type = "cpu";
78*91f16700Schasinglulu			compatible = "arm,armv8";
79*91f16700Schasinglulu			reg = <0x0 0x600>;
80*91f16700Schasinglulu			enable-method = "psci";
81*91f16700Schasinglulu		};
82*91f16700Schasinglulu
83*91f16700Schasinglulu		CPU5:cpu@500 {
84*91f16700Schasinglulu			device_type = "cpu";
85*91f16700Schasinglulu			compatible = "arm,armv8";
86*91f16700Schasinglulu			reg = <0x0 0x500>;
87*91f16700Schasinglulu			enable-method = "psci";
88*91f16700Schasinglulu		};
89*91f16700Schasinglulu
90*91f16700Schasinglulu		CPU4:cpu@400 {
91*91f16700Schasinglulu			device_type = "cpu";
92*91f16700Schasinglulu			compatible = "arm,armv8";
93*91f16700Schasinglulu			reg = <0x0 0x400>;
94*91f16700Schasinglulu			enable-method = "psci";
95*91f16700Schasinglulu		};
96*91f16700Schasinglulu
97*91f16700Schasinglulu		CPU3:cpu@300 {
98*91f16700Schasinglulu			device_type = "cpu";
99*91f16700Schasinglulu			compatible = "arm,armv8";
100*91f16700Schasinglulu			reg = <0x0 0x300>;
101*91f16700Schasinglulu			enable-method = "psci";
102*91f16700Schasinglulu		};
103*91f16700Schasinglulu
104*91f16700Schasinglulu		CPU2:cpu@200 {
105*91f16700Schasinglulu			device_type = "cpu";
106*91f16700Schasinglulu			compatible = "arm,armv8";
107*91f16700Schasinglulu			reg = <0x0 0x200>;
108*91f16700Schasinglulu			enable-method = "psci";
109*91f16700Schasinglulu		};
110*91f16700Schasinglulu
111*91f16700Schasinglulu		CPU1:cpu@100 {
112*91f16700Schasinglulu			device_type = "cpu";
113*91f16700Schasinglulu			compatible = "arm,armv8";
114*91f16700Schasinglulu			reg = <0x0 0x100>;
115*91f16700Schasinglulu			enable-method = "psci";
116*91f16700Schasinglulu		};
117*91f16700Schasinglulu	};
118*91f16700Schasinglulu
119*91f16700Schasinglulu	memory@0 {
120*91f16700Schasinglulu		device_type = "memory";
121*91f16700Schasinglulu		reg = <0x0 0xfd000000 0x0 0x2000000>;
122*91f16700Schasinglulu	};
123*91f16700Schasinglulu
124*91f16700Schasinglulu	memory@1 {
125*91f16700Schasinglulu		device_type = "ns-memory";
126*91f16700Schasinglulu		reg = <0x0 0x80000000 0x0 0x79000000>,
127*91f16700Schasinglulu		      <0x80 0x80000000 0x1 0x80000000>;
128*91f16700Schasinglulu	};
129*91f16700Schasinglulu};
130