blob: fbdd971bdbcbab15ddd09a3401b74298b6cbad40 [file] [log] [blame]
Lawrence Tang079d5812022-07-12 14:15:32 +01001{
Lawrence Tang079d5812022-07-12 14:15:32 +01002 "$schema": "https://json-schema.org/draft/2020-12/schema",
3 "type": "object",
John Chung044afd02024-05-03 19:58:02 +08004 "required": [
5 "validationBits",
6 "localAPICID",
7 "cpuidInfo",
8 "processorErrorInfo",
9 "processorContextInfo"
10 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010011 "additionalProperties": false,
12 "properties": {
13 "validationBits": {
14 "type": "object",
John Chung044afd02024-05-03 19:58:02 +080015 "required": [
16 "localAPICIDValid",
17 "cpuIDInfoValid",
18 "processorErrorInfoNum",
19 "processorContextInfoNum"
20 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010021 "properties": {
22 "localAPICIDValid": {
23 "type": "boolean"
24 },
25 "cpuIDInfoValid": {
26 "type": "boolean"
27 },
28 "processorErrorInfoNum": {
29 "type": "integer",
30 "minimum": 0
31 },
32 "processorContextInfoNum": {
33 "type": "integer",
34 "minimum": 0
35 }
36 }
37 },
38 "localAPICID": {
39 "type": "integer"
40 },
41 "cpuidInfo": {
42 "type": "object",
43 "required": ["eax", "ebx", "ecx", "edx"],
44 "properties": {
45 "eax": {
46 "type": "integer"
47 },
48 "ebx": {
49 "type": "integer"
50 },
51 "ecx": {
52 "type": "integer"
53 },
54 "edx": {
55 "type": "integer"
56 }
57 }
58 },
59 "processorErrorInfo": {
60 "type": "array",
61 "items": {
62 "type": "object",
John Chung044afd02024-05-03 19:58:02 +080063 "required": [
64 "type",
65 "validationBits",
66 "checkInfo",
67 "targetAddressID",
68 "requestorID",
69 "responderID",
70 "instructionPointer"
71 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010072 "additionalProperties": false,
73 "properties": {
74 "type": {
Lawrence Tang3592da72022-07-21 16:50:07 +010075 "type": "object",
76 "required": ["guid", "name"],
77 "properties": {
78 "guid": {
79 "type": "string"
80 },
81 "name": {
82 "type": "string"
83 }
84 }
Lawrence Tang079d5812022-07-12 14:15:32 +010085 },
86 "validationBits": {
87 "type": "object",
John Chung044afd02024-05-03 19:58:02 +080088 "required": [
89 "checkInfoValid",
90 "targetAddressIDValid",
91 "requestorIDValid",
92 "responderIDValid",
93 "instructionPointerValid"
94 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010095 "additionalProperties": false,
96 "properties": {
97 "checkInfoValid": {
98 "type": "boolean"
99 },
100 "targetAddressIDValid": {
101 "type": "boolean"
102 },
103 "requestorIDValid": {
104 "type": "boolean"
105 },
106 "responderIDValid": {
107 "type": "boolean"
108 },
109 "instructionPointerValid": {
110 "type": "boolean"
111 }
112 }
113 },
114 "checkInfo": {
John Chung044afd02024-05-03 19:58:02 +0800115 "type": "object",
Lawrence Tang079d5812022-07-12 14:15:32 +0100116 "oneOf": [
117 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700118 "$id": "cper-json-checkinfo0",
Lawrence Tang079d5812022-07-12 14:15:32 +0100119 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800120 "required": [
121 "validationBits",
122 "transactionType",
123 "operation",
124 "level",
125 "processorContextCorrupt",
126 "uncorrected",
127 "preciseIP",
128 "restartableIP",
129 "overflow"
130 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100131 "additionalProperties": false,
132 "properties": {
133 "validationBits": {
134 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800135 "required": [
136 "transactionTypeValid",
137 "operationValid",
138 "levelValid",
139 "processorContextCorruptValid",
140 "uncorrectedValid",
141 "preciseIPValid",
142 "restartableIPValid",
143 "overflowValid"
144 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100145 "properties": {
146 "transactionTypeValid": {
147 "type": "boolean"
148 },
149 "operationValid": {
150 "type": "boolean"
151 },
152 "levelValid": {
153 "type": "boolean"
154 },
155 "processorContextCorruptValid": {
156 "type": "boolean"
157 },
158 "uncorrectedValid": {
159 "type": "boolean"
160 },
161 "preciseIPValid": {
162 "type": "boolean"
163 },
164 "restartableIPValid": {
165 "type": "boolean"
166 },
167 "overflowValid": {
168 "type": "boolean"
169 }
170 }
171 },
172 "transactionType": {
173 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100174 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100175 },
176 "operation": {
177 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100178 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100179 },
180 "level": {
181 "type": "integer",
182 "minimum": 0
183 },
184 "processorContextCorrupt": {
185 "type": "boolean"
186 },
187 "uncorrected": {
188 "type": "boolean"
189 },
190 "preciseIP": {
191 "type": "boolean"
192 },
193 "restartableIP": {
194 "type": "boolean"
195 },
196 "overflow": {
197 "type": "boolean"
198 }
199 }
200 },
201 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700202 "$id": "cper-json-checkinfo1",
Lawrence Tang079d5812022-07-12 14:15:32 +0100203 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800204 "required": [
205 "validationBits",
206 "transactionType",
207 "operation",
208 "level",
209 "processorContextCorrupt",
210 "uncorrected",
211 "preciseIP",
212 "restartableIP",
213 "overflow",
214 "participationType",
215 "timedOut",
216 "addressSpace"
217 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100218 "additionalProperties": false,
219 "properties": {
220 "validationBits": {
221 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800222 "required": [
223 "transactionTypeValid",
224 "operationValid",
225 "levelValid",
226 "processorContextCorruptValid",
227 "uncorrectedValid",
228 "preciseIPValid",
229 "restartableIPValid",
230 "overflowValid",
231 "participationTypeValid",
232 "timedOutValid",
233 "addressSpaceValid"
234 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100235 "properties": {
236 "transactionTypeValid": {
237 "type": "boolean"
238 },
239 "operationValid": {
240 "type": "boolean"
241 },
242 "levelValid": {
243 "type": "boolean"
244 },
245 "processorContextCorruptValid": {
246 "type": "boolean"
247 },
248 "uncorrectedValid": {
249 "type": "boolean"
250 },
251 "preciseIPValid": {
252 "type": "boolean"
253 },
254 "restartableIPValid": {
255 "type": "boolean"
256 },
257 "overflowValid": {
258 "type": "boolean"
259 },
260 "participationTypeValid": {
261 "type": "boolean"
262 },
263 "timedOutValid": {
264 "type": "boolean"
Lawrence Tangd34f2b12022-07-19 15:36:31 +0100265 },
266 "addressSpaceValid": {
267 "type": "boolean"
Lawrence Tang079d5812022-07-12 14:15:32 +0100268 }
269 }
270 },
271 "transactionType": {
272 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100273 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100274 },
275 "operation": {
276 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100277 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100278 },
279 "level": {
280 "type": "integer",
281 "minimum": 0
282 },
283 "processorContextCorrupt": {
284 "type": "boolean"
285 },
286 "uncorrected": {
287 "type": "boolean"
288 },
289 "preciseIP": {
290 "type": "boolean"
291 },
292 "restartableIP": {
293 "type": "boolean"
294 },
295 "overflow": {
296 "type": "boolean"
297 },
298 "participationType": {
299 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100300 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100301 },
302 "addressSpace": {
303 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100304 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100305 },
306 "timedOut": {
307 "type": "boolean"
308 }
309 }
310 },
311 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700312 "$id": "cper-json-checkinfo2",
Lawrence Tang079d5812022-07-12 14:15:32 +0100313 "type": "object",
314 "required": [],
315 "additionalProperties": false,
316 "properties": {
317 "validationBits": {
318 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800319 "required": [
320 "errorTypeValid",
321 "processorContextCorruptValid",
322 "uncorrectedValid",
323 "preciseIPValid",
324 "restartableIPValid",
325 "overflowValid"
326 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100327 "properties": {
328 "errorTypeValid": {
329 "type": "boolean"
330 },
331 "processorContextCorruptValid": {
332 "type": "boolean"
333 },
334 "uncorrectedValid": {
335 "type": "boolean"
336 },
337 "preciseIPValid": {
338 "type": "boolean"
339 },
340 "restartableIPValid": {
341 "type": "boolean"
342 },
343 "overflowValid": {
344 "type": "boolean"
345 }
346 }
347 },
348 "errorType": {
349 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100350 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100351 },
352 "processorContextCorrupt": {
353 "type": "boolean"
354 },
355 "uncorrected": {
356 "type": "boolean"
357 },
358 "preciseIP": {
359 "type": "boolean"
360 },
361 "restartableIP": {
362 "type": "boolean"
363 },
364 "overflow": {
365 "type": "boolean"
366 }
367 }
368 }
369 ]
370 },
371 "targetAddressID": {
372 "type": "integer"
373 },
374 "requestorID": {
375 "type": "integer"
376 },
377 "responderID": {
378 "type": "integer"
379 },
380 "instructionPointer": {
381 "type": "integer"
382 }
383 }
384 }
385 },
386 "processorContextInfo": {
387 "type": "array",
388 "items": {
389 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800390 "required": [
391 "registerContextType",
392 "registerArraySize",
393 "msrAddress",
394 "mmRegisterAddress"
395 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100396 "additionalProperties": false,
397 "properties": {
398 "registerContextType": {
399 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100400 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100401 },
402 "registerArraySize": {
403 "type": "integer"
404 },
405 "msrAddress": {
406 "type": "integer"
407 },
408 "mmRegisterAddress": {
409 "type": "integer"
410 },
411 "registerArray": {
412 "type": "object",
413 "oneOf": [
414 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700415 "$id": "cper-json-registerarray0",
Lawrence Tang079d5812022-07-12 14:15:32 +0100416 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800417 "required": [
418 "eax",
419 "ebx",
420 "ecx",
421 "edx",
422 "esi",
423 "edi",
424 "ebp",
425 "esp",
426 "cs",
427 "ds",
428 "ss",
429 "es",
430 "fs",
431 "gs",
432 "eflags",
433 "eip",
434 "cr0",
435 "cr1",
436 "cr2",
437 "cr3",
438 "cr4",
439 "gdtr",
440 "idtr",
441 "ldtr",
442 "tr"
443 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100444 "additionalProperties": false,
445 "properties": {
446 "eax": { "type": "integer" },
447 "ebx": { "type": "integer" },
448 "ecx": { "type": "integer" },
449 "edx": { "type": "integer" },
450 "esi": { "type": "integer" },
451 "edi": { "type": "integer" },
452 "ebp": { "type": "integer" },
453 "esp": { "type": "integer" },
454 "cs": { "type": "integer" },
455 "ds": { "type": "integer" },
456 "ss": { "type": "integer" },
457 "es": { "type": "integer" },
458 "fs": { "type": "integer" },
459 "gs": { "type": "integer" },
460 "eflags": { "type": "integer" },
461 "eip": { "type": "integer" },
462 "cr0": { "type": "integer" },
463 "cr1": { "type": "integer" },
464 "cr2": { "type": "integer" },
465 "cr3": { "type": "integer" },
466 "cr4": { "type": "integer" },
467 "gdtr": { "type": "integer" },
468 "idtr": { "type": "integer" },
469 "ldtr": { "type": "integer" },
470 "tr": { "type": "integer" }
471 }
472 },
473 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700474 "$id": "cper-json-registerarray1",
Lawrence Tang079d5812022-07-12 14:15:32 +0100475 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800476 "required": [
477 "rax",
478 "rbx",
479 "rcx",
480 "rdx",
481 "rsi",
482 "rdi",
483 "rbp",
484 "rsp",
485 "r8",
486 "r9",
487 "r10",
488 "r11",
489 "r12",
490 "r13",
491 "r14",
492 "r15",
493 "cs",
494 "ds",
495 "es",
496 "fs",
497 "gs",
498 "rflags",
499 "eip",
500 "cr0",
501 "cr1",
502 "cr2",
503 "cr3",
504 "cr4",
505 "cr8",
506 "gdtr_0",
507 "gdtr_1",
508 "idtr_0",
509 "idtr_1",
510 "ldtr",
511 "tr"
512 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100513 "additionalProperties": false,
514 "properties": {
515 "rax": { "type": "integer" },
516 "rbx": { "type": "integer" },
517 "rcx": { "type": "integer" },
518 "rdx": { "type": "integer" },
519 "rsi": { "type": "integer" },
520 "rdi": { "type": "integer" },
521 "rbp": { "type": "integer" },
522 "rsp": { "type": "integer" },
523 "r8": { "type": "integer" },
524 "r9": { "type": "integer" },
525 "r10": { "type": "integer" },
526 "r11": { "type": "integer" },
527 "r12": { "type": "integer" },
528 "r13": { "type": "integer" },
529 "r14": { "type": "integer" },
530 "r15": { "type": "integer" },
531 "cs": { "type": "integer" },
532 "ds": { "type": "integer" },
533 "ss": { "type": "integer" },
534 "es": { "type": "integer" },
535 "fs": { "type": "integer" },
536 "gs": { "type": "integer" },
537 "rflags": { "type": "integer" },
538 "eip": { "type": "integer" },
539 "cr0": { "type": "integer" },
540 "cr1": { "type": "integer" },
541 "cr2": { "type": "integer" },
542 "cr3": { "type": "integer" },
543 "cr4": { "type": "integer" },
544 "cr8": { "type": "integer" },
545 "gdtr_0": { "type": "integer" },
546 "gdtr_1": { "type": "integer" },
547 "idtr_0": { "type": "integer" },
548 "idtr_1": { "type": "integer" },
549 "ldtr": { "type": "integer" },
550 "tr": { "type": "integer" }
551 }
552 },
553 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700554 "$id": "cper-json-registerarray2",
Lawrence Tang079d5812022-07-12 14:15:32 +0100555 "type": "object",
556 "required": ["data"],
557 "additionalProperties": false,
558 "properties": {
559 "data": {
560 "type": "string"
561 }
562 }
563 }
564 ]
565 }
566 }
567 }
568 }
569 }
John Chung044afd02024-05-03 19:58:02 +0800570}