blob: 55b1dbc8e3f4ae847ff90ad147faea71355ba8f6 [file] [log] [blame]
Lawrence Tang079d5812022-07-12 14:15:32 +01001{
2 "$id": "cper-json-arm-processor-section",
3 "$schema": "https://json-schema.org/draft/2020-12/schema",
4 "type": "object",
5 "required": ["validationBits", "errorInfoNum", "contextInfoNum", "sectionLength", "errorAffinity", "mpidrEl1", "midrEl1", "running", "errorInfo", "contextInfo"],
6 "additionalProperties": false,
7 "properties": {
8 "validationBits": {
9 "type": "object",
10 "required": ["mpidrValid", "errorAffinityLevelValid", "runningStateValid", "vendorSpecificInfoValid"],
11 "properties": {
12 "mpidrValid": {
13 "type": "boolean"
14 },
15 "errorAffinityLevelValid": {
16 "type": "boolean"
17 },
18 "runningStateValid": {
19 "type": "boolean"
20 },
21 "vendorSpecificInfoValid": {
22 "type": "boolean"
23 }
24 }
25 },
26 "errorInfoNum": {
27 "type": "integer"
28 },
29 "contextInfoNum": {
30 "type": "integer"
31 },
32 "sectionLength": {
33 "type": "integer"
34 },
35 "errorAffinity": {
36 "type": "object",
37 "required": ["value", "type"],
38 "properties": {
39 "value": {
40 "type": "integer"
41 },
42 "type": {
43 "type": "string"
44 }
45 }
46 },
47 "mpidrEl1": {
48 "type": "integer"
49 },
50 "midrEl1": {
51 "type": "integer"
52 },
53 "running": {
54 "type": "boolean"
55 },
56 "psciState": {
57 "type": "integer"
58 },
59 "errorInfo": {
60 "type": "array",
61 "items": {
62 "type": "object",
63 "required": ["version", "length", "validationBits", "errorType", "multipleError", "flags", "errorInformation", "virtualFaultAddress", "physicalFaultAddress"],
64 "additionalProperties": false,
65 "properties": {
66 "version": {
67 "type": "integer"
68 },
69 "length": {
70 "type": "integer"
71 },
72 "validationBits": {
73 "type": "object",
74 "required": ["multipleErrorValid", "flagsValid", "errorInformationValid", "virtualFaultAddressValid", "physicalFaultAddressValid"],
75 "properties": {
76 "multipleErrorValid": {
77 "type": "boolean"
78 },
79 "flagsValid": {
80 "type": "boolean"
81 },
82 "errorInformationValid": {
83 "type": "boolean"
84 },
85 "virtualFaultAddressValid": {
86 "type": "boolean"
87 },
88 "physicalFaultAddressValid": {
89 "type": "boolean"
90 }
91 }
92 },
93 "errorType": {
94 "type": "object",
95 "$ref": "../common/cper-json-nvp.json"
96 },
97 "multipleError": {
98 "type": "object",
99 "$ref": "../common/cper-json-nvp.json"
100 },
101 "flags": {
102 "type": "object",
103 "required": ["firstErrorCaptured", "lastErrorCaptured", "propagated", "overflow"],
104 "properties": {
105 "firstErrorCaptured": {
106 "type": "boolean"
107 },
108 "lastErrorCaptured": {
109 "type": "boolean"
110 },
111 "propagated": {
112 "type": "boolean"
113 },
114 "overflow": {
115 "type": "boolean"
116 }
117 }
118 },
119 "errorInformation": {
120 "type": "object",
121 "oneOf": [
122 {
123 "type": "object",
124 "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "corrected", "precisePC", "restartablePC"],
125 "additionalProperties": false,
126 "properties": {
127 "validationBits": {
128 "type": "object",
129 "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "correctedValid", "precisePCValid", "restartablePCValid"],
130 "properties": {
131 "transactionTypeValid": {
132 "type": "boolean"
133 },
134 "operationValid": {
135 "type": "boolean"
136 },
137 "levelValid": {
138 "type": "boolean"
139 },
140 "processorContextCorruptValid": {
141 "type": "boolean"
142 },
143 "correctedValid": {
144 "type": "boolean"
145 },
146 "precisePCValid": {
147 "type": "boolean"
148 },
149 "restartablePCValid": {
150 "type": "boolean"
151 }
152 }
153 },
154 "transactionType": {
155 "type": "object",
156 "$ref": "../common/cper-json-nvp.json"
157 },
158 "operation": {
159 "type": "object",
160 "$ref": "../common/cper-json-nvp.json"
161 },
162 "level": {
163 "type": "integer"
164 },
165 "processorContextCorrupt": {
166 "type": "boolean"
167 },
168 "corrected": {
169 "type": "boolean"
170 },
171 "precisePC": {
172 "type": "boolean"
173 },
174 "restartablePC": {
175 "type": "boolean"
176 }
177 }
178 },
179 {
180 "type": "object",
181 "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "corrected", "precisePC", "restartablePC", "timedOut", "participationType", "addressSpace", "memoryAttributes", "accessMode"],
182 "additionalProperties": false,
183 "properties": {
184 "validationBits": {
185 "type": "object",
186 "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "correctedValid", "precisePCValid", "restartablePCValid", "participationTypeValid", "timedOutValid", "addressSpaceValid", "memoryAttributesValid", "accessModeValid"],
187 "properties": {
188 "transactionTypeValid": {
189 "type": "boolean"
190 },
191 "operationValid": {
192 "type": "boolean"
193 },
194 "levelValid": {
195 "type": "boolean"
196 },
197 "processorContextCorruptValid": {
198 "type": "boolean"
199 },
200 "correctedValid": {
201 "type": "boolean"
202 },
203 "precisePCValid": {
204 "type": "boolean"
205 },
206 "restartablePCValid": {
207 "type": "boolean"
208 },
209 "participationTypeValid": {
210 "type": "boolean"
211 },
212 "timedOutValid": {
213 "type": "boolean"
214 },
215 "addressSpaceValid": {
216 "type": "boolean"
217 },
218 "memoryAttributesValid": {
219 "type": "boolean"
220 },
221 "accessModeValid": {
222 "type": "boolean"
223 }
224 }
225 },
226 "transactionType": {
227 "type": "object",
228 "$ref": "../common/cper-json-nvp.json"
229 },
230 "operation": {
231 "type": "object",
232 "$ref": "../common/cper-json-nvp.json"
233 },
234 "level": {
235 "type": "integer"
236 },
237 "processorContextCorrupt": {
238 "type": "boolean"
239 },
240 "corrected": {
241 "type": "boolean"
242 },
243 "precisePC": {
244 "type": "boolean"
245 },
246 "restartablePC": {
247 "type": "boolean"
248 },
249 "timedOut": {
250 "type": "boolean"
251 },
252 "participationType": {
253 "type": "object",
254 "$ref": "../common/cper-json-nvp.json"
255 },
256 "addressSpace": {
257 "type": "object",
258 "$ref": "../common/cper-json-nvp.json"
259 },
260 "accessMode": {
261 "type": "object",
262 "$ref": "../common/cper-json-nvp.json"
263 },
264 "memoryAttributes": {
265 "type": "integer"
266 }
267 }
268 }
269 ]
270 },
271 "virtualFaultAddress": {
272 "type": "integer"
273 },
274 "physicalFaultAddress": {
275 "type": "integer"
276 }
277 }
278 }
279 },
280 "contextInfo": {
281 "type": "array",
282 "items": {
283 "type": "object",
284 "required": ["registerContextType", "registerArraySize", "registerArray"],
285 "additionalProperties": false,
286 "properties": {
287 "registerContextType": {
288 "type": "object",
289 "$ref": "../common/cper-json-nvp.json"
290 },
291 "registerArraySize": {
292 "type": "integer"
293 },
294 "registerArray": {
295 "type": "object",
296 "oneOf": [
297 {
298 "type": "object",
299 "required": ["r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13_sp", "r14_lr", "r15_pc"],
300 "properties": {
301 "r0": { "type": "integer" },
302 "r1": { "type": "integer" },
303 "r2": { "type": "integer" },
304 "r3": { "type": "integer" },
305 "r4": { "type": "integer" },
306 "r5": { "type": "integer" },
307 "r6": { "type": "integer" },
308 "r7": { "type": "integer" },
309 "r8": { "type": "integer" },
310 "r9": { "type": "integer" },
311 "r10": { "type": "integer" },
312 "r11": { "type": "integer" },
313 "r12": { "type": "integer" },
314 "r13_sp": { "type": "integer" },
315 "r14_lr": { "type": "integer" },
316 "r15_pc": { "type": "integer" }
317 }
318 },
319 {
320 "type": "object",
321 "required": ["dfar", "dfsr", "ifar", "isr", "mair0", "mair1", "midr", "mpidr", "nmrr", "prrr", "sctlr_ns", "spsr", "spsr_abt", "spsr_fiq", "spsr_irq", "spsr_svc", "spsr_und", "tpidrprw", "tpidruro", "tpidrurw", "ttbcr", "ttbr0", "ttbr1", "dacr"],
322 "properties": {
323 "dfar": { "type": "integer" },
324 "dfsr": { "type": "integer" },
325 "ifar": { "type": "integer" },
326 "isr": { "type": "integer" },
327 "mair0": { "type": "integer" },
328 "mair1": { "type": "integer" },
329 "midr": { "type": "integer" },
330 "mpidr": { "type": "integer" },
331 "nmrr": { "type": "integer" },
332 "prrr": { "type": "integer" },
333 "sctlr_ns": { "type": "integer" },
334 "spsr": { "type": "integer" },
335 "spsr_abt": { "type": "integer" },
336 "spsr_fiq": { "type": "integer" },
337 "spsr_irq": { "type": "integer" },
338 "spsr_svc": { "type": "integer" },
339 "spsr_und": { "type": "integer" },
340 "tpidrprw": { "type": "integer" },
341 "tpidruro": { "type": "integer" },
342 "tpidrurw": { "type": "integer" },
343 "ttbcr": { "type": "integer" },
344 "ttbr0": { "type": "integer" },
345 "ttbr1": { "type": "integer" },
346 "dacr": { "type": "integer" }
347 }
348 },
349 {
350 "type": "object",
351 "required": ["elr_hyp", "hamair0", "hamair1", "hcr", "hcr2", "hdfar", "hifar", "hpfar", "hsr", "htcr", "htpidr", "httbr", "spsr_hyp", "vtcr", "vttbr", "dacr32_el2"],
352 "properties": {
353 "elr_hyp": { "type": "integer" },
354 "hamair0": { "type": "integer" },
355 "hamair1": { "type": "integer" },
356 "hcr": { "type": "integer" },
357 "hcr2": { "type": "integer" },
358 "hdfar": { "type": "integer" },
359 "hifar": { "type": "integer" },
360 "hpfar": { "type": "integer" },
361 "hsr": { "type": "integer" },
362 "htcr": { "type": "integer" },
363 "htpidr": { "type": "integer" },
364 "httbr": { "type": "integer" },
365 "spsr_hyp": { "type": "integer" },
366 "vtcr": { "type": "integer" },
367 "vttbr": { "type": "integer" },
368 "dacr32_el2": { "type": "integer" }
369 }
370 },
371 {
372 "type": "object",
373 "required": ["sctlr_s", "spsr_mon"],
374 "properties": {
375 "sctlr_s": { "type": "integer" },
376 "spsr_mon": { "type": "integer" }
377 }
378 },
379 {
380 "type": "object",
381 "required": ["x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "x28", "x29", "x30", "sp"],
382 "properties": {
383 "x0": { "type": "integer" },
384 "x1": { "type": "integer" },
385 "x2": { "type": "integer" },
386 "x3": { "type": "integer" },
387 "x4": { "type": "integer" },
388 "x5": { "type": "integer" },
389 "x6": { "type": "integer" },
390 "x7": { "type": "integer" },
391 "x8": { "type": "integer" },
392 "x9": { "type": "integer" },
393 "x10": { "type": "integer" },
394 "x11": { "type": "integer" },
395 "x12": { "type": "integer" },
396 "x13": { "type": "integer" },
397 "x14": { "type": "integer" },
398 "x15": { "type": "integer" },
399 "x16": { "type": "integer" },
400 "x17": { "type": "integer" },
401 "x18": { "type": "integer" },
402 "x19": { "type": "integer" },
403 "x20": { "type": "integer" },
404 "x21": { "type": "integer" },
405 "x22": { "type": "integer" },
406 "x23": { "type": "integer" },
407 "x24": { "type": "integer" },
408 "x25": { "type": "integer" },
409 "x26": { "type": "integer" },
410 "x27": { "type": "integer" },
411 "x28": { "type": "integer" },
412 "x29": { "type": "integer" },
413 "x30": { "type": "integer" },
414 "sp": { "type": "integer" }
415 }
416 },
417 {
418 "type": "object",
419 "required": ["elr_el1", "esr_el1", "far_el1", "isr_el1", "mair_el1", "midr_el1", "mpidr_el1", "sctlr_el1", "sp_el0", "sp_el1", "spsr_el1", "tcr_el1", "tpidr_el0", "tpidr_el1", "tpidrro_el0", "ttbr0_el1", "ttbr1_el1"],
420 "properties": {
421 "elr_el1": { "type": "integer" },
422 "esr_el1": { "type": "integer" },
423 "far_el1": { "type": "integer" },
424 "isr_el1": { "type": "integer" },
425 "mair_el1": { "type": "integer" },
426 "midr_el1": { "type": "integer" },
427 "mpidr_el1": { "type": "integer" },
428 "sctlr_el1": { "type": "integer" },
429 "sp_el0": { "type": "integer" },
430 "sp_el1": { "type": "integer" },
431 "spsr_el1": { "type": "integer" },
432 "tcr_el1": { "type": "integer" },
433 "tpidr_el0": { "type": "integer" },
434 "tpidr_el1": { "type": "integer" },
435 "tpidrro_el0": { "type": "integer" },
436 "ttbr0_el1": { "type": "integer" },
437 "ttbr1_el1": { "type": "integer" }
438 }
439 },
440 {
441 "type": "object",
442 "required": ["elr_el2", "esr_el2", "far_el2", "hacr_el2", "hcr_el2", "hpfar_el2", "mair_el2", "sctlr_el2", "sp_el2", "spsr_el2", "tcr_el2", "tpidr_el2", "ttbr0_el2", "vtcr_el2", "vttbr_el2"],
443 "properties": {
444 "elr_el2": { "type": "integer" },
445 "esr_el2": { "type": "integer" },
446 "far_el2": { "type": "integer" },
447 "hacr_el2": { "type": "integer" },
448 "hcr_el2": { "type": "integer" },
449 "hpfar_el2": { "type": "integer" },
450 "mair_el2": { "type": "integer" },
451 "sctlr_el2": { "type": "integer" },
452 "sp_el2": { "type": "integer" },
453 "spsr_el2": { "type": "integer" },
454 "tcr_el2": { "type": "integer" },
455 "tpidr_el2": { "type": "integer" },
456 "ttbr0_el2": { "type": "integer" },
457 "vtcr_el2": { "type": "integer" },
458 "vttbr_el2": { "type": "integer" }
459 }
460 },
461 {
462 "type": "object",
463 "required": ["elr_el3", "esr_el3", "far_el3", "mair_el3", "sctlr_el3", "sp_el3", "spsr_el3", "tcr_el3", "tpidr_el3", "ttbr0_el3"],
464 "properties": {
465 "elr_el3": { "type": "integer" },
466 "esr_el3": { "type": "integer" },
467 "far_el3": { "type": "integer" },
468 "mair_el3": { "type": "integer" },
469 "sctlr_el3": { "type": "integer" },
470 "sp_el3": { "type": "integer" },
471 "spsr_el3": { "type": "integer" },
472 "tcr_el3": { "type": "integer" },
473 "tpidr_el3": { "type": "integer" },
474 "ttbr0_el3": { "type": "integer" }
475 }
476 },
477 {
478 "type": "object",
479 "required": ["mrsEncoding", "value"],
480 "additionalProperties": false,
481 "properties": {
482 "mrsEncoding": {
483 "type": "object",
484 "required": ["op2", "crm", "crn", "op1", "o0"],
485 "properties": {
486 "op2": { "type": "integer" },
487 "crm": { "type": "integer" },
488 "crn": { "type": "integer" },
489 "op1": { "type": "integer" },
490 "o0": { "type": "integer" }
491 }
492 },
493 "value": {
494 "type": "integer"
495 }
496 }
497 },
498 {
499 "type": "object",
500 "required": ["data"],
501 "properties": {
502 "data": {
503 "type": "string"
504 }
505 }
506 }
507 ]
508 }
509 }
510 }
511 },
512 "vendorSpecificInfo": {
513 "type": "object",
514 "required": ["data"],
515 "additionalProperties": false,
516 "properties": {
517 "data": {
518 "type": "string"
519 }
520 }
521 }
522 }
523}