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