1079d581eSLawrence Tang{
2079d581eSLawrence Tang    "$id": "cper-json-arm-processor-section",
3079d581eSLawrence Tang    "$schema": "https://json-schema.org/draft/2020-12/schema",
4079d581eSLawrence Tang    "type": "object",
5079d581eSLawrence Tang    "required": ["validationBits", "errorInfoNum", "contextInfoNum", "sectionLength", "errorAffinity", "mpidrEl1", "midrEl1", "running", "errorInfo", "contextInfo"],
6079d581eSLawrence Tang    "additionalProperties": false,
7079d581eSLawrence Tang    "properties": {
8079d581eSLawrence Tang        "validationBits": {
9079d581eSLawrence Tang            "type": "object",
10079d581eSLawrence Tang            "required": ["mpidrValid", "errorAffinityLevelValid", "runningStateValid", "vendorSpecificInfoValid"],
11079d581eSLawrence Tang            "properties": {
12079d581eSLawrence Tang                "mpidrValid": {
13079d581eSLawrence Tang                    "type": "boolean"
14079d581eSLawrence Tang                },
15079d581eSLawrence Tang                "errorAffinityLevelValid": {
16079d581eSLawrence Tang                    "type": "boolean"
17079d581eSLawrence Tang                },
18079d581eSLawrence Tang                "runningStateValid": {
19079d581eSLawrence Tang                    "type": "boolean"
20079d581eSLawrence Tang                },
21079d581eSLawrence Tang                "vendorSpecificInfoValid": {
22079d581eSLawrence Tang                    "type": "boolean"
23079d581eSLawrence Tang                }
24079d581eSLawrence Tang            }
25079d581eSLawrence Tang        },
26079d581eSLawrence Tang        "errorInfoNum": {
27079d581eSLawrence Tang            "type": "integer"
28079d581eSLawrence Tang        },
29079d581eSLawrence Tang        "contextInfoNum": {
30079d581eSLawrence Tang            "type": "integer"
31079d581eSLawrence Tang        },
32079d581eSLawrence Tang        "sectionLength": {
33079d581eSLawrence Tang            "type": "integer"
34079d581eSLawrence Tang        },
35079d581eSLawrence Tang        "errorAffinity": {
36079d581eSLawrence Tang            "type": "object",
37079d581eSLawrence Tang            "required": ["value", "type"],
38079d581eSLawrence Tang            "properties": {
39079d581eSLawrence Tang                "value": {
40079d581eSLawrence Tang                    "type": "integer"
41079d581eSLawrence Tang                },
42079d581eSLawrence Tang                "type": {
43079d581eSLawrence Tang                    "type": "string"
44079d581eSLawrence Tang                }
45079d581eSLawrence Tang            }
46079d581eSLawrence Tang        },
47079d581eSLawrence Tang        "mpidrEl1": {
48079d581eSLawrence Tang            "type": "integer"
49079d581eSLawrence Tang        },
50079d581eSLawrence Tang        "midrEl1": {
51079d581eSLawrence Tang            "type": "integer"
52079d581eSLawrence Tang        },
53079d581eSLawrence Tang        "running": {
54079d581eSLawrence Tang            "type": "boolean"
55079d581eSLawrence Tang        },
56079d581eSLawrence Tang        "psciState": {
57079d581eSLawrence Tang            "type": "integer"
58079d581eSLawrence Tang        },
59079d581eSLawrence Tang        "errorInfo": {
60079d581eSLawrence Tang            "type": "array",
61079d581eSLawrence Tang            "items": {
62079d581eSLawrence Tang                "type": "object",
63079d581eSLawrence Tang                "required": ["version", "length", "validationBits", "errorType", "multipleError", "flags", "errorInformation", "virtualFaultAddress", "physicalFaultAddress"],
64079d581eSLawrence Tang                "additionalProperties": false,
65079d581eSLawrence Tang                "properties": {
66079d581eSLawrence Tang                    "version": {
67079d581eSLawrence Tang                        "type": "integer"
68079d581eSLawrence Tang                    },
69079d581eSLawrence Tang                    "length": {
70079d581eSLawrence Tang                        "type": "integer"
71079d581eSLawrence Tang                    },
72079d581eSLawrence Tang                    "validationBits": {
73079d581eSLawrence Tang                        "type": "object",
74079d581eSLawrence Tang                        "required": ["multipleErrorValid", "flagsValid", "errorInformationValid", "virtualFaultAddressValid", "physicalFaultAddressValid"],
75079d581eSLawrence Tang                        "properties": {
76079d581eSLawrence Tang                            "multipleErrorValid": {
77079d581eSLawrence Tang                                "type": "boolean"
78079d581eSLawrence Tang                            },
79079d581eSLawrence Tang                            "flagsValid": {
80079d581eSLawrence Tang                                "type": "boolean"
81079d581eSLawrence Tang                            },
82079d581eSLawrence Tang                            "errorInformationValid": {
83079d581eSLawrence Tang                                "type": "boolean"
84079d581eSLawrence Tang                            },
85079d581eSLawrence Tang                            "virtualFaultAddressValid": {
86079d581eSLawrence Tang                                "type": "boolean"
87079d581eSLawrence Tang                            },
88079d581eSLawrence Tang                            "physicalFaultAddressValid": {
89079d581eSLawrence Tang                                "type": "boolean"
90079d581eSLawrence Tang                            }
91079d581eSLawrence Tang                        }
92079d581eSLawrence Tang                    },
93079d581eSLawrence Tang                    "errorType": {
94079d581eSLawrence Tang                        "type": "object",
958a2d737cSLawrence Tang                        "$ref": "./common/cper-json-nvp.json"
96079d581eSLawrence Tang                    },
97079d581eSLawrence Tang                    "multipleError": {
98079d581eSLawrence Tang                        "type": "object",
998f793ac3SLawrence Tang                        "required": ["type", "value"],
1008f793ac3SLawrence Tang                        "additionalProperties": false,
1018f793ac3SLawrence Tang                        "properties": {
1028f793ac3SLawrence Tang                            "type": {
1038f793ac3SLawrence Tang                                "type": "string"
1048f793ac3SLawrence Tang                            },
1058f793ac3SLawrence Tang                            "value": {
1068f793ac3SLawrence Tang                                "type": "integer"
1078f793ac3SLawrence Tang                            }
1088f793ac3SLawrence Tang                        }
109079d581eSLawrence Tang                    },
110079d581eSLawrence Tang                    "flags": {
111079d581eSLawrence Tang                        "type": "object",
112079d581eSLawrence Tang                        "required": ["firstErrorCaptured", "lastErrorCaptured", "propagated", "overflow"],
113079d581eSLawrence Tang                        "properties": {
114079d581eSLawrence Tang                            "firstErrorCaptured": {
115079d581eSLawrence Tang                                "type": "boolean"
116079d581eSLawrence Tang                            },
117079d581eSLawrence Tang                            "lastErrorCaptured": {
118079d581eSLawrence Tang                                "type": "boolean"
119079d581eSLawrence Tang                            },
120079d581eSLawrence Tang                            "propagated": {
121079d581eSLawrence Tang                                "type": "boolean"
122079d581eSLawrence Tang                            },
123079d581eSLawrence Tang                            "overflow": {
124079d581eSLawrence Tang                                "type": "boolean"
125079d581eSLawrence Tang                            }
126079d581eSLawrence Tang                        }
127079d581eSLawrence Tang                    },
128079d581eSLawrence Tang                    "errorInformation": {
129079d581eSLawrence Tang                        "type": "object",
130079d581eSLawrence Tang                        "oneOf": [
131079d581eSLawrence Tang                            {
132079d581eSLawrence Tang                                "type": "object",
133079d581eSLawrence Tang                                "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "corrected", "precisePC", "restartablePC"],
134079d581eSLawrence Tang                                "additionalProperties": false,
135079d581eSLawrence Tang                                "properties": {
136079d581eSLawrence Tang                                    "validationBits": {
137079d581eSLawrence Tang                                        "type": "object",
138079d581eSLawrence Tang                                        "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "correctedValid", "precisePCValid", "restartablePCValid"],
139079d581eSLawrence Tang                                        "properties": {
140079d581eSLawrence Tang                                            "transactionTypeValid": {
141079d581eSLawrence Tang                                                "type": "boolean"
142079d581eSLawrence Tang                                            },
143079d581eSLawrence Tang                                            "operationValid": {
144079d581eSLawrence Tang                                                "type": "boolean"
145079d581eSLawrence Tang                                            },
146079d581eSLawrence Tang                                            "levelValid": {
147079d581eSLawrence Tang                                                "type": "boolean"
148079d581eSLawrence Tang                                            },
149079d581eSLawrence Tang                                            "processorContextCorruptValid": {
150079d581eSLawrence Tang                                                "type": "boolean"
151079d581eSLawrence Tang                                            },
152079d581eSLawrence Tang                                            "correctedValid": {
153079d581eSLawrence Tang                                                "type": "boolean"
154079d581eSLawrence Tang                                            },
155079d581eSLawrence Tang                                            "precisePCValid": {
156079d581eSLawrence Tang                                                "type": "boolean"
157079d581eSLawrence Tang                                            },
158079d581eSLawrence Tang                                            "restartablePCValid": {
159079d581eSLawrence Tang                                                "type": "boolean"
160079d581eSLawrence Tang                                            }
161079d581eSLawrence Tang                                        }
162079d581eSLawrence Tang                                    },
163079d581eSLawrence Tang                                    "transactionType": {
164079d581eSLawrence Tang                                        "type": "object",
1658a2d737cSLawrence Tang                                        "$ref": "./common/cper-json-nvp.json"
166079d581eSLawrence Tang                                    },
167079d581eSLawrence Tang                                    "operation": {
168079d581eSLawrence Tang                                        "type": "object",
1698a2d737cSLawrence Tang                                        "$ref": "./common/cper-json-nvp.json"
170079d581eSLawrence Tang                                    },
171079d581eSLawrence Tang                                    "level": {
172079d581eSLawrence Tang                                        "type": "integer"
173079d581eSLawrence Tang                                    },
174079d581eSLawrence Tang                                    "processorContextCorrupt": {
175079d581eSLawrence Tang                                        "type": "boolean"
176079d581eSLawrence Tang                                    },
177079d581eSLawrence Tang                                    "corrected": {
178079d581eSLawrence Tang                                        "type": "boolean"
179079d581eSLawrence Tang                                    },
180079d581eSLawrence Tang                                    "precisePC": {
181079d581eSLawrence Tang                                        "type": "boolean"
182079d581eSLawrence Tang                                    },
183079d581eSLawrence Tang                                    "restartablePC": {
184079d581eSLawrence Tang                                        "type": "boolean"
185079d581eSLawrence Tang                                    }
186079d581eSLawrence Tang                                }
187079d581eSLawrence Tang                            },
188079d581eSLawrence Tang                            {
189079d581eSLawrence Tang                                "type": "object",
190079d581eSLawrence Tang                                "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "corrected", "precisePC", "restartablePC", "timedOut", "participationType", "addressSpace", "memoryAttributes", "accessMode"],
191079d581eSLawrence Tang                                "additionalProperties": false,
192079d581eSLawrence Tang                                "properties": {
193079d581eSLawrence Tang                                    "validationBits": {
194079d581eSLawrence Tang                                        "type": "object",
195079d581eSLawrence Tang                                        "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "correctedValid", "precisePCValid", "restartablePCValid", "participationTypeValid", "timedOutValid", "addressSpaceValid", "memoryAttributesValid", "accessModeValid"],
196079d581eSLawrence Tang                                        "properties": {
197079d581eSLawrence Tang                                            "transactionTypeValid": {
198079d581eSLawrence Tang                                                "type": "boolean"
199079d581eSLawrence Tang                                            },
200079d581eSLawrence Tang                                            "operationValid": {
201079d581eSLawrence Tang                                                "type": "boolean"
202079d581eSLawrence Tang                                            },
203079d581eSLawrence Tang                                            "levelValid": {
204079d581eSLawrence Tang                                                "type": "boolean"
205079d581eSLawrence Tang                                            },
206079d581eSLawrence Tang                                            "processorContextCorruptValid": {
207079d581eSLawrence Tang                                                "type": "boolean"
208079d581eSLawrence Tang                                            },
209079d581eSLawrence Tang                                            "correctedValid": {
210079d581eSLawrence Tang                                                "type": "boolean"
211079d581eSLawrence Tang                                            },
212079d581eSLawrence Tang                                            "precisePCValid": {
213079d581eSLawrence Tang                                                "type": "boolean"
214079d581eSLawrence Tang                                            },
215079d581eSLawrence Tang                                            "restartablePCValid": {
216079d581eSLawrence Tang                                                "type": "boolean"
217079d581eSLawrence Tang                                            },
218079d581eSLawrence Tang                                            "participationTypeValid": {
219079d581eSLawrence Tang                                                "type": "boolean"
220079d581eSLawrence Tang                                            },
221079d581eSLawrence Tang                                            "timedOutValid": {
222079d581eSLawrence Tang                                                "type": "boolean"
223079d581eSLawrence Tang                                            },
224079d581eSLawrence Tang                                            "addressSpaceValid": {
225079d581eSLawrence Tang                                                "type": "boolean"
226079d581eSLawrence Tang                                            },
227079d581eSLawrence Tang                                            "memoryAttributesValid": {
228079d581eSLawrence Tang                                                "type": "boolean"
229079d581eSLawrence Tang                                            },
230079d581eSLawrence Tang                                            "accessModeValid": {
231079d581eSLawrence Tang                                                "type": "boolean"
232079d581eSLawrence Tang                                            }
233079d581eSLawrence Tang                                        }
234079d581eSLawrence Tang                                    },
235079d581eSLawrence Tang                                    "transactionType": {
236079d581eSLawrence Tang                                        "type": "object",
2378a2d737cSLawrence Tang                                        "$ref": "./common/cper-json-nvp.json"
238079d581eSLawrence Tang                                    },
239079d581eSLawrence Tang                                    "operation": {
240079d581eSLawrence Tang                                        "type": "object",
2418a2d737cSLawrence Tang                                        "$ref": "./common/cper-json-nvp.json"
242079d581eSLawrence Tang                                    },
243079d581eSLawrence Tang                                    "level": {
244079d581eSLawrence Tang                                        "type": "integer"
245079d581eSLawrence Tang                                    },
246079d581eSLawrence Tang                                    "processorContextCorrupt": {
247079d581eSLawrence Tang                                        "type": "boolean"
248079d581eSLawrence Tang                                    },
249079d581eSLawrence Tang                                    "corrected": {
250079d581eSLawrence Tang                                        "type": "boolean"
251079d581eSLawrence Tang                                    },
252079d581eSLawrence Tang                                    "precisePC": {
253079d581eSLawrence Tang                                        "type": "boolean"
254079d581eSLawrence Tang                                    },
255079d581eSLawrence Tang                                    "restartablePC": {
256079d581eSLawrence Tang                                        "type": "boolean"
257079d581eSLawrence Tang                                    },
258079d581eSLawrence Tang                                    "timedOut": {
259079d581eSLawrence Tang                                        "type": "boolean"
260079d581eSLawrence Tang                                    },
261079d581eSLawrence Tang                                    "participationType": {
262079d581eSLawrence Tang                                        "type": "object",
2638a2d737cSLawrence Tang                                        "$ref": "./common/cper-json-nvp.json"
264079d581eSLawrence Tang                                    },
265079d581eSLawrence Tang                                    "addressSpace": {
266079d581eSLawrence Tang                                        "type": "object",
2678a2d737cSLawrence Tang                                        "$ref": "./common/cper-json-nvp.json"
268079d581eSLawrence Tang                                    },
269079d581eSLawrence Tang                                    "accessMode": {
270079d581eSLawrence Tang                                        "type": "object",
2718a2d737cSLawrence Tang                                        "$ref": "./common/cper-json-nvp.json"
272079d581eSLawrence Tang                                    },
273079d581eSLawrence Tang                                    "memoryAttributes": {
274079d581eSLawrence Tang                                        "type": "integer"
275079d581eSLawrence Tang                                    }
276079d581eSLawrence Tang                                }
27771570a2aSLawrence Tang                            },
27871570a2aSLawrence Tang                            {
27971570a2aSLawrence Tang                                "type": "object",
280*c837facaSLawrence Tang                                "required": ["data"],
28171570a2aSLawrence Tang                                "additionalProperties": false,
28271570a2aSLawrence Tang                                "properties": {
28371570a2aSLawrence Tang                                    "data": {
28471570a2aSLawrence Tang                                        "type": "integer"
28571570a2aSLawrence Tang                                    }
28671570a2aSLawrence Tang                                }
287079d581eSLawrence Tang                            }
288079d581eSLawrence Tang                        ]
289079d581eSLawrence Tang                    },
290079d581eSLawrence Tang                    "virtualFaultAddress": {
291079d581eSLawrence Tang                        "type": "integer"
292079d581eSLawrence Tang                    },
293079d581eSLawrence Tang                    "physicalFaultAddress": {
294079d581eSLawrence Tang                        "type": "integer"
295079d581eSLawrence Tang                    }
296079d581eSLawrence Tang                }
297079d581eSLawrence Tang            }
298079d581eSLawrence Tang        },
299079d581eSLawrence Tang        "contextInfo": {
300079d581eSLawrence Tang            "type": "array",
301079d581eSLawrence Tang            "items": {
302079d581eSLawrence Tang                "type": "object",
30371570a2aSLawrence Tang                "required": ["version", "registerContextType", "registerArraySize", "registerArray"],
304079d581eSLawrence Tang                "additionalProperties": false,
305079d581eSLawrence Tang                "properties": {
30671570a2aSLawrence Tang                    "version": {
30771570a2aSLawrence Tang                        "type": "integer",
30871570a2aSLawrence Tang                        "minimum": 0
30971570a2aSLawrence Tang                    },
310079d581eSLawrence Tang                    "registerContextType": {
311079d581eSLawrence Tang                        "type": "object",
3128a2d737cSLawrence Tang                        "$ref": "./common/cper-json-nvp.json"
313079d581eSLawrence Tang                    },
314079d581eSLawrence Tang                    "registerArraySize": {
315079d581eSLawrence Tang                        "type": "integer"
316079d581eSLawrence Tang                    },
317079d581eSLawrence Tang                    "registerArray": {
318079d581eSLawrence Tang                        "type": "object",
319079d581eSLawrence Tang                        "oneOf": [
320079d581eSLawrence Tang                            {
321079d581eSLawrence Tang                                "type": "object",
322079d581eSLawrence Tang                                "required": ["r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13_sp", "r14_lr", "r15_pc"],
323079d581eSLawrence Tang                                "properties": {
324079d581eSLawrence Tang                                    "r0": { "type": "integer" },
325079d581eSLawrence Tang                                    "r1": { "type": "integer" },
326079d581eSLawrence Tang                                    "r2": { "type": "integer" },
327079d581eSLawrence Tang                                    "r3": { "type": "integer" },
328079d581eSLawrence Tang                                    "r4": { "type": "integer" },
329079d581eSLawrence Tang                                    "r5": { "type": "integer" },
330079d581eSLawrence Tang                                    "r6": { "type": "integer" },
331079d581eSLawrence Tang                                    "r7": { "type": "integer" },
332079d581eSLawrence Tang                                    "r8": { "type": "integer" },
333079d581eSLawrence Tang                                    "r9": { "type": "integer" },
334079d581eSLawrence Tang                                    "r10": { "type": "integer" },
335079d581eSLawrence Tang                                    "r11": { "type": "integer" },
336079d581eSLawrence Tang                                    "r12": { "type": "integer" },
337079d581eSLawrence Tang                                    "r13_sp": { "type": "integer" },
338079d581eSLawrence Tang                                    "r14_lr": { "type": "integer" },
339079d581eSLawrence Tang                                    "r15_pc": { "type": "integer" }
340079d581eSLawrence Tang                                }
341079d581eSLawrence Tang                            },
342079d581eSLawrence Tang                            {
343079d581eSLawrence Tang                                "type": "object",
344079d581eSLawrence 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"],
345079d581eSLawrence Tang                                "properties": {
346079d581eSLawrence Tang                                    "dfar": { "type": "integer" },
347079d581eSLawrence Tang                                    "dfsr": { "type": "integer" },
348079d581eSLawrence Tang                                    "ifar": { "type": "integer" },
349079d581eSLawrence Tang                                    "isr": { "type": "integer" },
350079d581eSLawrence Tang                                    "mair0": { "type": "integer" },
351079d581eSLawrence Tang                                    "mair1": { "type": "integer" },
352079d581eSLawrence Tang                                    "midr": { "type": "integer" },
353079d581eSLawrence Tang                                    "mpidr": { "type": "integer" },
354079d581eSLawrence Tang                                    "nmrr": { "type": "integer" },
355079d581eSLawrence Tang                                    "prrr": { "type": "integer" },
356079d581eSLawrence Tang                                    "sctlr_ns": { "type": "integer" },
357079d581eSLawrence Tang                                    "spsr": { "type": "integer" },
358079d581eSLawrence Tang                                    "spsr_abt": { "type": "integer" },
359079d581eSLawrence Tang                                    "spsr_fiq": { "type": "integer" },
360079d581eSLawrence Tang                                    "spsr_irq": { "type": "integer" },
361079d581eSLawrence Tang                                    "spsr_svc": { "type": "integer" },
362079d581eSLawrence Tang                                    "spsr_und": { "type": "integer" },
363079d581eSLawrence Tang                                    "tpidrprw": { "type": "integer" },
364079d581eSLawrence Tang                                    "tpidruro": { "type": "integer" },
365079d581eSLawrence Tang                                    "tpidrurw": { "type": "integer" },
366079d581eSLawrence Tang                                    "ttbcr": { "type": "integer" },
367079d581eSLawrence Tang                                    "ttbr0": { "type": "integer" },
368079d581eSLawrence Tang                                    "ttbr1": { "type": "integer" },
369079d581eSLawrence Tang                                    "dacr": { "type": "integer" }
370079d581eSLawrence Tang                                }
371079d581eSLawrence Tang                            },
372079d581eSLawrence Tang                            {
373079d581eSLawrence Tang                                "type": "object",
374079d581eSLawrence Tang                                "required": ["elr_hyp", "hamair0", "hamair1", "hcr", "hcr2", "hdfar", "hifar", "hpfar", "hsr", "htcr", "htpidr", "httbr", "spsr_hyp", "vtcr", "vttbr", "dacr32_el2"],
375079d581eSLawrence Tang                                "properties": {
376079d581eSLawrence Tang                                    "elr_hyp": { "type": "integer" },
377079d581eSLawrence Tang                                    "hamair0": { "type": "integer" },
378079d581eSLawrence Tang                                    "hamair1": { "type": "integer" },
379079d581eSLawrence Tang                                    "hcr": { "type": "integer" },
380079d581eSLawrence Tang                                    "hcr2": { "type": "integer" },
381079d581eSLawrence Tang                                    "hdfar": { "type": "integer" },
382079d581eSLawrence Tang                                    "hifar": { "type": "integer" },
383079d581eSLawrence Tang                                    "hpfar": { "type": "integer" },
384079d581eSLawrence Tang                                    "hsr": { "type": "integer" },
385079d581eSLawrence Tang                                    "htcr": { "type": "integer" },
386079d581eSLawrence Tang                                    "htpidr": { "type": "integer" },
387079d581eSLawrence Tang                                    "httbr": { "type": "integer" },
388079d581eSLawrence Tang                                    "spsr_hyp": { "type": "integer" },
389079d581eSLawrence Tang                                    "vtcr": { "type": "integer" },
390079d581eSLawrence Tang                                    "vttbr": { "type": "integer" },
391079d581eSLawrence Tang                                    "dacr32_el2": { "type": "integer" }
392079d581eSLawrence Tang                                }
393079d581eSLawrence Tang                            },
394079d581eSLawrence Tang                            {
395079d581eSLawrence Tang                                "type": "object",
396079d581eSLawrence Tang                                "required": ["sctlr_s", "spsr_mon"],
397079d581eSLawrence Tang                                "properties": {
398079d581eSLawrence Tang                                    "sctlr_s": { "type": "integer" },
399079d581eSLawrence Tang                                    "spsr_mon": { "type": "integer" }
400079d581eSLawrence Tang                                }
401079d581eSLawrence Tang                            },
402079d581eSLawrence Tang                            {
403079d581eSLawrence Tang                                "type": "object",
404079d581eSLawrence 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"],
405079d581eSLawrence Tang                                "properties": {
406079d581eSLawrence Tang                                    "x0": { "type": "integer" },
407079d581eSLawrence Tang                                    "x1": { "type": "integer" },
408079d581eSLawrence Tang                                    "x2": { "type": "integer" },
409079d581eSLawrence Tang                                    "x3": { "type": "integer" },
410079d581eSLawrence Tang                                    "x4": { "type": "integer" },
411079d581eSLawrence Tang                                    "x5": { "type": "integer" },
412079d581eSLawrence Tang                                    "x6": { "type": "integer" },
413079d581eSLawrence Tang                                    "x7": { "type": "integer" },
414079d581eSLawrence Tang                                    "x8": { "type": "integer" },
415079d581eSLawrence Tang                                    "x9": { "type": "integer" },
416079d581eSLawrence Tang                                    "x10": { "type": "integer" },
417079d581eSLawrence Tang                                    "x11": { "type": "integer" },
418079d581eSLawrence Tang                                    "x12": { "type": "integer" },
419079d581eSLawrence Tang                                    "x13": { "type": "integer" },
420079d581eSLawrence Tang                                    "x14": { "type": "integer" },
421079d581eSLawrence Tang                                    "x15": { "type": "integer" },
422079d581eSLawrence Tang                                    "x16": { "type": "integer" },
423079d581eSLawrence Tang                                    "x17": { "type": "integer" },
424079d581eSLawrence Tang                                    "x18": { "type": "integer" },
425079d581eSLawrence Tang                                    "x19": { "type": "integer" },
426079d581eSLawrence Tang                                    "x20": { "type": "integer" },
427079d581eSLawrence Tang                                    "x21": { "type": "integer" },
428079d581eSLawrence Tang                                    "x22": { "type": "integer" },
429079d581eSLawrence Tang                                    "x23": { "type": "integer" },
430079d581eSLawrence Tang                                    "x24": { "type": "integer" },
431079d581eSLawrence Tang                                    "x25": { "type": "integer" },
432079d581eSLawrence Tang                                    "x26": { "type": "integer" },
433079d581eSLawrence Tang                                    "x27": { "type": "integer" },
434079d581eSLawrence Tang                                    "x28": { "type": "integer" },
435079d581eSLawrence Tang                                    "x29": { "type": "integer" },
436079d581eSLawrence Tang                                    "x30": { "type": "integer" },
437079d581eSLawrence Tang                                    "sp": { "type": "integer" }
438079d581eSLawrence Tang                                }
439079d581eSLawrence Tang                            },
440079d581eSLawrence Tang                            {
441079d581eSLawrence Tang                                "type": "object",
442079d581eSLawrence 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"],
443079d581eSLawrence Tang                                "properties": {
444079d581eSLawrence Tang                                    "elr_el1": { "type": "integer" },
445079d581eSLawrence Tang                                    "esr_el1": { "type": "integer" },
446079d581eSLawrence Tang                                    "far_el1": { "type": "integer" },
447079d581eSLawrence Tang                                    "isr_el1": { "type": "integer" },
448079d581eSLawrence Tang                                    "mair_el1": { "type": "integer" },
449079d581eSLawrence Tang                                    "midr_el1": { "type": "integer" },
450079d581eSLawrence Tang                                    "mpidr_el1": { "type": "integer" },
451079d581eSLawrence Tang                                    "sctlr_el1": { "type": "integer" },
452079d581eSLawrence Tang                                    "sp_el0": { "type": "integer" },
453079d581eSLawrence Tang                                    "sp_el1": { "type": "integer" },
454079d581eSLawrence Tang                                    "spsr_el1": { "type": "integer" },
455079d581eSLawrence Tang                                    "tcr_el1": { "type": "integer" },
456079d581eSLawrence Tang                                    "tpidr_el0": { "type": "integer" },
457079d581eSLawrence Tang                                    "tpidr_el1": { "type": "integer" },
458079d581eSLawrence Tang                                    "tpidrro_el0": { "type": "integer" },
459079d581eSLawrence Tang                                    "ttbr0_el1": { "type": "integer" },
460079d581eSLawrence Tang                                    "ttbr1_el1": { "type": "integer" }
461079d581eSLawrence Tang                                }
462079d581eSLawrence Tang                            },
463079d581eSLawrence Tang                            {
464079d581eSLawrence Tang                                "type": "object",
465079d581eSLawrence 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"],
466079d581eSLawrence Tang                                "properties": {
467079d581eSLawrence Tang                                    "elr_el2": { "type": "integer" },
468079d581eSLawrence Tang                                    "esr_el2": { "type": "integer" },
469079d581eSLawrence Tang                                    "far_el2": { "type": "integer" },
470079d581eSLawrence Tang                                    "hacr_el2": { "type": "integer" },
471079d581eSLawrence Tang                                    "hcr_el2": { "type": "integer" },
472079d581eSLawrence Tang                                    "hpfar_el2": { "type": "integer" },
473079d581eSLawrence Tang                                    "mair_el2": { "type": "integer" },
474079d581eSLawrence Tang                                    "sctlr_el2": { "type": "integer" },
475079d581eSLawrence Tang                                    "sp_el2": { "type": "integer" },
476079d581eSLawrence Tang                                    "spsr_el2": { "type": "integer" },
477079d581eSLawrence Tang                                    "tcr_el2": { "type": "integer" },
478079d581eSLawrence Tang                                    "tpidr_el2": { "type": "integer" },
479079d581eSLawrence Tang                                    "ttbr0_el2": { "type": "integer" },
480079d581eSLawrence Tang                                    "vtcr_el2": { "type": "integer" },
481079d581eSLawrence Tang                                    "vttbr_el2": { "type": "integer" }
482079d581eSLawrence Tang                                }
483079d581eSLawrence Tang                            },
484079d581eSLawrence Tang                            {
485079d581eSLawrence Tang                                "type": "object",
486079d581eSLawrence Tang                                "required": ["elr_el3", "esr_el3", "far_el3", "mair_el3", "sctlr_el3", "sp_el3", "spsr_el3", "tcr_el3", "tpidr_el3", "ttbr0_el3"],
487079d581eSLawrence Tang                                "properties": {
488079d581eSLawrence Tang                                    "elr_el3": { "type": "integer" },
489079d581eSLawrence Tang                                    "esr_el3": { "type": "integer" },
490079d581eSLawrence Tang                                    "far_el3": { "type": "integer" },
491079d581eSLawrence Tang                                    "mair_el3": { "type": "integer" },
492079d581eSLawrence Tang                                    "sctlr_el3": { "type": "integer" },
493079d581eSLawrence Tang                                    "sp_el3": { "type": "integer" },
494079d581eSLawrence Tang                                    "spsr_el3": { "type": "integer" },
495079d581eSLawrence Tang                                    "tcr_el3": { "type": "integer" },
496079d581eSLawrence Tang                                    "tpidr_el3": { "type": "integer" },
497079d581eSLawrence Tang                                    "ttbr0_el3": { "type": "integer" }
498079d581eSLawrence Tang                                }
499079d581eSLawrence Tang                            },
500079d581eSLawrence Tang                            {
501079d581eSLawrence Tang                                "type": "object",
502079d581eSLawrence Tang                                "required": ["mrsEncoding", "value"],
503079d581eSLawrence Tang                                "additionalProperties": false,
504079d581eSLawrence Tang                                "properties": {
505079d581eSLawrence Tang                                    "mrsEncoding": {
506079d581eSLawrence Tang                                        "type": "object",
507079d581eSLawrence Tang                                        "required": ["op2", "crm", "crn", "op1", "o0"],
508079d581eSLawrence Tang                                        "properties": {
509079d581eSLawrence Tang                                            "op2": { "type": "integer" },
510079d581eSLawrence Tang                                            "crm": { "type": "integer" },
511079d581eSLawrence Tang                                            "crn": { "type": "integer" },
512079d581eSLawrence Tang                                            "op1": { "type": "integer" },
513079d581eSLawrence Tang                                            "o0": { "type": "integer" }
514079d581eSLawrence Tang                                        }
515079d581eSLawrence Tang                                    },
516079d581eSLawrence Tang                                    "value": {
517079d581eSLawrence Tang                                        "type": "integer"
518079d581eSLawrence Tang                                    }
519079d581eSLawrence Tang                                }
520079d581eSLawrence Tang                            },
521079d581eSLawrence Tang                            {
522079d581eSLawrence Tang                                "type": "object",
523079d581eSLawrence Tang                                "required": ["data"],
524079d581eSLawrence Tang                                "properties": {
525079d581eSLawrence Tang                                    "data": {
526079d581eSLawrence Tang                                        "type": "string"
527079d581eSLawrence Tang                                    }
528079d581eSLawrence Tang                                }
529079d581eSLawrence Tang                            }
530079d581eSLawrence Tang                        ]
531079d581eSLawrence Tang                    }
532079d581eSLawrence Tang                }
533079d581eSLawrence Tang            }
534079d581eSLawrence Tang        },
535079d581eSLawrence Tang        "vendorSpecificInfo": {
536079d581eSLawrence Tang            "type": "object",
537079d581eSLawrence Tang            "required": ["data"],
538079d581eSLawrence Tang            "additionalProperties": false,
539079d581eSLawrence Tang            "properties": {
540079d581eSLawrence Tang                "data": {
541079d581eSLawrence Tang                    "type": "string"
542079d581eSLawrence Tang                }
543079d581eSLawrence Tang            }
544079d581eSLawrence Tang        }
545079d581eSLawrence Tang    }
546079d581eSLawrence Tang}