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