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                                "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                                                }
217                                            }
218                                        },
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"
241                                        }
242                                    }
243                                }
244                            },
245                            {
246                                "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                                                }
319                                            }
320                                        },
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"
361                                        }
362                                    }
363                                }
364                            }
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",
380                "required": [
381                    "version",
382                    "registerContextType",
383                    "registerArraySize",
384                    "registerArray"
385                ],
386                "additionalProperties": false,
387                "properties": {
388                    "version": {
389                        "type": "integer",
390                        "minimum": 0
391                    },
392                    "registerContextType": {
393                        "type": "object",
394                        "$ref": "./common/cper-json-nvp.json"
395                    },
396                    "registerArraySize": {
397                        "type": "integer"
398                    },
399                    "registerArray": {
400                        "type": "object",
401                        "oneOf": [
402                            {
403                                "type": "object",
404                                "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                                ],
421                                "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",
442                                "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                                ],
468                                "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",
497                                "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                                ],
515                                "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",
544                                "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                                ],
578                                "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",
615                                "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                                ],
634                                "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",
656                                "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                                ],
673                                "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",
693                                "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                                ],
705                                "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",
725                                        "required": [
726                                            "op2",
727                                            "crm",
728                                            "crn",
729                                            "op1",
730                                            "o0"
731                                        ],
732                                        "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    }
770}
771