summaryrefslogtreecommitdiff
path: root/plat/arm/board/tc/fdts/tc_spmc_manifest.dts
blob: b64e0762eeec2367e98153849d5ae36455b4a57a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
 * Copyright (c) 2020-2023, Arm Limited. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */
/dts-v1/;

/ {
	compatible = "arm,ffa-core-manifest-1.0";
	#address-cells = <2>;
	#size-cells = <2>;

	attribute {
		spmc_id = <0x8000>;
		maj_ver = <0x1>;
		min_ver = <0x1>;
		exec_state = <0x0>;
		load_address = <0x0 0xfd000000>;
		entrypoint = <0x0 0xfd000000>;
		binary_size = <0x80000>;
	};

	hypervisor {
		compatible = "hafnium,hafnium";
		vm1 {
			is_ffa_partition;
			debug_name = "cactus-primary";
			load_address = <0xfe000000>;
			vcpu_count = <8>;
			mem_size = <1048576>;
		};
		vm2 {
			is_ffa_partition;
			debug_name = "cactus-secondary";
			load_address = <0xfe100000>;
			vcpu_count = <8>;
			mem_size = <1048576>;
		};
		vm3 {
			is_ffa_partition;
			debug_name = "cactus-tertiary";
			load_address = <0xfe200000>;
			vcpu_count = <1>;
			mem_size = <1048576>;
		};
		vm4 {
			is_ffa_partition;
			debug_name = "ivy";
			load_address = <0xfe600000>;
			vcpu_count = <1>;
			mem_size = <1048576>;
		};
	};

	cpus {
		#address-cells = <0x2>;
		#size-cells = <0x0>;

		CPU0:cpu@0 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x0 0x0>;
			enable-method = "psci";
		};

		/*
		 * SPMC (Hafnium) requires secondary cpu nodes are declared in
		 * descending order
		 */
		CPU7:cpu@700 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x0 0x700>;
			enable-method = "psci";
		};

		CPU6:cpu@600 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x0 0x600>;
			enable-method = "psci";
		};

		CPU5:cpu@500 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x0 0x500>;
			enable-method = "psci";
		};

		CPU4:cpu@400 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x0 0x400>;
			enable-method = "psci";
		};

		CPU3:cpu@300 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x0 0x300>;
			enable-method = "psci";
		};

		CPU2:cpu@200 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x0 0x200>;
			enable-method = "psci";
		};

		CPU1:cpu@100 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x0 0x100>;
			enable-method = "psci";
		};
	};

	memory@0 {
		device_type = "memory";
		reg = <0x0 0xfd000000 0x0 0x2000000>,
		      <0x0 0x7000000 0x0 0x1000000>,
		      <0x0 0xff000000 0x0 0x1000000>;
	};

	memory@1 {
		device_type = "ns-memory";
		reg = <0x00008800 0x80000000 0x0 0x7f000000>,
		      <0x0 0x88000000 0x1 0x00000000>;
	};
};