blob: 2bcd86ae7169d0ed738d25ae4071a5cfddbede01 [file] [log] [blame]
Prachotan Bathie1cba522025-09-18 14:21:54 -05001{
2 "$schema": "https://json-schema.org/draft/2020-12/schema",
3 "title": "Arm RAS Node Section Revision 1 (Tables 20 & 21)",
4 "type": "object",
5 "additionalProperties": false,
6 "required": ["revision", "componentType", "errorSyndromes"],
7 "properties": {
8 "revision": {
9 "type": "integer",
10 "const": 1,
11 "description": "Header Revision (must be 1)."
12 },
13 "componentType": {
14 "type": "integer",
15 "minimum": 0,
16 "maximum": 6,
17 "description": "Legacy AEST component type (0..6)."
18 },
19 "userData": {
20 "type": "string",
21 "maxLength": 16,
22 "description": "Null-terminated user data string (<=15 chars)."
23 },
24 "errorSyndromes": {
25 "type": "array",
26 "description": "Array of descriptor entries (Table 21).",
27 "items": {
28 "type": "object",
29 "additionalProperties": false,
30 "required": [
31 "errorRecordIndex",
32 "errorRecordFeatureRegister",
33 "errorRecordControlRegister",
34 "errorRecordPrimaryStatusRegister",
35 "errorRecordAddressRegister",
36 "errorRecordMiscRegister0",
37 "errorRecordMiscRegister1"
38 ],
39 "properties": {
40 "errorRecordIndex": {
41 "type": "integer",
42 "minimum": 0
43 },
44 "rasExtensionRevision": {
45 "type": "integer",
46 "minimum": 0,
47 "maximum": 255,
48 "description": "ERRDEVARCH nibble encoding (REVISION:ARCHVER). If 0 then MISC2/3 architecturally invalid."
49 },
50 "errorRecordFeatureRegister": {
51 "type": "integer",
52 "minimum": 0,
53 "description": "Contents of the Error Record Feature Register (ERR<n>FR)."
54 },
55 "errorRecordControlRegister": {
56 "type": "integer",
57 "minimum": 0,
58 "description": "Contents of the Error Record Control Register (ERR<n>CTLR)."
59 },
60 "errorRecordPrimaryStatusRegister": {
61 "type": "integer",
62 "minimum": 0,
63 "description": "Contents of the Error Record Primary Status Register (ERR<n>STATUS)."
64 },
65 "errorRecordAddressRegister": {
66 "type": "integer",
67 "minimum": 0,
68 "description": "Contents of the Error Record Address Register (ERR<n>ADDR)."
69 },
70 "errorRecordMiscRegister0": {
71 "type": "integer",
72 "minimum": 0,
73 "description": "Contents of the Error Record Miscellaneous Register 0 (ERR<n>MISC0)."
74 },
75 "errorRecordMiscRegister1": {
76 "type": "integer",
77 "minimum": 0,
78 "description": "Contents of the Error Record Miscellaneous Register 1 (ERR<n>MISC1)."
79 },
80 "errorRecordMiscRegister2": {
81 "type": "integer",
82 "minimum": 0,
83 "description": "Contents of the Error Record Miscellaneous Register 2 (ERR<n>MISC2)."
84 },
85 "errorRecordMiscRegister3": {
86 "type": "integer",
87 "minimum": 0,
88 "description": "Contents of the Error Record Miscellaneous Register 3 (ERR<n>MISC3)."
89 }
90 }
91 }
92 },
93 "auxData": {
94 "type": "object",
95 "description": "Decoded auxiliary data per Tables 22–26. Present only if raw auxData blob was successfully parsed.",
96 "additionalProperties": false,
97 "required": ["version", "contexts", "keyValuePairs"],
98 "properties": {
99 "version": {
100 "type": "integer",
101 "const": 1,
102 "description": "Aux data header version (must be 1)."
103 },
104 "contexts": {
105 "type": "array",
106 "description": "Address Space Context Array entries (each with register entries).",
107 "items": {
108 "type": "object",
109 "additionalProperties": false,
110 "required": ["flags", "registers"],
111 "properties": {
112 "flags": {
113 "type": "integer",
114 "minimum": 0,
115 "maximum": 255,
116 "description": "Flags; bit0=1 global/system address space, bit0=0 local/component address space."
117 },
118 "registerArrayLength": {
119 "type": "integer",
120 "minimum": 0,
121 "description": "Length in bytes of the register array region (including all registers)."
122 },
123 "addressSpaceIdentifier": {
124 "type": "integer",
125 "description": "Optional identifier (present only when global/system address space)."
126 },
127 "registers": {
128 "type": "array",
129 "items": {
130 "type": "object",
131 "additionalProperties": false,
132 "required": ["address", "value"],
133 "properties": {
134 "address": {
135 "type": "string",
136 "pattern": "^[0-9a-fA-F]{16}$",
137 "description": "Register address (up to 64-bit)."
138 },
139 "value": {
140 "type": "string",
141 "pattern": "^[0-9a-fA-F]{16}$",
142 "description": "Register value (up to 64-bit)."
143 }
144 }
145 }
146 }
147 }
148 }
149 },
150 "keyValuePairs": {
151 "type": "array",
152 "description": "Decoded Key-Value Pair Array (UUID + 64-bit value).",
153 "items": {
154 "type": "object",
155 "additionalProperties": false,
156 "properties": {
157 "uuid": {
158 "type": "string",
159 "pattern": "^[0-9a-fA-F]{32}$",
160 "description": "16-byte UUID encoded as 32 hex characters (big-endian)."
161 },
162 "value": {
163 "type": "integer",
164 "minimum": 0,
165 "description": "Associated 64-bit value for UUID."
166 },
167 "mpamPartId": {
168 "type": "integer",
169 "minimum": 0,
170 "description": "Convenience decoding when UUID matches MPAM PartID UUID."
171 }
172 }
173 }
174 }
175 }
176 }
177 }
178}