xref: /arm-trusted-firmware/plat/arm/board/fvp/fdts/fvp_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#define	AFF	00
9*91f16700Schasinglulu
10*91f16700Schasinglulu#include "fvp-defs.dtsi"
11*91f16700Schasinglulu#undef POST
12*91f16700Schasinglulu#define	POST \
13*91f16700Schasinglulu	};
14*91f16700Schasinglulu
15*91f16700Schasinglulu/ {
16*91f16700Schasinglulu	compatible = "arm,ffa-core-manifest-1.0";
17*91f16700Schasinglulu	#address-cells = <2>;
18*91f16700Schasinglulu	#size-cells = <2>;
19*91f16700Schasinglulu
20*91f16700Schasinglulu	attribute {
21*91f16700Schasinglulu		spmc_id = <0x8000>;
22*91f16700Schasinglulu		maj_ver = <0x1>;
23*91f16700Schasinglulu		min_ver = <0x1>;
24*91f16700Schasinglulu		exec_state = <0x0>;
25*91f16700Schasinglulu		load_address = <0x0 0x6000000>;
26*91f16700Schasinglulu		entrypoint = <0x0 0x6000000>;
27*91f16700Schasinglulu		binary_size = <0x80000>;
28*91f16700Schasinglulu	};
29*91f16700Schasinglulu
30*91f16700Schasinglulu	hypervisor {
31*91f16700Schasinglulu		compatible = "hafnium,hafnium";
32*91f16700Schasinglulu		vm1 {
33*91f16700Schasinglulu			is_ffa_partition;
34*91f16700Schasinglulu			debug_name = "cactus-primary";
35*91f16700Schasinglulu			load_address = <0x7000000>;
36*91f16700Schasinglulu			vcpu_count = <8>;
37*91f16700Schasinglulu			mem_size = <1048576>;
38*91f16700Schasinglulu			/*
39*91f16700Schasinglulu			 * Platform specific SiP SMC call handled at EL3. Used
40*91f16700Schasinglulu			 * to pend an interrupt for testing purpose.
41*91f16700Schasinglulu			 */
42*91f16700Schasinglulu			smc_whitelist = <0x82000100>;
43*91f16700Schasinglulu		};
44*91f16700Schasinglulu		vm2 {
45*91f16700Schasinglulu			is_ffa_partition;
46*91f16700Schasinglulu			debug_name = "cactus-secondary";
47*91f16700Schasinglulu			load_address = <0x7100000>;
48*91f16700Schasinglulu			vcpu_count = <8>;
49*91f16700Schasinglulu			mem_size = <1048576>;
50*91f16700Schasinglulu		};
51*91f16700Schasinglulu		vm3 {
52*91f16700Schasinglulu			is_ffa_partition;
53*91f16700Schasinglulu			debug_name = "cactus-tertiary";
54*91f16700Schasinglulu			load_address = <0x7200000>;
55*91f16700Schasinglulu			vcpu_count = <1>;
56*91f16700Schasinglulu			mem_size = <1048576>;
57*91f16700Schasinglulu		};
58*91f16700Schasinglulu		vm4 {
59*91f16700Schasinglulu			is_ffa_partition;
60*91f16700Schasinglulu			debug_name = "ivy";
61*91f16700Schasinglulu			load_address = <0x7600000>;
62*91f16700Schasinglulu			vcpu_count = <1>;
63*91f16700Schasinglulu			mem_size = <1048576>;
64*91f16700Schasinglulu		};
65*91f16700Schasinglulu	};
66*91f16700Schasinglulu
67*91f16700Schasinglulu	cpus {
68*91f16700Schasinglulu		#address-cells = <0x2>;
69*91f16700Schasinglulu		#size-cells = <0x0>;
70*91f16700Schasinglulu
71*91f16700Schasinglulu		CPU_0
72*91f16700Schasinglulu
73*91f16700Schasinglulu		/*
74*91f16700Schasinglulu		 * SPMC (Hafnium) requires secondary core nodes are declared
75*91f16700Schasinglulu		 * in descending order.
76*91f16700Schasinglulu		 */
77*91f16700Schasinglulu		CPU_7
78*91f16700Schasinglulu		CPU_6
79*91f16700Schasinglulu		CPU_5
80*91f16700Schasinglulu		CPU_4
81*91f16700Schasinglulu		CPU_3
82*91f16700Schasinglulu		CPU_2
83*91f16700Schasinglulu		CPU_1
84*91f16700Schasinglulu	};
85*91f16700Schasinglulu
86*91f16700Schasinglulu	memory@0 {
87*91f16700Schasinglulu		device_type = "memory";
88*91f16700Schasinglulu		reg = <0x0 0xfd000000 0x0 0x2000000>,
89*91f16700Schasinglulu		      <0x0 0x7000000 0x0 0x1000000>,
90*91f16700Schasinglulu		      <0x0 0xff000000 0x0 0x1000000>;
91*91f16700Schasinglulu	};
92*91f16700Schasinglulu
93*91f16700Schasinglulu	memory@1 {
94*91f16700Schasinglulu		device_type = "ns-memory";
95*91f16700Schasinglulu		reg = <0x00008800 0x80000000 0x0 0x7f000000>,
96*91f16700Schasinglulu		      <0x0 0x88000000 0x0 0x10000000>;
97*91f16700Schasinglulu	};
98*91f16700Schasinglulu
99*91f16700Schasinglulu#if MEASURED_BOOT
100*91f16700Schasinglulu#include "event_log.dtsi"
101*91f16700Schasinglulu#endif
102*91f16700Schasinglulu};
103