blob: b6c52556d5a8048762d97084b990002943424452 [file] [log] [blame]
Lawrence Tang079d5812022-07-12 14:15:32 +01001{
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",
Lawrence Tang8a2d7372022-07-12 16:44:49 +010095 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +010096 },
97 "multipleError": {
98 "type": "object",
Lawrence Tang8f793ac2022-07-13 10:17:09 +010099 "required": ["type", "value"],
100 "additionalProperties": false,
101 "properties": {
102 "type": {
103 "type": "string"
104 },
105 "value": {
106 "type": "integer"
107 }
108 }
Lawrence Tang079d5812022-07-12 14:15:32 +0100109 },
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",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100165 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100166 },
167 "operation": {
168 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100169 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100170 },
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",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100237 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100238 },
239 "operation": {
240 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100241 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100242 },
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",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100263 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100264 },
265 "addressSpace": {
266 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100267 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100268 },
269 "accessMode": {
270 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100271 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100272 },
273 "memoryAttributes": {
274 "type": "integer"
275 }
276 }
Lawrence Tang71570a22022-07-14 11:45:28 +0100277 },
278 {
279 "type": "object",
280 "requried": ["data"],
281 "additionalProperties": false,
282 "properties": {
283 "data": {
284 "type": "integer"
285 }
286 }
Lawrence Tang079d5812022-07-12 14:15:32 +0100287 }
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",
Lawrence Tang71570a22022-07-14 11:45:28 +0100303 "required": ["version", "registerContextType", "registerArraySize", "registerArray"],
Lawrence Tang079d5812022-07-12 14:15:32 +0100304 "additionalProperties": false,
305 "properties": {
Lawrence Tang71570a22022-07-14 11:45:28 +0100306 "version": {
307 "type": "integer",
308 "minimum": 0
309 },
Lawrence Tang079d5812022-07-12 14:15:32 +0100310 "registerContextType": {
311 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100312 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100313 },
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}