blob: c1e7500bdbcc0d9fe3d1da36ec910fa129dbc907 [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 {
Aushim Nagarkatti5b793002024-09-26 17:07:30 -0700169 "required": ["cacheError"],
170 "cacheError": {
171 "type": "object",
172 "required": [
173 "validationBits",
174 "transactionType",
175 "operation",
176 "level",
177 "processorContextCorrupt",
178 "corrected",
179 "precisePC",
180 "restartablePC"
181 ],
182 "additionalProperties": false,
183 "properties": {
184 "validationBits": {
185 "type": "object",
186 "required": [
187 "transactionTypeValid",
188 "operationValid",
189 "levelValid",
190 "processorContextCorruptValid",
191 "correctedValid",
192 "precisePCValid",
193 "restartablePCValid"
194 ],
195 "properties": {
196 "transactionTypeValid": {
197 "type": "boolean"
198 },
199 "operationValid": {
200 "type": "boolean"
201 },
202 "levelValid": {
203 "type": "boolean"
204 },
205 "processorContextCorruptValid": {
206 "type": "boolean"
207 },
208 "correctedValid": {
209 "type": "boolean"
210 },
211 "precisePCValid": {
212 "type": "boolean"
213 },
214 "restartablePCValid": {
215 "type": "boolean"
216 }
Lawrence Tang079d5812022-07-12 14:15:32 +0100217 }
Aushim Nagarkatti5b793002024-09-26 17:07:30 -0700218 },
219 "transactionType": {
220 "type": "object",
221 "$ref": "./common/cper-json-nvp.json"
222 },
223 "operation": {
224 "type": "object",
225 "$ref": "./common/cper-json-nvp.json"
226 },
227 "level": {
228 "type": "integer"
229 },
230 "processorContextCorrupt": {
231 "type": "boolean"
232 },
233 "corrected": {
234 "type": "boolean"
235 },
236 "precisePC": {
237 "type": "boolean"
238 },
239 "restartablePC": {
240 "type": "boolean"
Lawrence Tang079d5812022-07-12 14:15:32 +0100241 }
Lawrence Tang079d5812022-07-12 14:15:32 +0100242 }
243 }
244 },
245 {
Aushim Nagarkatti5b793002024-09-26 17:07:30 -0700246 "required": ["tlbError"],
247 "tlbError": {
248 "type": "object",
249 "required": [
250 "validationBits",
251 "transactionType",
252 "operation",
253 "level",
254 "processorContextCorrupt",
255 "corrected",
256 "precisePC",
257 "restartablePC",
258 "timedOut",
259 "participationType",
260 "addressSpace",
261 "memoryAttributes",
262 "accessMode"
263 ],
264 "additionalProperties": false,
265 "properties": {
266 "validationBits": {
267 "type": "object",
268 "required": [
269 "transactionTypeValid",
270 "operationValid",
271 "levelValid",
272 "processorContextCorruptValid",
273 "correctedValid",
274 "precisePCValid",
275 "restartablePCValid",
276 "participationTypeValid",
277 "timedOutValid",
278 "addressSpaceValid",
279 "memoryAttributesValid",
280 "accessModeValid"
281 ],
282 "properties": {
283 "transactionTypeValid": {
284 "type": "boolean"
285 },
286 "operationValid": {
287 "type": "boolean"
288 },
289 "levelValid": {
290 "type": "boolean"
291 },
292 "processorContextCorruptValid": {
293 "type": "boolean"
294 },
295 "correctedValid": {
296 "type": "boolean"
297 },
298 "precisePCValid": {
299 "type": "boolean"
300 },
301 "restartablePCValid": {
302 "type": "boolean"
303 },
304 "participationTypeValid": {
305 "type": "boolean"
306 },
307 "timedOutValid": {
308 "type": "boolean"
309 },
310 "addressSpaceValid": {
311 "type": "boolean"
312 },
313 "memoryAttributesValid": {
314 "type": "boolean"
315 },
316 "accessModeValid": {
317 "type": "boolean"
318 }
Lawrence Tang079d5812022-07-12 14:15:32 +0100319 }
Aushim Nagarkatti5b793002024-09-26 17:07:30 -0700320 },
321 "transactionType": {
322 "type": "object",
323 "$ref": "./common/cper-json-nvp.json"
324 },
325 "operation": {
326 "type": "object",
327 "$ref": "./common/cper-json-nvp.json"
328 },
329 "level": {
330 "type": "integer"
331 },
332 "processorContextCorrupt": {
333 "type": "boolean"
334 },
335 "corrected": {
336 "type": "boolean"
337 },
338 "precisePC": {
339 "type": "boolean"
340 },
341 "restartablePC": {
342 "type": "boolean"
343 },
344 "timedOut": {
345 "type": "boolean"
346 },
347 "participationType": {
348 "type": "object",
349 "$ref": "./common/cper-json-nvp.json"
350 },
351 "addressSpace": {
352 "type": "object",
353 "$ref": "./common/cper-json-nvp.json"
354 },
355 "accessMode": {
356 "type": "object",
357 "$ref": "./common/cper-json-nvp.json"
358 },
359 "memoryAttributes": {
360 "type": "integer"
Lawrence Tang079d5812022-07-12 14:15:32 +0100361 }
Lawrence Tang71570a22022-07-14 11:45:28 +0100362 }
363 }
Lawrence Tang079d5812022-07-12 14:15:32 +0100364 }
365 ]
366 },
367 "virtualFaultAddress": {
368 "type": "integer"
369 },
370 "physicalFaultAddress": {
371 "type": "integer"
372 }
373 }
374 }
375 },
376 "contextInfo": {
377 "type": "array",
378 "items": {
379 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800380 "required": [
381 "version",
382 "registerContextType",
383 "registerArraySize",
384 "registerArray"
385 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100386 "additionalProperties": false,
387 "properties": {
Lawrence Tang71570a22022-07-14 11:45:28 +0100388 "version": {
389 "type": "integer",
390 "minimum": 0
391 },
Lawrence Tang079d5812022-07-12 14:15:32 +0100392 "registerContextType": {
393 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100394 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100395 },
396 "registerArraySize": {
397 "type": "integer"
398 },
399 "registerArray": {
400 "type": "object",
401 "oneOf": [
402 {
403 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800404 "required": [
405 "r1",
406 "r2",
407 "r3",
408 "r4",
409 "r5",
410 "r6",
411 "r7",
412 "r8",
413 "r9",
414 "r10",
415 "r11",
416 "r12",
417 "r13_sp",
418 "r14_lr",
419 "r15_pc"
420 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100421 "properties": {
422 "r0": { "type": "integer" },
423 "r1": { "type": "integer" },
424 "r2": { "type": "integer" },
425 "r3": { "type": "integer" },
426 "r4": { "type": "integer" },
427 "r5": { "type": "integer" },
428 "r6": { "type": "integer" },
429 "r7": { "type": "integer" },
430 "r8": { "type": "integer" },
431 "r9": { "type": "integer" },
432 "r10": { "type": "integer" },
433 "r11": { "type": "integer" },
434 "r12": { "type": "integer" },
435 "r13_sp": { "type": "integer" },
436 "r14_lr": { "type": "integer" },
437 "r15_pc": { "type": "integer" }
438 }
439 },
440 {
441 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800442 "required": [
443 "dfar",
444 "dfsr",
445 "ifar",
446 "isr",
447 "mair0",
448 "mair1",
449 "midr",
450 "mpidr",
451 "nmrr",
452 "prrr",
453 "sctlr_ns",
454 "spsr",
455 "spsr_abt",
456 "spsr_fiq",
457 "spsr_irq",
458 "spsr_svc",
459 "spsr_und",
460 "tpidrprw",
461 "tpidruro",
462 "tpidrurw",
463 "ttbcr",
464 "ttbr0",
465 "ttbr1",
466 "dacr"
467 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100468 "properties": {
469 "dfar": { "type": "integer" },
470 "dfsr": { "type": "integer" },
471 "ifar": { "type": "integer" },
472 "isr": { "type": "integer" },
473 "mair0": { "type": "integer" },
474 "mair1": { "type": "integer" },
475 "midr": { "type": "integer" },
476 "mpidr": { "type": "integer" },
477 "nmrr": { "type": "integer" },
478 "prrr": { "type": "integer" },
479 "sctlr_ns": { "type": "integer" },
480 "spsr": { "type": "integer" },
481 "spsr_abt": { "type": "integer" },
482 "spsr_fiq": { "type": "integer" },
483 "spsr_irq": { "type": "integer" },
484 "spsr_svc": { "type": "integer" },
485 "spsr_und": { "type": "integer" },
486 "tpidrprw": { "type": "integer" },
487 "tpidruro": { "type": "integer" },
488 "tpidrurw": { "type": "integer" },
489 "ttbcr": { "type": "integer" },
490 "ttbr0": { "type": "integer" },
491 "ttbr1": { "type": "integer" },
492 "dacr": { "type": "integer" }
493 }
494 },
495 {
496 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800497 "required": [
498 "elr_hyp",
499 "hamair0",
500 "hamair1",
501 "hcr",
502 "hcr2",
503 "hdfar",
504 "hifar",
505 "hpfar",
506 "hsr",
507 "htcr",
508 "htpidr",
509 "httbr",
510 "spsr_hyp",
511 "vtcr",
512 "vttbr",
513 "dacr32_el2"
514 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100515 "properties": {
516 "elr_hyp": { "type": "integer" },
517 "hamair0": { "type": "integer" },
518 "hamair1": { "type": "integer" },
519 "hcr": { "type": "integer" },
520 "hcr2": { "type": "integer" },
521 "hdfar": { "type": "integer" },
522 "hifar": { "type": "integer" },
523 "hpfar": { "type": "integer" },
524 "hsr": { "type": "integer" },
525 "htcr": { "type": "integer" },
526 "htpidr": { "type": "integer" },
527 "httbr": { "type": "integer" },
528 "spsr_hyp": { "type": "integer" },
529 "vtcr": { "type": "integer" },
530 "vttbr": { "type": "integer" },
531 "dacr32_el2": { "type": "integer" }
532 }
533 },
534 {
535 "type": "object",
536 "required": ["sctlr_s", "spsr_mon"],
537 "properties": {
538 "sctlr_s": { "type": "integer" },
539 "spsr_mon": { "type": "integer" }
540 }
541 },
542 {
543 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800544 "required": [
545 "x0",
546 "x1",
547 "x2",
548 "x3",
549 "x4",
550 "x5",
551 "x6",
552 "x7",
553 "x8",
554 "x9",
555 "x10",
556 "x11",
557 "x12",
558 "x13",
559 "x14",
560 "x15",
561 "x16",
562 "x17",
563 "x18",
564 "x19",
565 "x20",
566 "x21",
567 "x22",
568 "x23",
569 "x24",
570 "x25",
571 "x26",
572 "x27",
573 "x28",
574 "x29",
575 "x30",
576 "sp"
577 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100578 "properties": {
579 "x0": { "type": "integer" },
580 "x1": { "type": "integer" },
581 "x2": { "type": "integer" },
582 "x3": { "type": "integer" },
583 "x4": { "type": "integer" },
584 "x5": { "type": "integer" },
585 "x6": { "type": "integer" },
586 "x7": { "type": "integer" },
587 "x8": { "type": "integer" },
588 "x9": { "type": "integer" },
589 "x10": { "type": "integer" },
590 "x11": { "type": "integer" },
591 "x12": { "type": "integer" },
592 "x13": { "type": "integer" },
593 "x14": { "type": "integer" },
594 "x15": { "type": "integer" },
595 "x16": { "type": "integer" },
596 "x17": { "type": "integer" },
597 "x18": { "type": "integer" },
598 "x19": { "type": "integer" },
599 "x20": { "type": "integer" },
600 "x21": { "type": "integer" },
601 "x22": { "type": "integer" },
602 "x23": { "type": "integer" },
603 "x24": { "type": "integer" },
604 "x25": { "type": "integer" },
605 "x26": { "type": "integer" },
606 "x27": { "type": "integer" },
607 "x28": { "type": "integer" },
608 "x29": { "type": "integer" },
609 "x30": { "type": "integer" },
610 "sp": { "type": "integer" }
611 }
612 },
613 {
614 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800615 "required": [
616 "elr_el1",
617 "esr_el1",
618 "far_el1",
619 "isr_el1",
620 "mair_el1",
621 "midr_el1",
622 "mpidr_el1",
623 "sctlr_el1",
624 "sp_el0",
625 "sp_el1",
626 "spsr_el1",
627 "tcr_el1",
628 "tpidr_el0",
629 "tpidr_el1",
630 "tpidrro_el0",
631 "ttbr0_el1",
632 "ttbr1_el1"
633 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100634 "properties": {
635 "elr_el1": { "type": "integer" },
636 "esr_el1": { "type": "integer" },
637 "far_el1": { "type": "integer" },
638 "isr_el1": { "type": "integer" },
639 "mair_el1": { "type": "integer" },
640 "midr_el1": { "type": "integer" },
641 "mpidr_el1": { "type": "integer" },
642 "sctlr_el1": { "type": "integer" },
643 "sp_el0": { "type": "integer" },
644 "sp_el1": { "type": "integer" },
645 "spsr_el1": { "type": "integer" },
646 "tcr_el1": { "type": "integer" },
647 "tpidr_el0": { "type": "integer" },
648 "tpidr_el1": { "type": "integer" },
649 "tpidrro_el0": { "type": "integer" },
650 "ttbr0_el1": { "type": "integer" },
651 "ttbr1_el1": { "type": "integer" }
652 }
653 },
654 {
655 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800656 "required": [
657 "elr_el2",
658 "esr_el2",
659 "far_el2",
660 "hacr_el2",
661 "hcr_el2",
662 "hpfar_el2",
663 "mair_el2",
664 "sctlr_el2",
665 "sp_el2",
666 "spsr_el2",
667 "tcr_el2",
668 "tpidr_el2",
669 "ttbr0_el2",
670 "vtcr_el2",
671 "vttbr_el2"
672 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100673 "properties": {
674 "elr_el2": { "type": "integer" },
675 "esr_el2": { "type": "integer" },
676 "far_el2": { "type": "integer" },
677 "hacr_el2": { "type": "integer" },
678 "hcr_el2": { "type": "integer" },
679 "hpfar_el2": { "type": "integer" },
680 "mair_el2": { "type": "integer" },
681 "sctlr_el2": { "type": "integer" },
682 "sp_el2": { "type": "integer" },
683 "spsr_el2": { "type": "integer" },
684 "tcr_el2": { "type": "integer" },
685 "tpidr_el2": { "type": "integer" },
686 "ttbr0_el2": { "type": "integer" },
687 "vtcr_el2": { "type": "integer" },
688 "vttbr_el2": { "type": "integer" }
689 }
690 },
691 {
692 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800693 "required": [
694 "elr_el3",
695 "esr_el3",
696 "far_el3",
697 "mair_el3",
698 "sctlr_el3",
699 "sp_el3",
700 "spsr_el3",
701 "tcr_el3",
702 "tpidr_el3",
703 "ttbr0_el3"
704 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100705 "properties": {
706 "elr_el3": { "type": "integer" },
707 "esr_el3": { "type": "integer" },
708 "far_el3": { "type": "integer" },
709 "mair_el3": { "type": "integer" },
710 "sctlr_el3": { "type": "integer" },
711 "sp_el3": { "type": "integer" },
712 "spsr_el3": { "type": "integer" },
713 "tcr_el3": { "type": "integer" },
714 "tpidr_el3": { "type": "integer" },
715 "ttbr0_el3": { "type": "integer" }
716 }
717 },
718 {
719 "type": "object",
720 "required": ["mrsEncoding", "value"],
721 "additionalProperties": false,
722 "properties": {
723 "mrsEncoding": {
724 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800725 "required": [
726 "op2",
727 "crm",
728 "crn",
729 "op1",
730 "o0"
731 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100732 "properties": {
733 "op2": { "type": "integer" },
734 "crm": { "type": "integer" },
735 "crn": { "type": "integer" },
736 "op1": { "type": "integer" },
737 "o0": { "type": "integer" }
738 }
739 },
740 "value": {
741 "type": "integer"
742 }
743 }
744 },
745 {
746 "type": "object",
747 "required": ["data"],
748 "properties": {
749 "data": {
750 "type": "string"
751 }
752 }
753 }
754 ]
755 }
756 }
757 }
758 },
759 "vendorSpecificInfo": {
760 "type": "object",
761 "required": ["data"],
762 "additionalProperties": false,
763 "properties": {
764 "data": {
765 "type": "string"
766 }
767 }
768 }
769 }
John Chung044afd02024-05-03 19:58:02 +0800770}