blob: ccad75b4fcc9eeced971e8a987fdeb013656fca2 [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",
Lawrence Tang8a2d7372022-07-12 16:44:49 +010095 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +010096 },
97 "multipleError": {
98 "type": "object",
Lawrence Tang8f793ac2022-07-13 10:17:09 +010099 "required": ["type", "value"],
100 "additionalProperties": false,
101 "properties": {
102 "type": {
103 "type": "string"
104 },
105 "value": {
106 "type": "integer"
107 }
108 }
Lawrence Tang079d5812022-07-12 14:15:32 +0100109 },
110 "flags": {
111 "type": "object",
112 "required": ["firstErrorCaptured", "lastErrorCaptured", "propagated", "overflow"],
113 "properties": {
114 "firstErrorCaptured": {
115 "type": "boolean"
116 },
117 "lastErrorCaptured": {
118 "type": "boolean"
119 },
120 "propagated": {
121 "type": "boolean"
122 },
123 "overflow": {
124 "type": "boolean"
125 }
126 }
127 },
128 "errorInformation": {
129 "type": "object",
130 "oneOf": [
131 {
132 "type": "object",
133 "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "corrected", "precisePC", "restartablePC"],
134 "additionalProperties": false,
135 "properties": {
136 "validationBits": {
137 "type": "object",
138 "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "correctedValid", "precisePCValid", "restartablePCValid"],
139 "properties": {
140 "transactionTypeValid": {
141 "type": "boolean"
142 },
143 "operationValid": {
144 "type": "boolean"
145 },
146 "levelValid": {
147 "type": "boolean"
148 },
149 "processorContextCorruptValid": {
150 "type": "boolean"
151 },
152 "correctedValid": {
153 "type": "boolean"
154 },
155 "precisePCValid": {
156 "type": "boolean"
157 },
158 "restartablePCValid": {
159 "type": "boolean"
160 }
161 }
162 },
163 "transactionType": {
164 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100165 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100166 },
167 "operation": {
168 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100169 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100170 },
171 "level": {
172 "type": "integer"
173 },
174 "processorContextCorrupt": {
175 "type": "boolean"
176 },
177 "corrected": {
178 "type": "boolean"
179 },
180 "precisePC": {
181 "type": "boolean"
182 },
183 "restartablePC": {
184 "type": "boolean"
185 }
186 }
187 },
188 {
189 "type": "object",
190 "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "corrected", "precisePC", "restartablePC", "timedOut", "participationType", "addressSpace", "memoryAttributes", "accessMode"],
191 "additionalProperties": false,
192 "properties": {
193 "validationBits": {
194 "type": "object",
195 "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "correctedValid", "precisePCValid", "restartablePCValid", "participationTypeValid", "timedOutValid", "addressSpaceValid", "memoryAttributesValid", "accessModeValid"],
196 "properties": {
197 "transactionTypeValid": {
198 "type": "boolean"
199 },
200 "operationValid": {
201 "type": "boolean"
202 },
203 "levelValid": {
204 "type": "boolean"
205 },
206 "processorContextCorruptValid": {
207 "type": "boolean"
208 },
209 "correctedValid": {
210 "type": "boolean"
211 },
212 "precisePCValid": {
213 "type": "boolean"
214 },
215 "restartablePCValid": {
216 "type": "boolean"
217 },
218 "participationTypeValid": {
219 "type": "boolean"
220 },
221 "timedOutValid": {
222 "type": "boolean"
223 },
224 "addressSpaceValid": {
225 "type": "boolean"
226 },
227 "memoryAttributesValid": {
228 "type": "boolean"
229 },
230 "accessModeValid": {
231 "type": "boolean"
232 }
233 }
234 },
235 "transactionType": {
236 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100237 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100238 },
239 "operation": {
240 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100241 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100242 },
243 "level": {
244 "type": "integer"
245 },
246 "processorContextCorrupt": {
247 "type": "boolean"
248 },
249 "corrected": {
250 "type": "boolean"
251 },
252 "precisePC": {
253 "type": "boolean"
254 },
255 "restartablePC": {
256 "type": "boolean"
257 },
258 "timedOut": {
259 "type": "boolean"
260 },
261 "participationType": {
262 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100263 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100264 },
265 "addressSpace": {
266 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100267 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100268 },
269 "accessMode": {
270 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100271 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100272 },
273 "memoryAttributes": {
274 "type": "integer"
275 }
276 }
277 }
278 ]
279 },
280 "virtualFaultAddress": {
281 "type": "integer"
282 },
283 "physicalFaultAddress": {
284 "type": "integer"
285 }
286 }
287 }
288 },
289 "contextInfo": {
290 "type": "array",
291 "items": {
292 "type": "object",
293 "required": ["registerContextType", "registerArraySize", "registerArray"],
294 "additionalProperties": false,
295 "properties": {
296 "registerContextType": {
297 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100298 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100299 },
300 "registerArraySize": {
301 "type": "integer"
302 },
303 "registerArray": {
304 "type": "object",
305 "oneOf": [
306 {
307 "type": "object",
308 "required": ["r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13_sp", "r14_lr", "r15_pc"],
309 "properties": {
310 "r0": { "type": "integer" },
311 "r1": { "type": "integer" },
312 "r2": { "type": "integer" },
313 "r3": { "type": "integer" },
314 "r4": { "type": "integer" },
315 "r5": { "type": "integer" },
316 "r6": { "type": "integer" },
317 "r7": { "type": "integer" },
318 "r8": { "type": "integer" },
319 "r9": { "type": "integer" },
320 "r10": { "type": "integer" },
321 "r11": { "type": "integer" },
322 "r12": { "type": "integer" },
323 "r13_sp": { "type": "integer" },
324 "r14_lr": { "type": "integer" },
325 "r15_pc": { "type": "integer" }
326 }
327 },
328 {
329 "type": "object",
330 "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"],
331 "properties": {
332 "dfar": { "type": "integer" },
333 "dfsr": { "type": "integer" },
334 "ifar": { "type": "integer" },
335 "isr": { "type": "integer" },
336 "mair0": { "type": "integer" },
337 "mair1": { "type": "integer" },
338 "midr": { "type": "integer" },
339 "mpidr": { "type": "integer" },
340 "nmrr": { "type": "integer" },
341 "prrr": { "type": "integer" },
342 "sctlr_ns": { "type": "integer" },
343 "spsr": { "type": "integer" },
344 "spsr_abt": { "type": "integer" },
345 "spsr_fiq": { "type": "integer" },
346 "spsr_irq": { "type": "integer" },
347 "spsr_svc": { "type": "integer" },
348 "spsr_und": { "type": "integer" },
349 "tpidrprw": { "type": "integer" },
350 "tpidruro": { "type": "integer" },
351 "tpidrurw": { "type": "integer" },
352 "ttbcr": { "type": "integer" },
353 "ttbr0": { "type": "integer" },
354 "ttbr1": { "type": "integer" },
355 "dacr": { "type": "integer" }
356 }
357 },
358 {
359 "type": "object",
360 "required": ["elr_hyp", "hamair0", "hamair1", "hcr", "hcr2", "hdfar", "hifar", "hpfar", "hsr", "htcr", "htpidr", "httbr", "spsr_hyp", "vtcr", "vttbr", "dacr32_el2"],
361 "properties": {
362 "elr_hyp": { "type": "integer" },
363 "hamair0": { "type": "integer" },
364 "hamair1": { "type": "integer" },
365 "hcr": { "type": "integer" },
366 "hcr2": { "type": "integer" },
367 "hdfar": { "type": "integer" },
368 "hifar": { "type": "integer" },
369 "hpfar": { "type": "integer" },
370 "hsr": { "type": "integer" },
371 "htcr": { "type": "integer" },
372 "htpidr": { "type": "integer" },
373 "httbr": { "type": "integer" },
374 "spsr_hyp": { "type": "integer" },
375 "vtcr": { "type": "integer" },
376 "vttbr": { "type": "integer" },
377 "dacr32_el2": { "type": "integer" }
378 }
379 },
380 {
381 "type": "object",
382 "required": ["sctlr_s", "spsr_mon"],
383 "properties": {
384 "sctlr_s": { "type": "integer" },
385 "spsr_mon": { "type": "integer" }
386 }
387 },
388 {
389 "type": "object",
390 "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"],
391 "properties": {
392 "x0": { "type": "integer" },
393 "x1": { "type": "integer" },
394 "x2": { "type": "integer" },
395 "x3": { "type": "integer" },
396 "x4": { "type": "integer" },
397 "x5": { "type": "integer" },
398 "x6": { "type": "integer" },
399 "x7": { "type": "integer" },
400 "x8": { "type": "integer" },
401 "x9": { "type": "integer" },
402 "x10": { "type": "integer" },
403 "x11": { "type": "integer" },
404 "x12": { "type": "integer" },
405 "x13": { "type": "integer" },
406 "x14": { "type": "integer" },
407 "x15": { "type": "integer" },
408 "x16": { "type": "integer" },
409 "x17": { "type": "integer" },
410 "x18": { "type": "integer" },
411 "x19": { "type": "integer" },
412 "x20": { "type": "integer" },
413 "x21": { "type": "integer" },
414 "x22": { "type": "integer" },
415 "x23": { "type": "integer" },
416 "x24": { "type": "integer" },
417 "x25": { "type": "integer" },
418 "x26": { "type": "integer" },
419 "x27": { "type": "integer" },
420 "x28": { "type": "integer" },
421 "x29": { "type": "integer" },
422 "x30": { "type": "integer" },
423 "sp": { "type": "integer" }
424 }
425 },
426 {
427 "type": "object",
428 "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"],
429 "properties": {
430 "elr_el1": { "type": "integer" },
431 "esr_el1": { "type": "integer" },
432 "far_el1": { "type": "integer" },
433 "isr_el1": { "type": "integer" },
434 "mair_el1": { "type": "integer" },
435 "midr_el1": { "type": "integer" },
436 "mpidr_el1": { "type": "integer" },
437 "sctlr_el1": { "type": "integer" },
438 "sp_el0": { "type": "integer" },
439 "sp_el1": { "type": "integer" },
440 "spsr_el1": { "type": "integer" },
441 "tcr_el1": { "type": "integer" },
442 "tpidr_el0": { "type": "integer" },
443 "tpidr_el1": { "type": "integer" },
444 "tpidrro_el0": { "type": "integer" },
445 "ttbr0_el1": { "type": "integer" },
446 "ttbr1_el1": { "type": "integer" }
447 }
448 },
449 {
450 "type": "object",
451 "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"],
452 "properties": {
453 "elr_el2": { "type": "integer" },
454 "esr_el2": { "type": "integer" },
455 "far_el2": { "type": "integer" },
456 "hacr_el2": { "type": "integer" },
457 "hcr_el2": { "type": "integer" },
458 "hpfar_el2": { "type": "integer" },
459 "mair_el2": { "type": "integer" },
460 "sctlr_el2": { "type": "integer" },
461 "sp_el2": { "type": "integer" },
462 "spsr_el2": { "type": "integer" },
463 "tcr_el2": { "type": "integer" },
464 "tpidr_el2": { "type": "integer" },
465 "ttbr0_el2": { "type": "integer" },
466 "vtcr_el2": { "type": "integer" },
467 "vttbr_el2": { "type": "integer" }
468 }
469 },
470 {
471 "type": "object",
472 "required": ["elr_el3", "esr_el3", "far_el3", "mair_el3", "sctlr_el3", "sp_el3", "spsr_el3", "tcr_el3", "tpidr_el3", "ttbr0_el3"],
473 "properties": {
474 "elr_el3": { "type": "integer" },
475 "esr_el3": { "type": "integer" },
476 "far_el3": { "type": "integer" },
477 "mair_el3": { "type": "integer" },
478 "sctlr_el3": { "type": "integer" },
479 "sp_el3": { "type": "integer" },
480 "spsr_el3": { "type": "integer" },
481 "tcr_el3": { "type": "integer" },
482 "tpidr_el3": { "type": "integer" },
483 "ttbr0_el3": { "type": "integer" }
484 }
485 },
486 {
487 "type": "object",
488 "required": ["mrsEncoding", "value"],
489 "additionalProperties": false,
490 "properties": {
491 "mrsEncoding": {
492 "type": "object",
493 "required": ["op2", "crm", "crn", "op1", "o0"],
494 "properties": {
495 "op2": { "type": "integer" },
496 "crm": { "type": "integer" },
497 "crn": { "type": "integer" },
498 "op1": { "type": "integer" },
499 "o0": { "type": "integer" }
500 }
501 },
502 "value": {
503 "type": "integer"
504 }
505 }
506 },
507 {
508 "type": "object",
509 "required": ["data"],
510 "properties": {
511 "data": {
512 "type": "string"
513 }
514 }
515 }
516 ]
517 }
518 }
519 }
520 },
521 "vendorSpecificInfo": {
522 "type": "object",
523 "required": ["data"],
524 "additionalProperties": false,
525 "properties": {
526 "data": {
527 "type": "string"
528 }
529 }
530 }
531 }
532}