summaryrefslogtreecommitdiffstats
path: root/configs/platform-v7a/patches/barebox-2017.08.0/0003-vexpress-add-bootstate-node-to-the-device-tree.patch
blob: 27cfa0b1682604faf119af318f84c0ccf1adb6c8 (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
From: Michael Olbrich <m.olbrich@pengutronix.de>
Date: Sat, 10 Sep 2016 17:54:20 +0200
Subject: [PATCH] vexpress: add bootstate node to the device tree

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
 arch/arm/dts/vexpress-v2p-ca9.dts | 63 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/arch/arm/dts/vexpress-v2p-ca9.dts b/arch/arm/dts/vexpress-v2p-ca9.dts
index 541840ae22dc..d0975330f205 100644
--- a/arch/arm/dts/vexpress-v2p-ca9.dts
+++ b/arch/arm/dts/vexpress-v2p-ca9.dts
@@ -6,6 +6,10 @@
 		device-path = &barebox_env;
 	};
 
+	aliases {
+		state = &state;
+	};
+
 	smb@4000000 {
 		motherboard {
 			flash@0,00000000 {
@@ -21,6 +25,65 @@
 					label = "barebox-environment";
 					reg = <0x80000 0x80000>;
 				};
+
+				state_storage: partition@100000 {
+					label = "barebox-state";
+					reg = <0x100000 0x100000>;
+				};
+			};
+		};
+	};
+
+	/* State: mutable part */
+	state: state {
+		magic = <0x4d433230>;
+		compatible = "barebox,state";
+		backend-type = "raw";
+		backend = <&state_storage>;
+		backend-stridesize = <0x40>;
+		backend-storage-type = "circular";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		bootstate {
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			system0 { /* the node's name here must match the subnode's name in the 'bootstate' node */
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				remaining_attempts@0 {
+					reg = <0x0 0x4>;
+					type = "uint32";
+					default = <3>;
+				};
+				priority@4 {
+					reg = <0x4 0x4>;
+					type = "uint32";
+					default = <20>;
+				};
+			};
+
+			system1 { /* the node's name here must match the subnode's name in the 'bootstate' node */
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				remaining_attempts@8 {
+					reg = <0x8 0x4>;
+					type = "uint32";
+					default = <3>;
+				};
+				priority@c {
+					reg = <0xC 0x4>;
+					type = "uint32";
+					default = <20>;
+				};
+			};
+
+			last_chosen@10 {
+				reg = <0x10 0x4>;
+				type = "uint32";
 			};
 		};
 	};