xref: /openbmc/libcper/specification/json/sections/cper-ia32x64-processor.json (revision d9835a173ed9611090acc6d51493128a5e387385)
1{
2    "$schema": "https://json-schema.org/draft/2020-12/schema",
3    "type": "object",
4    "required": [
5        "validationBits",
6        "localAPICID",
7        "cpuidInfo",
8        "processorErrorInfo",
9        "processorContextInfo"
10    ],
11    "additionalProperties": false,
12    "properties": {
13        "validationBits": {
14            "type": "object",
15            "description": "Indicates which fields are valid in the section.",
16            "required": [
17                "localAPICIDValid",
18                "cpuIDInfoValid",
19                "processorErrorInfoNum",
20                "processorContextInfoNum"
21            ],
22            "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            "description": "This is the processor APIC ID programmed into the APIC ID registers."
42        },
43        "cpuidInfo": {
44            "type": "object",
45            "description": "This field represents the CPU ID structure of 48 bytes and returns Model, Family, and stepping information as provided by the CPUID instruction with EAX=1 input and output values from EAX, EBX, ECX, and EDX null extended to 64-bits.",
46            "required": ["eax", "ebx", "ecx", "edx"],
47            "properties": {
48                "eax": {
49                    "type": "integer"
50                },
51                "ebx": {
52                    "type": "integer"
53                },
54                "ecx": {
55                    "type": "integer"
56                },
57                "edx": {
58                    "type": "integer"
59                }
60            }
61        },
62        "processorErrorInfo": {
63            "type": "array",
64            "description": "Array of processor error information structure.",
65            "items": {
66                "type": "object",
67                "required": [
68                    "type",
69                    "validationBits",
70                    "checkInfo",
71                    "targetAddressID",
72                    "requestorID",
73                    "responderID",
74                    "instructionPointer"
75                ],
76                "additionalProperties": false,
77                "properties": {
78                    "type": {
79                        "type": "object",
80                        "required": ["guid", "name"],
81                        "properties": {
82                            "guid": {
83                                "type": "string"
84                            },
85                            "name": {
86                                "type": "string"
87                            }
88                        }
89                    },
90                    "validationBits": {
91                        "type": "object",
92                        "required": [
93                            "checkInfoValid",
94                            "targetAddressIDValid",
95                            "requestorIDValid",
96                            "responderIDValid",
97                            "instructionPointerValid"
98                        ],
99                        "additionalProperties": false,
100                        "properties": {
101                            "checkInfoValid": {
102                                "type": "boolean"
103                            },
104                            "targetAddressIDValid": {
105                                "type": "boolean"
106                            },
107                            "requestorIDValid": {
108                                "type": "boolean"
109                            },
110                            "responderIDValid": {
111                                "type": "boolean"
112                            },
113                            "instructionPointerValid": {
114                                "type": "boolean"
115                            }
116                        }
117                    },
118                    "checkInfo": {
119                        "type": "object",
120                        "oneOf": [
121                            {
122                                "$id": "cper-json-checkinfo0",
123                                "type": "object",
124                                "required": [
125                                    "validationBits",
126                                    "transactionType",
127                                    "operation",
128                                    "level",
129                                    "processorContextCorrupt",
130                                    "uncorrected",
131                                    "preciseIP",
132                                    "restartableIP",
133                                    "overflow"
134                                ],
135                                "additionalProperties": false,
136                                "properties": {
137                                    "validationBits": {
138                                        "type": "object",
139                                        "required": [
140                                            "transactionTypeValid",
141                                            "operationValid",
142                                            "levelValid",
143                                            "processorContextCorruptValid",
144                                            "uncorrectedValid",
145                                            "preciseIPValid",
146                                            "restartableIPValid",
147                                            "overflowValid"
148                                        ],
149                                        "properties": {
150                                            "transactionTypeValid": {
151                                                "type": "boolean"
152                                            },
153                                            "operationValid": {
154                                                "type": "boolean"
155                                            },
156                                            "levelValid": {
157                                                "type": "boolean"
158                                            },
159                                            "processorContextCorruptValid": {
160                                                "type": "boolean"
161                                            },
162                                            "uncorrectedValid": {
163                                                "type": "boolean"
164                                            },
165                                            "preciseIPValid": {
166                                                "type": "boolean"
167                                            },
168                                            "restartableIPValid": {
169                                                "type": "boolean"
170                                            },
171                                            "overflowValid": {
172                                                "type": "boolean"
173                                            }
174                                        }
175                                    },
176                                    "transactionType": {
177                                        "type": "object",
178                                        "$ref": "./common/cper-json-nvp.json"
179                                    },
180                                    "operation": {
181                                        "type": "object",
182                                        "$ref": "./common/cper-json-nvp.json"
183                                    },
184                                    "level": {
185                                        "type": "integer",
186                                        "minimum": 0
187                                    },
188                                    "processorContextCorrupt": {
189                                        "type": "boolean"
190                                    },
191                                    "uncorrected": {
192                                        "type": "boolean"
193                                    },
194                                    "preciseIP": {
195                                        "type": "boolean"
196                                    },
197                                    "restartableIP": {
198                                        "type": "boolean"
199                                    },
200                                    "overflow": {
201                                        "type": "boolean"
202                                    }
203                                }
204                            },
205                            {
206                                "$id": "cper-json-checkinfo1",
207                                "type": "object",
208                                "required": [
209                                    "validationBits",
210                                    "transactionType",
211                                    "operation",
212                                    "level",
213                                    "processorContextCorrupt",
214                                    "uncorrected",
215                                    "preciseIP",
216                                    "restartableIP",
217                                    "overflow",
218                                    "participationType",
219                                    "timedOut",
220                                    "addressSpace"
221                                ],
222                                "additionalProperties": false,
223                                "properties": {
224                                    "validationBits": {
225                                        "type": "object",
226                                        "required": [
227                                            "transactionTypeValid",
228                                            "operationValid",
229                                            "levelValid",
230                                            "processorContextCorruptValid",
231                                            "uncorrectedValid",
232                                            "preciseIPValid",
233                                            "restartableIPValid",
234                                            "overflowValid",
235                                            "participationTypeValid",
236                                            "timedOutValid",
237                                            "addressSpaceValid"
238                                        ],
239                                        "properties": {
240                                            "transactionTypeValid": {
241                                                "type": "boolean"
242                                            },
243                                            "operationValid": {
244                                                "type": "boolean"
245                                            },
246                                            "levelValid": {
247                                                "type": "boolean"
248                                            },
249                                            "processorContextCorruptValid": {
250                                                "type": "boolean"
251                                            },
252                                            "uncorrectedValid": {
253                                                "type": "boolean"
254                                            },
255                                            "preciseIPValid": {
256                                                "type": "boolean"
257                                            },
258                                            "restartableIPValid": {
259                                                "type": "boolean"
260                                            },
261                                            "overflowValid": {
262                                                "type": "boolean"
263                                            },
264                                            "participationTypeValid": {
265                                                "type": "boolean"
266                                            },
267                                            "timedOutValid": {
268                                                "type": "boolean"
269                                            },
270                                            "addressSpaceValid": {
271                                                "type": "boolean"
272                                            }
273                                        }
274                                    },
275                                    "transactionType": {
276                                        "type": "object",
277                                        "$ref": "./common/cper-json-nvp.json"
278                                    },
279                                    "operation": {
280                                        "type": "object",
281                                        "$ref": "./common/cper-json-nvp.json"
282                                    },
283                                    "level": {
284                                        "type": "integer",
285                                        "minimum": 0
286                                    },
287                                    "processorContextCorrupt": {
288                                        "type": "boolean"
289                                    },
290                                    "uncorrected": {
291                                        "type": "boolean"
292                                    },
293                                    "preciseIP": {
294                                        "type": "boolean"
295                                    },
296                                    "restartableIP": {
297                                        "type": "boolean"
298                                    },
299                                    "overflow": {
300                                        "type": "boolean"
301                                    },
302                                    "participationType": {
303                                        "type": "object",
304                                        "$ref": "./common/cper-json-nvp.json"
305                                    },
306                                    "addressSpace": {
307                                        "type": "object",
308                                        "$ref": "./common/cper-json-nvp.json"
309                                    },
310                                    "timedOut": {
311                                        "type": "boolean"
312                                    }
313                                }
314                            },
315                            {
316                                "$id": "cper-json-checkinfo2",
317                                "type": "object",
318                                "required": [],
319                                "additionalProperties": false,
320                                "properties": {
321                                    "validationBits": {
322                                        "type": "object",
323                                        "required": [
324                                            "errorTypeValid",
325                                            "processorContextCorruptValid",
326                                            "uncorrectedValid",
327                                            "preciseIPValid",
328                                            "restartableIPValid",
329                                            "overflowValid"
330                                        ],
331                                        "properties": {
332                                            "errorTypeValid": {
333                                                "type": "boolean"
334                                            },
335                                            "processorContextCorruptValid": {
336                                                "type": "boolean"
337                                            },
338                                            "uncorrectedValid": {
339                                                "type": "boolean"
340                                            },
341                                            "preciseIPValid": {
342                                                "type": "boolean"
343                                            },
344                                            "restartableIPValid": {
345                                                "type": "boolean"
346                                            },
347                                            "overflowValid": {
348                                                "type": "boolean"
349                                            }
350                                        }
351                                    },
352                                    "errorType": {
353                                        "type": "object",
354                                        "$ref": "./common/cper-json-nvp.json"
355                                    },
356                                    "processorContextCorrupt": {
357                                        "type": "boolean"
358                                    },
359                                    "uncorrected": {
360                                        "type": "boolean"
361                                    },
362                                    "preciseIP": {
363                                        "type": "boolean"
364                                    },
365                                    "restartableIP": {
366                                        "type": "boolean"
367                                    },
368                                    "overflow": {
369                                        "type": "boolean"
370                                    }
371                                }
372                            }
373                        ]
374                    },
375                    "targetAddressID": {
376                        "type": "integer"
377                    },
378                    "requestorID": {
379                        "type": "integer"
380                    },
381                    "responderID": {
382                        "type": "integer"
383                    },
384                    "instructionPointer": {
385                        "type": "integer"
386                    }
387                }
388            }
389        },
390        "processorContextInfo": {
391            "type": "array",
392            "description": "This is a variable size field providing the information for the processor context state such as MC Bank MSRs and general registers.",
393            "items": {
394                "type": "object",
395                "required": [
396                    "registerContextType",
397                    "registerArraySize",
398                    "msrAddress",
399                    "mmRegisterAddress"
400                ],
401                "additionalProperties": false,
402                "properties": {
403                    "registerContextType": {
404                        "type": "object",
405                        "$ref": "./common/cper-json-nvp.json"
406                    },
407                    "registerArraySize": {
408                        "type": "integer"
409                    },
410                    "msrAddress": {
411                        "type": "integer"
412                    },
413                    "mmRegisterAddress": {
414                        "type": "integer"
415                    },
416                    "registerArray": {
417                        "type": "object",
418                        "oneOf": [
419                            {
420                                "$id": "cper-json-registerarray0",
421                                "type": "object",
422                                "required": [
423                                    "eax",
424                                    "ebx",
425                                    "ecx",
426                                    "edx",
427                                    "esi",
428                                    "edi",
429                                    "ebp",
430                                    "esp",
431                                    "cs",
432                                    "ds",
433                                    "ss",
434                                    "es",
435                                    "fs",
436                                    "gs",
437                                    "eflags",
438                                    "eip",
439                                    "cr0",
440                                    "cr1",
441                                    "cr2",
442                                    "cr3",
443                                    "cr4",
444                                    "gdtr",
445                                    "idtr",
446                                    "ldtr",
447                                    "tr"
448                                ],
449                                "additionalProperties": false,
450                                "properties": {
451                                    "eax": { "type": "integer" },
452                                    "ebx": { "type": "integer" },
453                                    "ecx": { "type": "integer" },
454                                    "edx": { "type": "integer" },
455                                    "esi": { "type": "integer" },
456                                    "edi": { "type": "integer" },
457                                    "ebp": { "type": "integer" },
458                                    "esp": { "type": "integer" },
459                                    "cs": { "type": "integer" },
460                                    "ds": { "type": "integer" },
461                                    "ss": { "type": "integer" },
462                                    "es": { "type": "integer" },
463                                    "fs": { "type": "integer" },
464                                    "gs": { "type": "integer" },
465                                    "eflags": { "type": "integer" },
466                                    "eip": { "type": "integer" },
467                                    "cr0": { "type": "integer" },
468                                    "cr1": { "type": "integer" },
469                                    "cr2": { "type": "integer" },
470                                    "cr3": { "type": "integer" },
471                                    "cr4": { "type": "integer" },
472                                    "gdtr": { "type": "integer" },
473                                    "idtr": { "type": "integer" },
474                                    "ldtr": { "type": "integer" },
475                                    "tr": { "type": "integer" }
476                                }
477                            },
478                            {
479                                "$id": "cper-json-registerarray1",
480                                "type": "object",
481                                "required": [
482                                    "rax",
483                                    "rbx",
484                                    "rcx",
485                                    "rdx",
486                                    "rsi",
487                                    "rdi",
488                                    "rbp",
489                                    "rsp",
490                                    "r8",
491                                    "r9",
492                                    "r10",
493                                    "r11",
494                                    "r12",
495                                    "r13",
496                                    "r14",
497                                    "r15",
498                                    "cs",
499                                    "ds",
500                                    "es",
501                                    "fs",
502                                    "gs",
503                                    "rflags",
504                                    "eip",
505                                    "cr0",
506                                    "cr1",
507                                    "cr2",
508                                    "cr3",
509                                    "cr4",
510                                    "cr8",
511                                    "gdtr_0",
512                                    "gdtr_1",
513                                    "idtr_0",
514                                    "idtr_1",
515                                    "ldtr",
516                                    "tr"
517                                ],
518                                "additionalProperties": false,
519                                "properties": {
520                                    "rax": { "type": "integer" },
521                                    "rbx": { "type": "integer" },
522                                    "rcx": { "type": "integer" },
523                                    "rdx": { "type": "integer" },
524                                    "rsi": { "type": "integer" },
525                                    "rdi": { "type": "integer" },
526                                    "rbp": { "type": "integer" },
527                                    "rsp": { "type": "integer" },
528                                    "r8": { "type": "integer" },
529                                    "r9": { "type": "integer" },
530                                    "r10": { "type": "integer" },
531                                    "r11": { "type": "integer" },
532                                    "r12": { "type": "integer" },
533                                    "r13": { "type": "integer" },
534                                    "r14": { "type": "integer" },
535                                    "r15": { "type": "integer" },
536                                    "cs": { "type": "integer" },
537                                    "ds": { "type": "integer" },
538                                    "ss": { "type": "integer" },
539                                    "es": { "type": "integer" },
540                                    "fs": { "type": "integer" },
541                                    "gs": { "type": "integer" },
542                                    "rflags": { "type": "integer" },
543                                    "eip": { "type": "integer" },
544                                    "cr0": { "type": "integer" },
545                                    "cr1": { "type": "integer" },
546                                    "cr2": { "type": "integer" },
547                                    "cr3": { "type": "integer" },
548                                    "cr4": { "type": "integer" },
549                                    "cr8": { "type": "integer" },
550                                    "gdtr_0": { "type": "integer" },
551                                    "gdtr_1": { "type": "integer" },
552                                    "idtr_0": { "type": "integer" },
553                                    "idtr_1": { "type": "integer" },
554                                    "ldtr": { "type": "integer" },
555                                    "tr": { "type": "integer" }
556                                }
557                            },
558                            {
559                                "$id": "cper-json-registerarray2",
560                                "type": "object",
561                                "required": ["data"],
562                                "additionalProperties": false,
563                                "properties": {
564                                    "data": {
565                                        "type": "string"
566                                    }
567                                }
568                            }
569                        ]
570                    }
571                }
572            }
573        }
574    }
575}
576