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