1{
2    "$id": "cper-json-arm-processor-section",
3    "$schema": "https://json-schema.org/draft/2020-12/schema",
4    "type": "object",
5    "required": [
6        "validationBits",
7        "errorInfoNum",
8        "contextInfoNum",
9        "sectionLength",
10        "errorAffinity",
11        "mpidrEl1",
12        "midrEl1",
13        "running",
14        "errorInfo",
15        "contextInfo"
16    ],
17    "additionalProperties": false,
18    "properties": {
19        "validationBits": {
20            "type": "object",
21            "required": [
22                "mpidrValid",
23                "errorAffinityLevelValid",
24                "runningStateValid",
25                "vendorSpecificInfoValid"
26            ],
27            "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",
79                "required": [
80                    "version",
81                    "length",
82                    "validationBits",
83                    "errorType",
84                    "multipleError",
85                    "flags",
86                    "errorInformation",
87                    "virtualFaultAddress",
88                    "physicalFaultAddress"
89                ],
90                "additionalProperties": false,
91                "properties": {
92                    "version": {
93                        "type": "integer"
94                    },
95                    "length": {
96                        "type": "integer"
97                    },
98                    "validationBits": {
99                        "type": "object",
100                        "required": [
101                            "multipleErrorValid",
102                            "flagsValid",
103                            "errorInformationValid",
104                            "virtualFaultAddressValid",
105                            "physicalFaultAddressValid"
106                        ],
107                        "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",
127                        "$ref": "./common/cper-json-nvp.json"
128                    },
129                    "multipleError": {
130                        "type": "object",
131                        "required": ["type", "value"],
132                        "additionalProperties": false,
133                        "properties": {
134                            "type": {
135                                "type": "string"
136                            },
137                            "value": {
138                                "type": "integer"
139                            }
140                        }
141                    },
142                    "flags": {
143                        "type": "object",
144                        "required": [
145                            "firstErrorCaptured",
146                            "lastErrorCaptured",
147                            "propagated",
148                            "overflow"
149                        ],
150                        "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",
170                                "required": [
171                                    "validationBits",
172                                    "transactionType",
173                                    "operation",
174                                    "level",
175                                    "processorContextCorrupt",
176                                    "corrected",
177                                    "precisePC",
178                                    "restartablePC"
179                                ],
180                                "additionalProperties": false,
181                                "properties": {
182                                    "validationBits": {
183                                        "type": "object",
184                                        "required": [
185                                            "transactionTypeValid",
186                                            "operationValid",
187                                            "levelValid",
188                                            "processorContextCorruptValid",
189                                            "correctedValid",
190                                            "precisePCValid",
191                                            "restartablePCValid"
192                                        ],
193                                        "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",
219                                        "$ref": "./common/cper-json-nvp.json"
220                                    },
221                                    "operation": {
222                                        "type": "object",
223                                        "$ref": "./common/cper-json-nvp.json"
224                                    },
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",
244                                "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                                ],
259                                "additionalProperties": false,
260                                "properties": {
261                                    "validationBits": {
262                                        "type": "object",
263                                        "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                                        ],
277                                        "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",
318                                        "$ref": "./common/cper-json-nvp.json"
319                                    },
320                                    "operation": {
321                                        "type": "object",
322                                        "$ref": "./common/cper-json-nvp.json"
323                                    },
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",
344                                        "$ref": "./common/cper-json-nvp.json"
345                                    },
346                                    "addressSpace": {
347                                        "type": "object",
348                                        "$ref": "./common/cper-json-nvp.json"
349                                    },
350                                    "accessMode": {
351                                        "type": "object",
352                                        "$ref": "./common/cper-json-nvp.json"
353                                    },
354                                    "memoryAttributes": {
355                                        "type": "integer"
356                                    }
357                                }
358                            },
359                            {
360                                "type": "object",
361                                "required": ["data"],
362                                "additionalProperties": false,
363                                "properties": {
364                                    "data": {
365                                        "type": "integer"
366                                    }
367                                }
368                            }
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",
384                "required": [
385                    "version",
386                    "registerContextType",
387                    "registerArraySize",
388                    "registerArray"
389                ],
390                "additionalProperties": false,
391                "properties": {
392                    "version": {
393                        "type": "integer",
394                        "minimum": 0
395                    },
396                    "registerContextType": {
397                        "type": "object",
398                        "$ref": "./common/cper-json-nvp.json"
399                    },
400                    "registerArraySize": {
401                        "type": "integer"
402                    },
403                    "registerArray": {
404                        "type": "object",
405                        "oneOf": [
406                            {
407                                "type": "object",
408                                "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                                ],
425                                "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",
446                                "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                                ],
472                                "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",
501                                "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                                ],
519                                "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",
548                                "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                                ],
582                                "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",
619                                "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                                ],
638                                "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",
660                                "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                                ],
677                                "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",
697                                "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                                ],
709                                "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",
729                                        "required": [
730                                            "op2",
731                                            "crm",
732                                            "crn",
733                                            "op1",
734                                            "o0"
735                                        ],
736                                        "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    }
774}
775