blob: 2a017a0909b07a48f4b32f6cb560aeffe3ed70e5 [file] [log] [blame]
Lawrence Tang079d5812022-07-12 14:15:32 +01001{
2 "$id": "cper-json-ia32x54-processor-section",
3 "$schema": "https://json-schema.org/draft/2020-12/schema",
4 "type": "object",
John Chung044afd02024-05-03 19:58:02 +08005 "required": [
6 "validationBits",
7 "localAPICID",
8 "cpuidInfo",
9 "processorErrorInfo",
10 "processorContextInfo"
11 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010012 "additionalProperties": false,
13 "properties": {
14 "validationBits": {
15 "type": "object",
John Chung044afd02024-05-03 19:58:02 +080016 "required": [
17 "localAPICIDValid",
18 "cpuIDInfoValid",
19 "processorErrorInfoNum",
20 "processorContextInfoNum"
21 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010022 "properties": {
23 "localAPICIDValid": {
24 "type": "boolean"
25 },
26 "cpuIDInfoValid": {
27 "type": "boolean"
28 },
29 "processorErrorInfoNum": {
30 "type": "integer",
31 "minimum": 0
32 },
33 "processorContextInfoNum": {
34 "type": "integer",
35 "minimum": 0
36 }
37 }
38 },
39 "localAPICID": {
40 "type": "integer"
41 },
42 "cpuidInfo": {
43 "type": "object",
44 "required": ["eax", "ebx", "ecx", "edx"],
45 "properties": {
46 "eax": {
47 "type": "integer"
48 },
49 "ebx": {
50 "type": "integer"
51 },
52 "ecx": {
53 "type": "integer"
54 },
55 "edx": {
56 "type": "integer"
57 }
58 }
59 },
60 "processorErrorInfo": {
61 "type": "array",
62 "items": {
63 "type": "object",
John Chung044afd02024-05-03 19:58:02 +080064 "required": [
65 "type",
66 "validationBits",
67 "checkInfo",
68 "targetAddressID",
69 "requestorID",
70 "responderID",
71 "instructionPointer"
72 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010073 "additionalProperties": false,
74 "properties": {
75 "type": {
Lawrence Tang3592da72022-07-21 16:50:07 +010076 "type": "object",
77 "required": ["guid", "name"],
78 "properties": {
79 "guid": {
80 "type": "string"
81 },
82 "name": {
83 "type": "string"
84 }
85 }
Lawrence Tang079d5812022-07-12 14:15:32 +010086 },
87 "validationBits": {
88 "type": "object",
John Chung044afd02024-05-03 19:58:02 +080089 "required": [
90 "checkInfoValid",
91 "targetAddressIDValid",
92 "requestorIDValid",
93 "responderIDValid",
94 "instructionPointerValid"
95 ],
Lawrence Tang079d5812022-07-12 14:15:32 +010096 "additionalProperties": false,
97 "properties": {
98 "checkInfoValid": {
99 "type": "boolean"
100 },
101 "targetAddressIDValid": {
102 "type": "boolean"
103 },
104 "requestorIDValid": {
105 "type": "boolean"
106 },
107 "responderIDValid": {
108 "type": "boolean"
109 },
110 "instructionPointerValid": {
111 "type": "boolean"
112 }
113 }
114 },
115 "checkInfo": {
John Chung044afd02024-05-03 19:58:02 +0800116 "type": "object",
Lawrence Tang079d5812022-07-12 14:15:32 +0100117 "oneOf": [
118 {
119 "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 {
202 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800203 "required": [
204 "validationBits",
205 "transactionType",
206 "operation",
207 "level",
208 "processorContextCorrupt",
209 "uncorrected",
210 "preciseIP",
211 "restartableIP",
212 "overflow",
213 "participationType",
214 "timedOut",
215 "addressSpace"
216 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100217 "additionalProperties": false,
218 "properties": {
219 "validationBits": {
220 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800221 "required": [
222 "transactionTypeValid",
223 "operationValid",
224 "levelValid",
225 "processorContextCorruptValid",
226 "uncorrectedValid",
227 "preciseIPValid",
228 "restartableIPValid",
229 "overflowValid",
230 "participationTypeValid",
231 "timedOutValid",
232 "addressSpaceValid"
233 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100234 "properties": {
235 "transactionTypeValid": {
236 "type": "boolean"
237 },
238 "operationValid": {
239 "type": "boolean"
240 },
241 "levelValid": {
242 "type": "boolean"
243 },
244 "processorContextCorruptValid": {
245 "type": "boolean"
246 },
247 "uncorrectedValid": {
248 "type": "boolean"
249 },
250 "preciseIPValid": {
251 "type": "boolean"
252 },
253 "restartableIPValid": {
254 "type": "boolean"
255 },
256 "overflowValid": {
257 "type": "boolean"
258 },
259 "participationTypeValid": {
260 "type": "boolean"
261 },
262 "timedOutValid": {
263 "type": "boolean"
Lawrence Tangd34f2b12022-07-19 15:36:31 +0100264 },
265 "addressSpaceValid": {
266 "type": "boolean"
Lawrence Tang079d5812022-07-12 14:15:32 +0100267 }
268 }
269 },
270 "transactionType": {
271 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100272 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100273 },
274 "operation": {
275 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100276 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100277 },
278 "level": {
279 "type": "integer",
280 "minimum": 0
281 },
282 "processorContextCorrupt": {
283 "type": "boolean"
284 },
285 "uncorrected": {
286 "type": "boolean"
287 },
288 "preciseIP": {
289 "type": "boolean"
290 },
291 "restartableIP": {
292 "type": "boolean"
293 },
294 "overflow": {
295 "type": "boolean"
296 },
297 "participationType": {
298 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100299 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100300 },
301 "addressSpace": {
302 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100303 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100304 },
305 "timedOut": {
306 "type": "boolean"
307 }
308 }
309 },
310 {
311 "type": "object",
312 "required": [],
313 "additionalProperties": false,
314 "properties": {
315 "validationBits": {
316 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800317 "required": [
318 "errorTypeValid",
319 "processorContextCorruptValid",
320 "uncorrectedValid",
321 "preciseIPValid",
322 "restartableIPValid",
323 "overflowValid"
324 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100325 "properties": {
326 "errorTypeValid": {
327 "type": "boolean"
328 },
329 "processorContextCorruptValid": {
330 "type": "boolean"
331 },
332 "uncorrectedValid": {
333 "type": "boolean"
334 },
335 "preciseIPValid": {
336 "type": "boolean"
337 },
338 "restartableIPValid": {
339 "type": "boolean"
340 },
341 "overflowValid": {
342 "type": "boolean"
343 }
344 }
345 },
346 "errorType": {
347 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100348 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100349 },
350 "processorContextCorrupt": {
351 "type": "boolean"
352 },
353 "uncorrected": {
354 "type": "boolean"
355 },
356 "preciseIP": {
357 "type": "boolean"
358 },
359 "restartableIP": {
360 "type": "boolean"
361 },
362 "overflow": {
363 "type": "boolean"
364 }
365 }
366 }
367 ]
368 },
369 "targetAddressID": {
370 "type": "integer"
371 },
372 "requestorID": {
373 "type": "integer"
374 },
375 "responderID": {
376 "type": "integer"
377 },
378 "instructionPointer": {
379 "type": "integer"
380 }
381 }
382 }
383 },
384 "processorContextInfo": {
385 "type": "array",
386 "items": {
387 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800388 "required": [
389 "registerContextType",
390 "registerArraySize",
391 "msrAddress",
392 "mmRegisterAddress"
393 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100394 "additionalProperties": false,
395 "properties": {
396 "registerContextType": {
397 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100398 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100399 },
400 "registerArraySize": {
401 "type": "integer"
402 },
403 "msrAddress": {
404 "type": "integer"
405 },
406 "mmRegisterAddress": {
407 "type": "integer"
408 },
409 "registerArray": {
410 "type": "object",
411 "oneOf": [
412 {
413 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800414 "required": [
415 "eax",
416 "ebx",
417 "ecx",
418 "edx",
419 "esi",
420 "edi",
421 "ebp",
422 "esp",
423 "cs",
424 "ds",
425 "ss",
426 "es",
427 "fs",
428 "gs",
429 "eflags",
430 "eip",
431 "cr0",
432 "cr1",
433 "cr2",
434 "cr3",
435 "cr4",
436 "gdtr",
437 "idtr",
438 "ldtr",
439 "tr"
440 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100441 "additionalProperties": false,
442 "properties": {
443 "eax": { "type": "integer" },
444 "ebx": { "type": "integer" },
445 "ecx": { "type": "integer" },
446 "edx": { "type": "integer" },
447 "esi": { "type": "integer" },
448 "edi": { "type": "integer" },
449 "ebp": { "type": "integer" },
450 "esp": { "type": "integer" },
451 "cs": { "type": "integer" },
452 "ds": { "type": "integer" },
453 "ss": { "type": "integer" },
454 "es": { "type": "integer" },
455 "fs": { "type": "integer" },
456 "gs": { "type": "integer" },
457 "eflags": { "type": "integer" },
458 "eip": { "type": "integer" },
459 "cr0": { "type": "integer" },
460 "cr1": { "type": "integer" },
461 "cr2": { "type": "integer" },
462 "cr3": { "type": "integer" },
463 "cr4": { "type": "integer" },
464 "gdtr": { "type": "integer" },
465 "idtr": { "type": "integer" },
466 "ldtr": { "type": "integer" },
467 "tr": { "type": "integer" }
468 }
469 },
470 {
471 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800472 "required": [
473 "rax",
474 "rbx",
475 "rcx",
476 "rdx",
477 "rsi",
478 "rdi",
479 "rbp",
480 "rsp",
481 "r8",
482 "r9",
483 "r10",
484 "r11",
485 "r12",
486 "r13",
487 "r14",
488 "r15",
489 "cs",
490 "ds",
491 "es",
492 "fs",
493 "gs",
494 "rflags",
495 "eip",
496 "cr0",
497 "cr1",
498 "cr2",
499 "cr3",
500 "cr4",
501 "cr8",
502 "gdtr_0",
503 "gdtr_1",
504 "idtr_0",
505 "idtr_1",
506 "ldtr",
507 "tr"
508 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100509 "additionalProperties": false,
510 "properties": {
511 "rax": { "type": "integer" },
512 "rbx": { "type": "integer" },
513 "rcx": { "type": "integer" },
514 "rdx": { "type": "integer" },
515 "rsi": { "type": "integer" },
516 "rdi": { "type": "integer" },
517 "rbp": { "type": "integer" },
518 "rsp": { "type": "integer" },
519 "r8": { "type": "integer" },
520 "r9": { "type": "integer" },
521 "r10": { "type": "integer" },
522 "r11": { "type": "integer" },
523 "r12": { "type": "integer" },
524 "r13": { "type": "integer" },
525 "r14": { "type": "integer" },
526 "r15": { "type": "integer" },
527 "cs": { "type": "integer" },
528 "ds": { "type": "integer" },
529 "ss": { "type": "integer" },
530 "es": { "type": "integer" },
531 "fs": { "type": "integer" },
532 "gs": { "type": "integer" },
533 "rflags": { "type": "integer" },
534 "eip": { "type": "integer" },
535 "cr0": { "type": "integer" },
536 "cr1": { "type": "integer" },
537 "cr2": { "type": "integer" },
538 "cr3": { "type": "integer" },
539 "cr4": { "type": "integer" },
540 "cr8": { "type": "integer" },
541 "gdtr_0": { "type": "integer" },
542 "gdtr_1": { "type": "integer" },
543 "idtr_0": { "type": "integer" },
544 "idtr_1": { "type": "integer" },
545 "ldtr": { "type": "integer" },
546 "tr": { "type": "integer" }
547 }
548 },
549 {
550 "type": "object",
551 "required": ["data"],
552 "additionalProperties": false,
553 "properties": {
554 "data": {
555 "type": "string"
556 }
557 }
558 }
559 ]
560 }
561 }
562 }
563 }
564 }
John Chung044afd02024-05-03 19:58:02 +0800565}