blob: 546b3f425418f5fbba0e02f172a127ec91957ea9 [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",
John Chung044afd02024-05-03 19:58:02 +08005 "required": [
6 "validationBits",
7 "errorInfoNum",
8 "contextInfoNum",
9 "sectionLength",
10 "errorAffinity",
11 "mpidrEl1",
12 "midrEl1",
13 "running",
14 "errorInfo",
15 "contextInfo"
16 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010017 "additionalProperties": false,
18 "properties": {
19 "validationBits": {
20 "type": "object",
John Chung044afd02024-05-03 19:58:02 +080021 "required": [
22 "mpidrValid",
23 "errorAffinityLevelValid",
24 "runningStateValid",
25 "vendorSpecificInfoValid"
26 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010027 "properties": {
28 "mpidrValid": {
29 "type": "boolean"
30 },
31 "errorAffinityLevelValid": {
32 "type": "boolean"
33 },
34 "runningStateValid": {
35 "type": "boolean"
36 },
37 "vendorSpecificInfoValid": {
38 "type": "boolean"
39 }
40 }
41 },
42 "errorInfoNum": {
43 "type": "integer"
44 },
45 "contextInfoNum": {
46 "type": "integer"
47 },
48 "sectionLength": {
49 "type": "integer"
50 },
51 "errorAffinity": {
52 "type": "object",
53 "required": ["value", "type"],
54 "properties": {
55 "value": {
56 "type": "integer"
57 },
58 "type": {
59 "type": "string"
60 }
61 }
62 },
63 "mpidrEl1": {
64 "type": "integer"
65 },
66 "midrEl1": {
67 "type": "integer"
68 },
69 "running": {
70 "type": "boolean"
71 },
72 "psciState": {
73 "type": "integer"
74 },
75 "errorInfo": {
76 "type": "array",
77 "items": {
78 "type": "object",
John Chung044afd02024-05-03 19:58:02 +080079 "required": [
80 "version",
81 "length",
82 "validationBits",
83 "errorType",
84 "multipleError",
85 "flags",
86 "errorInformation",
87 "virtualFaultAddress",
88 "physicalFaultAddress"
89 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010090 "additionalProperties": false,
91 "properties": {
92 "version": {
93 "type": "integer"
94 },
95 "length": {
96 "type": "integer"
97 },
98 "validationBits": {
99 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800100 "required": [
101 "multipleErrorValid",
102 "flagsValid",
103 "errorInformationValid",
104 "virtualFaultAddressValid",
105 "physicalFaultAddressValid"
106 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100107 "properties": {
108 "multipleErrorValid": {
109 "type": "boolean"
110 },
111 "flagsValid": {
112 "type": "boolean"
113 },
114 "errorInformationValid": {
115 "type": "boolean"
116 },
117 "virtualFaultAddressValid": {
118 "type": "boolean"
119 },
120 "physicalFaultAddressValid": {
121 "type": "boolean"
122 }
123 }
124 },
125 "errorType": {
126 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100127 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100128 },
129 "multipleError": {
130 "type": "object",
Lawrence Tang8f793ac2022-07-13 10:17:09 +0100131 "required": ["type", "value"],
132 "additionalProperties": false,
133 "properties": {
134 "type": {
135 "type": "string"
136 },
137 "value": {
138 "type": "integer"
139 }
140 }
Lawrence Tang079d5812022-07-12 14:15:32 +0100141 },
142 "flags": {
143 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800144 "required": [
145 "firstErrorCaptured",
146 "lastErrorCaptured",
147 "propagated",
148 "overflow"
149 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100150 "properties": {
151 "firstErrorCaptured": {
152 "type": "boolean"
153 },
154 "lastErrorCaptured": {
155 "type": "boolean"
156 },
157 "propagated": {
158 "type": "boolean"
159 },
160 "overflow": {
161 "type": "boolean"
162 }
163 }
164 },
165 "errorInformation": {
166 "type": "object",
167 "oneOf": [
168 {
169 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800170 "required": [
171 "validationBits",
172 "transactionType",
173 "operation",
174 "level",
175 "processorContextCorrupt",
176 "corrected",
177 "precisePC",
178 "restartablePC"
179 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100180 "additionalProperties": false,
181 "properties": {
182 "validationBits": {
183 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800184 "required": [
185 "transactionTypeValid",
186 "operationValid",
187 "levelValid",
188 "processorContextCorruptValid",
189 "correctedValid",
190 "precisePCValid",
191 "restartablePCValid"
192 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100193 "properties": {
194 "transactionTypeValid": {
195 "type": "boolean"
196 },
197 "operationValid": {
198 "type": "boolean"
199 },
200 "levelValid": {
201 "type": "boolean"
202 },
203 "processorContextCorruptValid": {
204 "type": "boolean"
205 },
206 "correctedValid": {
207 "type": "boolean"
208 },
209 "precisePCValid": {
210 "type": "boolean"
211 },
212 "restartablePCValid": {
213 "type": "boolean"
214 }
215 }
216 },
217 "transactionType": {
218 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100219 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100220 },
221 "operation": {
222 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100223 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100224 },
225 "level": {
226 "type": "integer"
227 },
228 "processorContextCorrupt": {
229 "type": "boolean"
230 },
231 "corrected": {
232 "type": "boolean"
233 },
234 "precisePC": {
235 "type": "boolean"
236 },
237 "restartablePC": {
238 "type": "boolean"
239 }
240 }
241 },
242 {
243 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800244 "required": [
245 "validationBits",
246 "transactionType",
247 "operation",
248 "level",
249 "processorContextCorrupt",
250 "corrected",
251 "precisePC",
252 "restartablePC",
253 "timedOut",
254 "participationType",
255 "addressSpace",
256 "memoryAttributes",
257 "accessMode"
258 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100259 "additionalProperties": false,
260 "properties": {
261 "validationBits": {
262 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800263 "required": [
264 "transactionTypeValid",
265 "operationValid",
266 "levelValid",
267 "processorContextCorruptValid",
268 "correctedValid",
269 "precisePCValid",
270 "restartablePCValid",
271 "participationTypeValid",
272 "timedOutValid",
273 "addressSpaceValid",
274 "memoryAttributesValid",
275 "accessModeValid"
276 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100277 "properties": {
278 "transactionTypeValid": {
279 "type": "boolean"
280 },
281 "operationValid": {
282 "type": "boolean"
283 },
284 "levelValid": {
285 "type": "boolean"
286 },
287 "processorContextCorruptValid": {
288 "type": "boolean"
289 },
290 "correctedValid": {
291 "type": "boolean"
292 },
293 "precisePCValid": {
294 "type": "boolean"
295 },
296 "restartablePCValid": {
297 "type": "boolean"
298 },
299 "participationTypeValid": {
300 "type": "boolean"
301 },
302 "timedOutValid": {
303 "type": "boolean"
304 },
305 "addressSpaceValid": {
306 "type": "boolean"
307 },
308 "memoryAttributesValid": {
309 "type": "boolean"
310 },
311 "accessModeValid": {
312 "type": "boolean"
313 }
314 }
315 },
316 "transactionType": {
317 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100318 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100319 },
320 "operation": {
321 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100322 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100323 },
324 "level": {
325 "type": "integer"
326 },
327 "processorContextCorrupt": {
328 "type": "boolean"
329 },
330 "corrected": {
331 "type": "boolean"
332 },
333 "precisePC": {
334 "type": "boolean"
335 },
336 "restartablePC": {
337 "type": "boolean"
338 },
339 "timedOut": {
340 "type": "boolean"
341 },
342 "participationType": {
343 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100344 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100345 },
346 "addressSpace": {
347 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100348 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100349 },
350 "accessMode": {
351 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100352 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100353 },
354 "memoryAttributes": {
355 "type": "integer"
356 }
357 }
Lawrence Tang71570a22022-07-14 11:45:28 +0100358 },
359 {
360 "type": "object",
Lawrence Tangc837fac2022-07-14 11:48:07 +0100361 "required": ["data"],
Lawrence Tang71570a22022-07-14 11:45:28 +0100362 "additionalProperties": false,
363 "properties": {
364 "data": {
365 "type": "integer"
366 }
367 }
Lawrence Tang079d5812022-07-12 14:15:32 +0100368 }
369 ]
370 },
371 "virtualFaultAddress": {
372 "type": "integer"
373 },
374 "physicalFaultAddress": {
375 "type": "integer"
376 }
377 }
378 }
379 },
380 "contextInfo": {
381 "type": "array",
382 "items": {
383 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800384 "required": [
385 "version",
386 "registerContextType",
387 "registerArraySize",
388 "registerArray"
389 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100390 "additionalProperties": false,
391 "properties": {
Lawrence Tang71570a22022-07-14 11:45:28 +0100392 "version": {
393 "type": "integer",
394 "minimum": 0
395 },
Lawrence Tang079d5812022-07-12 14:15:32 +0100396 "registerContextType": {
397 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100398 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100399 },
400 "registerArraySize": {
401 "type": "integer"
402 },
403 "registerArray": {
404 "type": "object",
405 "oneOf": [
406 {
407 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800408 "required": [
409 "r1",
410 "r2",
411 "r3",
412 "r4",
413 "r5",
414 "r6",
415 "r7",
416 "r8",
417 "r9",
418 "r10",
419 "r11",
420 "r12",
421 "r13_sp",
422 "r14_lr",
423 "r15_pc"
424 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100425 "properties": {
426 "r0": { "type": "integer" },
427 "r1": { "type": "integer" },
428 "r2": { "type": "integer" },
429 "r3": { "type": "integer" },
430 "r4": { "type": "integer" },
431 "r5": { "type": "integer" },
432 "r6": { "type": "integer" },
433 "r7": { "type": "integer" },
434 "r8": { "type": "integer" },
435 "r9": { "type": "integer" },
436 "r10": { "type": "integer" },
437 "r11": { "type": "integer" },
438 "r12": { "type": "integer" },
439 "r13_sp": { "type": "integer" },
440 "r14_lr": { "type": "integer" },
441 "r15_pc": { "type": "integer" }
442 }
443 },
444 {
445 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800446 "required": [
447 "dfar",
448 "dfsr",
449 "ifar",
450 "isr",
451 "mair0",
452 "mair1",
453 "midr",
454 "mpidr",
455 "nmrr",
456 "prrr",
457 "sctlr_ns",
458 "spsr",
459 "spsr_abt",
460 "spsr_fiq",
461 "spsr_irq",
462 "spsr_svc",
463 "spsr_und",
464 "tpidrprw",
465 "tpidruro",
466 "tpidrurw",
467 "ttbcr",
468 "ttbr0",
469 "ttbr1",
470 "dacr"
471 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100472 "properties": {
473 "dfar": { "type": "integer" },
474 "dfsr": { "type": "integer" },
475 "ifar": { "type": "integer" },
476 "isr": { "type": "integer" },
477 "mair0": { "type": "integer" },
478 "mair1": { "type": "integer" },
479 "midr": { "type": "integer" },
480 "mpidr": { "type": "integer" },
481 "nmrr": { "type": "integer" },
482 "prrr": { "type": "integer" },
483 "sctlr_ns": { "type": "integer" },
484 "spsr": { "type": "integer" },
485 "spsr_abt": { "type": "integer" },
486 "spsr_fiq": { "type": "integer" },
487 "spsr_irq": { "type": "integer" },
488 "spsr_svc": { "type": "integer" },
489 "spsr_und": { "type": "integer" },
490 "tpidrprw": { "type": "integer" },
491 "tpidruro": { "type": "integer" },
492 "tpidrurw": { "type": "integer" },
493 "ttbcr": { "type": "integer" },
494 "ttbr0": { "type": "integer" },
495 "ttbr1": { "type": "integer" },
496 "dacr": { "type": "integer" }
497 }
498 },
499 {
500 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800501 "required": [
502 "elr_hyp",
503 "hamair0",
504 "hamair1",
505 "hcr",
506 "hcr2",
507 "hdfar",
508 "hifar",
509 "hpfar",
510 "hsr",
511 "htcr",
512 "htpidr",
513 "httbr",
514 "spsr_hyp",
515 "vtcr",
516 "vttbr",
517 "dacr32_el2"
518 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100519 "properties": {
520 "elr_hyp": { "type": "integer" },
521 "hamair0": { "type": "integer" },
522 "hamair1": { "type": "integer" },
523 "hcr": { "type": "integer" },
524 "hcr2": { "type": "integer" },
525 "hdfar": { "type": "integer" },
526 "hifar": { "type": "integer" },
527 "hpfar": { "type": "integer" },
528 "hsr": { "type": "integer" },
529 "htcr": { "type": "integer" },
530 "htpidr": { "type": "integer" },
531 "httbr": { "type": "integer" },
532 "spsr_hyp": { "type": "integer" },
533 "vtcr": { "type": "integer" },
534 "vttbr": { "type": "integer" },
535 "dacr32_el2": { "type": "integer" }
536 }
537 },
538 {
539 "type": "object",
540 "required": ["sctlr_s", "spsr_mon"],
541 "properties": {
542 "sctlr_s": { "type": "integer" },
543 "spsr_mon": { "type": "integer" }
544 }
545 },
546 {
547 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800548 "required": [
549 "x0",
550 "x1",
551 "x2",
552 "x3",
553 "x4",
554 "x5",
555 "x6",
556 "x7",
557 "x8",
558 "x9",
559 "x10",
560 "x11",
561 "x12",
562 "x13",
563 "x14",
564 "x15",
565 "x16",
566 "x17",
567 "x18",
568 "x19",
569 "x20",
570 "x21",
571 "x22",
572 "x23",
573 "x24",
574 "x25",
575 "x26",
576 "x27",
577 "x28",
578 "x29",
579 "x30",
580 "sp"
581 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100582 "properties": {
583 "x0": { "type": "integer" },
584 "x1": { "type": "integer" },
585 "x2": { "type": "integer" },
586 "x3": { "type": "integer" },
587 "x4": { "type": "integer" },
588 "x5": { "type": "integer" },
589 "x6": { "type": "integer" },
590 "x7": { "type": "integer" },
591 "x8": { "type": "integer" },
592 "x9": { "type": "integer" },
593 "x10": { "type": "integer" },
594 "x11": { "type": "integer" },
595 "x12": { "type": "integer" },
596 "x13": { "type": "integer" },
597 "x14": { "type": "integer" },
598 "x15": { "type": "integer" },
599 "x16": { "type": "integer" },
600 "x17": { "type": "integer" },
601 "x18": { "type": "integer" },
602 "x19": { "type": "integer" },
603 "x20": { "type": "integer" },
604 "x21": { "type": "integer" },
605 "x22": { "type": "integer" },
606 "x23": { "type": "integer" },
607 "x24": { "type": "integer" },
608 "x25": { "type": "integer" },
609 "x26": { "type": "integer" },
610 "x27": { "type": "integer" },
611 "x28": { "type": "integer" },
612 "x29": { "type": "integer" },
613 "x30": { "type": "integer" },
614 "sp": { "type": "integer" }
615 }
616 },
617 {
618 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800619 "required": [
620 "elr_el1",
621 "esr_el1",
622 "far_el1",
623 "isr_el1",
624 "mair_el1",
625 "midr_el1",
626 "mpidr_el1",
627 "sctlr_el1",
628 "sp_el0",
629 "sp_el1",
630 "spsr_el1",
631 "tcr_el1",
632 "tpidr_el0",
633 "tpidr_el1",
634 "tpidrro_el0",
635 "ttbr0_el1",
636 "ttbr1_el1"
637 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100638 "properties": {
639 "elr_el1": { "type": "integer" },
640 "esr_el1": { "type": "integer" },
641 "far_el1": { "type": "integer" },
642 "isr_el1": { "type": "integer" },
643 "mair_el1": { "type": "integer" },
644 "midr_el1": { "type": "integer" },
645 "mpidr_el1": { "type": "integer" },
646 "sctlr_el1": { "type": "integer" },
647 "sp_el0": { "type": "integer" },
648 "sp_el1": { "type": "integer" },
649 "spsr_el1": { "type": "integer" },
650 "tcr_el1": { "type": "integer" },
651 "tpidr_el0": { "type": "integer" },
652 "tpidr_el1": { "type": "integer" },
653 "tpidrro_el0": { "type": "integer" },
654 "ttbr0_el1": { "type": "integer" },
655 "ttbr1_el1": { "type": "integer" }
656 }
657 },
658 {
659 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800660 "required": [
661 "elr_el2",
662 "esr_el2",
663 "far_el2",
664 "hacr_el2",
665 "hcr_el2",
666 "hpfar_el2",
667 "mair_el2",
668 "sctlr_el2",
669 "sp_el2",
670 "spsr_el2",
671 "tcr_el2",
672 "tpidr_el2",
673 "ttbr0_el2",
674 "vtcr_el2",
675 "vttbr_el2"
676 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100677 "properties": {
678 "elr_el2": { "type": "integer" },
679 "esr_el2": { "type": "integer" },
680 "far_el2": { "type": "integer" },
681 "hacr_el2": { "type": "integer" },
682 "hcr_el2": { "type": "integer" },
683 "hpfar_el2": { "type": "integer" },
684 "mair_el2": { "type": "integer" },
685 "sctlr_el2": { "type": "integer" },
686 "sp_el2": { "type": "integer" },
687 "spsr_el2": { "type": "integer" },
688 "tcr_el2": { "type": "integer" },
689 "tpidr_el2": { "type": "integer" },
690 "ttbr0_el2": { "type": "integer" },
691 "vtcr_el2": { "type": "integer" },
692 "vttbr_el2": { "type": "integer" }
693 }
694 },
695 {
696 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800697 "required": [
698 "elr_el3",
699 "esr_el3",
700 "far_el3",
701 "mair_el3",
702 "sctlr_el3",
703 "sp_el3",
704 "spsr_el3",
705 "tcr_el3",
706 "tpidr_el3",
707 "ttbr0_el3"
708 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100709 "properties": {
710 "elr_el3": { "type": "integer" },
711 "esr_el3": { "type": "integer" },
712 "far_el3": { "type": "integer" },
713 "mair_el3": { "type": "integer" },
714 "sctlr_el3": { "type": "integer" },
715 "sp_el3": { "type": "integer" },
716 "spsr_el3": { "type": "integer" },
717 "tcr_el3": { "type": "integer" },
718 "tpidr_el3": { "type": "integer" },
719 "ttbr0_el3": { "type": "integer" }
720 }
721 },
722 {
723 "type": "object",
724 "required": ["mrsEncoding", "value"],
725 "additionalProperties": false,
726 "properties": {
727 "mrsEncoding": {
728 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800729 "required": [
730 "op2",
731 "crm",
732 "crn",
733 "op1",
734 "o0"
735 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100736 "properties": {
737 "op2": { "type": "integer" },
738 "crm": { "type": "integer" },
739 "crn": { "type": "integer" },
740 "op1": { "type": "integer" },
741 "o0": { "type": "integer" }
742 }
743 },
744 "value": {
745 "type": "integer"
746 }
747 }
748 },
749 {
750 "type": "object",
751 "required": ["data"],
752 "properties": {
753 "data": {
754 "type": "string"
755 }
756 }
757 }
758 ]
759 }
760 }
761 }
762 },
763 "vendorSpecificInfo": {
764 "type": "object",
765 "required": ["data"],
766 "additionalProperties": false,
767 "properties": {
768 "data": {
769 "type": "string"
770 }
771 }
772 }
773 }
John Chung044afd02024-05-03 19:58:02 +0800774}