xref: /arm-trusted-firmware/plat/arm/board/tc/fdts/tc_spmc_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 = "cactus-primary";
28*91f16700Schasinglulu			load_address = <0xfe000000>;
29*91f16700Schasinglulu			vcpu_count = <8>;
30*91f16700Schasinglulu			mem_size = <1048576>;
31*91f16700Schasinglulu		};
32*91f16700Schasinglulu		vm2 {
33*91f16700Schasinglulu			is_ffa_partition;
34*91f16700Schasinglulu			debug_name = "cactus-secondary";
35*91f16700Schasinglulu			load_address = <0xfe100000>;
36*91f16700Schasinglulu			vcpu_count = <8>;
37*91f16700Schasinglulu			mem_size = <1048576>;
38*91f16700Schasinglulu		};
39*91f16700Schasinglulu		vm3 {
40*91f16700Schasinglulu			is_ffa_partition;
41*91f16700Schasinglulu			debug_name = "cactus-tertiary";
42*91f16700Schasinglulu			load_address = <0xfe200000>;
43*91f16700Schasinglulu			vcpu_count = <1>;
44*91f16700Schasinglulu			mem_size = <1048576>;
45*91f16700Schasinglulu		};
46*91f16700Schasinglulu		vm4 {
47*91f16700Schasinglulu			is_ffa_partition;
48*91f16700Schasinglulu			debug_name = "ivy";
49*91f16700Schasinglulu			load_address = <0xfe600000>;
50*91f16700Schasinglulu			vcpu_count = <1>;
51*91f16700Schasinglulu			mem_size = <1048576>;
52*91f16700Schasinglulu		};
53*91f16700Schasinglulu	};
54*91f16700Schasinglulu
55*91f16700Schasinglulu	cpus {
56*91f16700Schasinglulu		#address-cells = <0x2>;
57*91f16700Schasinglulu		#size-cells = <0x0>;
58*91f16700Schasinglulu
59*91f16700Schasinglulu		CPU0:cpu@0 {
60*91f16700Schasinglulu			device_type = "cpu";
61*91f16700Schasinglulu			compatible = "arm,armv8";
62*91f16700Schasinglulu			reg = <0x0 0x0>;
63*91f16700Schasinglulu			enable-method = "psci";
64*91f16700Schasinglulu		};
65*91f16700Schasinglulu
66*91f16700Schasinglulu		/*
67*91f16700Schasinglulu		 * SPMC (Hafnium) requires secondary cpu nodes are declared in
68*91f16700Schasinglulu		 * descending order
69*91f16700Schasinglulu		 */
70*91f16700Schasinglulu		CPU7:cpu@700 {
71*91f16700Schasinglulu			device_type = "cpu";
72*91f16700Schasinglulu			compatible = "arm,armv8";
73*91f16700Schasinglulu			reg = <0x0 0x700>;
74*91f16700Schasinglulu			enable-method = "psci";
75*91f16700Schasinglulu		};
76*91f16700Schasinglulu
77*91f16700Schasinglulu		CPU6:cpu@600 {
78*91f16700Schasinglulu			device_type = "cpu";
79*91f16700Schasinglulu			compatible = "arm,armv8";
80*91f16700Schasinglulu			reg = <0x0 0x600>;
81*91f16700Schasinglulu			enable-method = "psci";
82*91f16700Schasinglulu		};
83*91f16700Schasinglulu
84*91f16700Schasinglulu		CPU5:cpu@500 {
85*91f16700Schasinglulu			device_type = "cpu";
86*91f16700Schasinglulu			compatible = "arm,armv8";
87*91f16700Schasinglulu			reg = <0x0 0x500>;
88*91f16700Schasinglulu			enable-method = "psci";
89*91f16700Schasinglulu		};
90*91f16700Schasinglulu
91*91f16700Schasinglulu		CPU4:cpu@400 {
92*91f16700Schasinglulu			device_type = "cpu";
93*91f16700Schasinglulu			compatible = "arm,armv8";
94*91f16700Schasinglulu			reg = <0x0 0x400>;
95*91f16700Schasinglulu			enable-method = "psci";
96*91f16700Schasinglulu		};
97*91f16700Schasinglulu
98*91f16700Schasinglulu		CPU3:cpu@300 {
99*91f16700Schasinglulu			device_type = "cpu";
100*91f16700Schasinglulu			compatible = "arm,armv8";
101*91f16700Schasinglulu			reg = <0x0 0x300>;
102*91f16700Schasinglulu			enable-method = "psci";
103*91f16700Schasinglulu		};
104*91f16700Schasinglulu
105*91f16700Schasinglulu		CPU2:cpu@200 {
106*91f16700Schasinglulu			device_type = "cpu";
107*91f16700Schasinglulu			compatible = "arm,armv8";
108*91f16700Schasinglulu			reg = <0x0 0x200>;
109*91f16700Schasinglulu			enable-method = "psci";
110*91f16700Schasinglulu		};
111*91f16700Schasinglulu
112*91f16700Schasinglulu		CPU1:cpu@100 {
113*91f16700Schasinglulu			device_type = "cpu";
114*91f16700Schasinglulu			compatible = "arm,armv8";
115*91f16700Schasinglulu			reg = <0x0 0x100>;
116*91f16700Schasinglulu			enable-method = "psci";
117*91f16700Schasinglulu		};
118*91f16700Schasinglulu	};
119*91f16700Schasinglulu
120*91f16700Schasinglulu	memory@0 {
121*91f16700Schasinglulu		device_type = "memory";
122*91f16700Schasinglulu		reg = <0x0 0xfd000000 0x0 0x2000000>,
123*91f16700Schasinglulu		      <0x0 0x7000000 0x0 0x1000000>,
124*91f16700Schasinglulu		      <0x0 0xff000000 0x0 0x1000000>;
125*91f16700Schasinglulu	};
126*91f16700Schasinglulu
127*91f16700Schasinglulu	memory@1 {
128*91f16700Schasinglulu		device_type = "ns-memory";
129*91f16700Schasinglulu		reg = <0x00008800 0x80000000 0x0 0x7f000000>,
130*91f16700Schasinglulu		      <0x0 0x88000000 0x1 0x00000000>;
131*91f16700Schasinglulu	};
132*91f16700Schasinglulu};
133