1{
2    "$id": "cper-json-arm-processor-section",
3    "$schema": "https://json-schema.org/draft/2020-12/schema",
4    "type": "object",
5    "required": ["validationBits", "errorInfoNum", "contextInfoNum", "sectionLength", "errorAffinity", "mpidrEl1", "midrEl1", "running", "errorInfo", "contextInfo"],
6    "additionalProperties": false,
7    "properties": {
8        "validationBits": {
9            "type": "object",
10            "required": ["mpidrValid", "errorAffinityLevelValid", "runningStateValid", "vendorSpecificInfoValid"],
11            "properties": {
12                "mpidrValid": {
13                    "type": "boolean"
14                },
15                "errorAffinityLevelValid": {
16                    "type": "boolean"
17                },
18                "runningStateValid": {
19                    "type": "boolean"
20                },
21                "vendorSpecificInfoValid": {
22                    "type": "boolean"
23                }
24            }
25        },
26        "errorInfoNum": {
27            "type": "integer"
28        },
29        "contextInfoNum": {
30            "type": "integer"
31        },
32        "sectionLength": {
33            "type": "integer"
34        },
35        "errorAffinity": {
36            "type": "object",
37            "required": ["value", "type"],
38            "properties": {
39                "value": {
40                    "type": "integer"
41                },
42                "type": {
43                    "type": "string"
44                }
45            }
46        },
47        "mpidrEl1": {
48            "type": "integer"
49        },
50        "midrEl1": {
51            "type": "integer"
52        },
53        "running": {
54            "type": "boolean"
55        },
56        "psciState": {
57            "type": "integer"
58        },
59        "errorInfo": {
60            "type": "array",
61            "items": {
62                "type": "object",
63                "required": ["version", "length", "validationBits", "errorType", "multipleError", "flags", "errorInformation", "virtualFaultAddress", "physicalFaultAddress"],
64                "additionalProperties": false,
65                "properties": {
66                    "version": {
67                        "type": "integer"
68                    },
69                    "length": {
70                        "type": "integer"
71                    },
72                    "validationBits": {
73                        "type": "object",
74                        "required": ["multipleErrorValid", "flagsValid", "errorInformationValid", "virtualFaultAddressValid", "physicalFaultAddressValid"],
75                        "properties": {
76                            "multipleErrorValid": {
77                                "type": "boolean"
78                            },
79                            "flagsValid": {
80                                "type": "boolean"
81                            },
82                            "errorInformationValid": {
83                                "type": "boolean"
84                            },
85                            "virtualFaultAddressValid": {
86                                "type": "boolean"
87                            },
88                            "physicalFaultAddressValid": {
89                                "type": "boolean"
90                            }
91                        }
92                    },
93                    "errorType": {
94                        "type": "object",
95                        "$ref": "./common/cper-json-nvp.json"
96                    },
97                    "multipleError": {
98                        "type": "object",
99                        "required": ["type", "value"],
100                        "additionalProperties": false,
101                        "properties": {
102                            "type": {
103                                "type": "string"
104                            },
105                            "value": {
106                                "type": "integer"
107                            }
108                        }
109                    },
110                    "flags": {
111                        "type": "object",
112                        "required": ["firstErrorCaptured", "lastErrorCaptured", "propagated", "overflow"],
113                        "properties": {
114                            "firstErrorCaptured": {
115                                "type": "boolean"
116                            },
117                            "lastErrorCaptured": {
118                                "type": "boolean"
119                            },
120                            "propagated": {
121                                "type": "boolean"
122                            },
123                            "overflow": {
124                                "type": "boolean"
125                            }
126                        }
127                    },
128                    "errorInformation": {
129                        "type": "object",
130                        "oneOf": [
131                            {
132                                "type": "object",
133                                "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "corrected", "precisePC", "restartablePC"],
134                                "additionalProperties": false,
135                                "properties": {
136                                    "validationBits": {
137                                        "type": "object",
138                                        "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "correctedValid", "precisePCValid", "restartablePCValid"],
139                                        "properties": {
140                                            "transactionTypeValid": {
141                                                "type": "boolean"
142                                            },
143                                            "operationValid": {
144                                                "type": "boolean"
145                                            },
146                                            "levelValid": {
147                                                "type": "boolean"
148                                            },
149                                            "processorContextCorruptValid": {
150                                                "type": "boolean"
151                                            },
152                                            "correctedValid": {
153                                                "type": "boolean"
154                                            },
155                                            "precisePCValid": {
156                                                "type": "boolean"
157                                            },
158                                            "restartablePCValid": {
159                                                "type": "boolean"
160                                            }
161                                        }
162                                    },
163                                    "transactionType": {
164                                        "type": "object",
165                                        "$ref": "./common/cper-json-nvp.json"
166                                    },
167                                    "operation": {
168                                        "type": "object",
169                                        "$ref": "./common/cper-json-nvp.json"
170                                    },
171                                    "level": {
172                                        "type": "integer"
173                                    },
174                                    "processorContextCorrupt": {
175                                        "type": "boolean"
176                                    },
177                                    "corrected": {
178                                        "type": "boolean"
179                                    },
180                                    "precisePC": {
181                                        "type": "boolean"
182                                    },
183                                    "restartablePC": {
184                                        "type": "boolean"
185                                    }
186                                }
187                            },
188                            {
189                                "type": "object",
190                                "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "corrected", "precisePC", "restartablePC", "timedOut", "participationType", "addressSpace", "memoryAttributes", "accessMode"],
191                                "additionalProperties": false,
192                                "properties": {
193                                    "validationBits": {
194                                        "type": "object",
195                                        "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "correctedValid", "precisePCValid", "restartablePCValid", "participationTypeValid", "timedOutValid", "addressSpaceValid", "memoryAttributesValid", "accessModeValid"],
196                                        "properties": {
197                                            "transactionTypeValid": {
198                                                "type": "boolean"
199                                            },
200                                            "operationValid": {
201                                                "type": "boolean"
202                                            },
203                                            "levelValid": {
204                                                "type": "boolean"
205                                            },
206                                            "processorContextCorruptValid": {
207                                                "type": "boolean"
208                                            },
209                                            "correctedValid": {
210                                                "type": "boolean"
211                                            },
212                                            "precisePCValid": {
213                                                "type": "boolean"
214                                            },
215                                            "restartablePCValid": {
216                                                "type": "boolean"
217                                            },
218                                            "participationTypeValid": {
219                                                "type": "boolean"
220                                            },
221                                            "timedOutValid": {
222                                                "type": "boolean"
223                                            },
224                                            "addressSpaceValid": {
225                                                "type": "boolean"
226                                            },
227                                            "memoryAttributesValid": {
228                                                "type": "boolean"
229                                            },
230                                            "accessModeValid": {
231                                                "type": "boolean"
232                                            }
233                                        }
234                                    },
235                                    "transactionType": {
236                                        "type": "object",
237                                        "$ref": "./common/cper-json-nvp.json"
238                                    },
239                                    "operation": {
240                                        "type": "object",
241                                        "$ref": "./common/cper-json-nvp.json"
242                                    },
243                                    "level": {
244                                        "type": "integer"
245                                    },
246                                    "processorContextCorrupt": {
247                                        "type": "boolean"
248                                    },
249                                    "corrected": {
250                                        "type": "boolean"
251                                    },
252                                    "precisePC": {
253                                        "type": "boolean"
254                                    },
255                                    "restartablePC": {
256                                        "type": "boolean"
257                                    },
258                                    "timedOut": {
259                                        "type": "boolean"
260                                    },
261                                    "participationType": {
262                                        "type": "object",
263                                        "$ref": "./common/cper-json-nvp.json"
264                                    },
265                                    "addressSpace": {
266                                        "type": "object",
267                                        "$ref": "./common/cper-json-nvp.json"
268                                    },
269                                    "accessMode": {
270                                        "type": "object",
271                                        "$ref": "./common/cper-json-nvp.json"
272                                    },
273                                    "memoryAttributes": {
274                                        "type": "integer"
275                                    }
276                                }
277                            },
278                            {
279                                "type": "object",
280                                "required": ["data"],
281                                "additionalProperties": false,
282                                "properties": {
283                                    "data": {
284                                        "type": "integer"
285                                    }
286                                }
287                            }
288                        ]
289                    },
290                    "virtualFaultAddress": {
291                        "type": "integer"
292                    },
293                    "physicalFaultAddress": {
294                        "type": "integer"
295                    }
296                }
297            }
298        },
299        "contextInfo": {
300            "type": "array",
301            "items": {
302                "type": "object",
303                "required": ["version", "registerContextType", "registerArraySize", "registerArray"],
304                "additionalProperties": false,
305                "properties": {
306                    "version": {
307                        "type": "integer",
308                        "minimum": 0
309                    },
310                    "registerContextType": {
311                        "type": "object",
312                        "$ref": "./common/cper-json-nvp.json"
313                    },
314                    "registerArraySize": {
315                        "type": "integer"
316                    },
317                    "registerArray": {
318                        "type": "object",
319                        "oneOf": [
320                            {
321                                "type": "object",
322                                "required": ["r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13_sp", "r14_lr", "r15_pc"],
323                                "properties": {
324                                    "r0": { "type": "integer" },
325                                    "r1": { "type": "integer" },
326                                    "r2": { "type": "integer" },
327                                    "r3": { "type": "integer" },
328                                    "r4": { "type": "integer" },
329                                    "r5": { "type": "integer" },
330                                    "r6": { "type": "integer" },
331                                    "r7": { "type": "integer" },
332                                    "r8": { "type": "integer" },
333                                    "r9": { "type": "integer" },
334                                    "r10": { "type": "integer" },
335                                    "r11": { "type": "integer" },
336                                    "r12": { "type": "integer" },
337                                    "r13_sp": { "type": "integer" },
338                                    "r14_lr": { "type": "integer" },
339                                    "r15_pc": { "type": "integer" }
340                                }
341                            },
342                            {
343                                "type": "object",
344                                "required": ["dfar", "dfsr", "ifar", "isr", "mair0", "mair1", "midr", "mpidr", "nmrr", "prrr", "sctlr_ns", "spsr", "spsr_abt", "spsr_fiq", "spsr_irq", "spsr_svc", "spsr_und", "tpidrprw", "tpidruro", "tpidrurw", "ttbcr", "ttbr0", "ttbr1", "dacr"],
345                                "properties": {
346                                    "dfar": { "type": "integer" },
347                                    "dfsr": { "type": "integer" },
348                                    "ifar": { "type": "integer" },
349                                    "isr": { "type": "integer" },
350                                    "mair0": { "type": "integer" },
351                                    "mair1": { "type": "integer" },
352                                    "midr": { "type": "integer" },
353                                    "mpidr": { "type": "integer" },
354                                    "nmrr": { "type": "integer" },
355                                    "prrr": { "type": "integer" },
356                                    "sctlr_ns": { "type": "integer" },
357                                    "spsr": { "type": "integer" },
358                                    "spsr_abt": { "type": "integer" },
359                                    "spsr_fiq": { "type": "integer" },
360                                    "spsr_irq": { "type": "integer" },
361                                    "spsr_svc": { "type": "integer" },
362                                    "spsr_und": { "type": "integer" },
363                                    "tpidrprw": { "type": "integer" },
364                                    "tpidruro": { "type": "integer" },
365                                    "tpidrurw": { "type": "integer" },
366                                    "ttbcr": { "type": "integer" },
367                                    "ttbr0": { "type": "integer" },
368                                    "ttbr1": { "type": "integer" },
369                                    "dacr": { "type": "integer" }
370                                }
371                            },
372                            {
373                                "type": "object",
374                                "required": ["elr_hyp", "hamair0", "hamair1", "hcr", "hcr2", "hdfar", "hifar", "hpfar", "hsr", "htcr", "htpidr", "httbr", "spsr_hyp", "vtcr", "vttbr", "dacr32_el2"],
375                                "properties": {
376                                    "elr_hyp": { "type": "integer" },
377                                    "hamair0": { "type": "integer" },
378                                    "hamair1": { "type": "integer" },
379                                    "hcr": { "type": "integer" },
380                                    "hcr2": { "type": "integer" },
381                                    "hdfar": { "type": "integer" },
382                                    "hifar": { "type": "integer" },
383                                    "hpfar": { "type": "integer" },
384                                    "hsr": { "type": "integer" },
385                                    "htcr": { "type": "integer" },
386                                    "htpidr": { "type": "integer" },
387                                    "httbr": { "type": "integer" },
388                                    "spsr_hyp": { "type": "integer" },
389                                    "vtcr": { "type": "integer" },
390                                    "vttbr": { "type": "integer" },
391                                    "dacr32_el2": { "type": "integer" }
392                                }
393                            },
394                            {
395                                "type": "object",
396                                "required": ["sctlr_s", "spsr_mon"],
397                                "properties": {
398                                    "sctlr_s": { "type": "integer" },
399                                    "spsr_mon": { "type": "integer" }
400                                }
401                            },
402                            {
403                                "type": "object",
404                                "required": ["x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "x28", "x29", "x30", "sp"],
405                                "properties": {
406                                    "x0": { "type": "integer" },
407                                    "x1": { "type": "integer" },
408                                    "x2": { "type": "integer" },
409                                    "x3": { "type": "integer" },
410                                    "x4": { "type": "integer" },
411                                    "x5": { "type": "integer" },
412                                    "x6": { "type": "integer" },
413                                    "x7": { "type": "integer" },
414                                    "x8": { "type": "integer" },
415                                    "x9": { "type": "integer" },
416                                    "x10": { "type": "integer" },
417                                    "x11": { "type": "integer" },
418                                    "x12": { "type": "integer" },
419                                    "x13": { "type": "integer" },
420                                    "x14": { "type": "integer" },
421                                    "x15": { "type": "integer" },
422                                    "x16": { "type": "integer" },
423                                    "x17": { "type": "integer" },
424                                    "x18": { "type": "integer" },
425                                    "x19": { "type": "integer" },
426                                    "x20": { "type": "integer" },
427                                    "x21": { "type": "integer" },
428                                    "x22": { "type": "integer" },
429                                    "x23": { "type": "integer" },
430                                    "x24": { "type": "integer" },
431                                    "x25": { "type": "integer" },
432                                    "x26": { "type": "integer" },
433                                    "x27": { "type": "integer" },
434                                    "x28": { "type": "integer" },
435                                    "x29": { "type": "integer" },
436                                    "x30": { "type": "integer" },
437                                    "sp": { "type": "integer" }
438                                }
439                            },
440                            {
441                                "type": "object",
442                                "required": ["elr_el1", "esr_el1", "far_el1", "isr_el1", "mair_el1", "midr_el1", "mpidr_el1", "sctlr_el1", "sp_el0", "sp_el1", "spsr_el1", "tcr_el1", "tpidr_el0", "tpidr_el1", "tpidrro_el0", "ttbr0_el1", "ttbr1_el1"],
443                                "properties": {
444                                    "elr_el1": { "type": "integer" },
445                                    "esr_el1": { "type": "integer" },
446                                    "far_el1": { "type": "integer" },
447                                    "isr_el1": { "type": "integer" },
448                                    "mair_el1": { "type": "integer" },
449                                    "midr_el1": { "type": "integer" },
450                                    "mpidr_el1": { "type": "integer" },
451                                    "sctlr_el1": { "type": "integer" },
452                                    "sp_el0": { "type": "integer" },
453                                    "sp_el1": { "type": "integer" },
454                                    "spsr_el1": { "type": "integer" },
455                                    "tcr_el1": { "type": "integer" },
456                                    "tpidr_el0": { "type": "integer" },
457                                    "tpidr_el1": { "type": "integer" },
458                                    "tpidrro_el0": { "type": "integer" },
459                                    "ttbr0_el1": { "type": "integer" },
460                                    "ttbr1_el1": { "type": "integer" }
461                                }
462                            },
463                            {
464                                "type": "object",
465                                "required": ["elr_el2", "esr_el2", "far_el2", "hacr_el2", "hcr_el2", "hpfar_el2", "mair_el2", "sctlr_el2", "sp_el2", "spsr_el2", "tcr_el2", "tpidr_el2", "ttbr0_el2", "vtcr_el2", "vttbr_el2"],
466                                "properties": {
467                                    "elr_el2": { "type": "integer" },
468                                    "esr_el2": { "type": "integer" },
469                                    "far_el2": { "type": "integer" },
470                                    "hacr_el2": { "type": "integer" },
471                                    "hcr_el2": { "type": "integer" },
472                                    "hpfar_el2": { "type": "integer" },
473                                    "mair_el2": { "type": "integer" },
474                                    "sctlr_el2": { "type": "integer" },
475                                    "sp_el2": { "type": "integer" },
476                                    "spsr_el2": { "type": "integer" },
477                                    "tcr_el2": { "type": "integer" },
478                                    "tpidr_el2": { "type": "integer" },
479                                    "ttbr0_el2": { "type": "integer" },
480                                    "vtcr_el2": { "type": "integer" },
481                                    "vttbr_el2": { "type": "integer" }
482                                }
483                            },
484                            {
485                                "type": "object",
486                                "required": ["elr_el3", "esr_el3", "far_el3", "mair_el3", "sctlr_el3", "sp_el3", "spsr_el3", "tcr_el3", "tpidr_el3", "ttbr0_el3"],
487                                "properties": {
488                                    "elr_el3": { "type": "integer" },
489                                    "esr_el3": { "type": "integer" },
490                                    "far_el3": { "type": "integer" },
491                                    "mair_el3": { "type": "integer" },
492                                    "sctlr_el3": { "type": "integer" },
493                                    "sp_el3": { "type": "integer" },
494                                    "spsr_el3": { "type": "integer" },
495                                    "tcr_el3": { "type": "integer" },
496                                    "tpidr_el3": { "type": "integer" },
497                                    "ttbr0_el3": { "type": "integer" }
498                                }
499                            },
500                            {
501                                "type": "object",
502                                "required": ["mrsEncoding", "value"],
503                                "additionalProperties": false,
504                                "properties": {
505                                    "mrsEncoding": {
506                                        "type": "object",
507                                        "required": ["op2", "crm", "crn", "op1", "o0"],
508                                        "properties": {
509                                            "op2": { "type": "integer" },
510                                            "crm": { "type": "integer" },
511                                            "crn": { "type": "integer" },
512                                            "op1": { "type": "integer" },
513                                            "o0": { "type": "integer" }
514                                        }
515                                    },
516                                    "value": {
517                                        "type": "integer"
518                                    }
519                                }
520                            },
521                            {
522                                "type": "object",
523                                "required": ["data"],
524                                "properties": {
525                                    "data": {
526                                        "type": "string"
527                                    }
528                                }
529                            }
530                        ]
531                    }
532                }
533            }
534        },
535        "vendorSpecificInfo": {
536            "type": "object",
537            "required": ["data"],
538            "additionalProperties": false,
539            "properties": {
540                "data": {
541                    "type": "string"
542                }
543            }
544        }
545    }
546}