xref: /openbmc/libcper/specification/json/sections/cper-ia32x64-processor.json (revision 75a602866f7cecc4fd66abad29ffdf36d74498aa)
1{
2    "$schema": "https://json-schema.org/draft/2020-12/schema",
3    "type": "object",
4    "description": "IA32x64 Processor Error Section",
5    "required": ["processorErrorInfoNum", "processorContextInfoNum"],
6    "additionalProperties": false,
7    "properties": {
8        "processorErrorInfoNum": {
9            "type": "integer",
10            "description": "This is the number of Error Information structures."
11        },
12        "processorContextInfoNum": {
13            "type": "integer",
14            "description": "This is the number of Context Information structures."
15        },
16        "localAPICID": {
17            "type": "integer",
18            "description": "This is the processor APIC ID programmed into the APIC ID registers."
19        },
20        "cpuidInfo": {
21            "type": "object",
22            "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.",
23            "required": ["eax", "ebx", "ecx", "edx"],
24            "properties": {
25                "eax": {
26                    "type": "integer"
27                },
28                "ebx": {
29                    "type": "integer"
30                },
31                "ecx": {
32                    "type": "integer"
33                },
34                "edx": {
35                    "type": "integer"
36                }
37            }
38        },
39        "processorErrorInfo": {
40            "type": "array",
41            "description": "Array of processor error information structure.",
42            "items": {
43                "type": "object",
44                "required": ["type"],
45                "additionalProperties": false,
46                "properties": {
47                    "type": {
48                        "type": "object",
49                        "additionalProperties": false,
50                        "required": ["guid", "name"],
51                        "properties": {
52                            "guid": {
53                                "type": "string"
54                            },
55                            "name": {
56                                "type": "string"
57                            }
58                        }
59                    },
60                    "checkInfo": {
61                        "type": "object",
62                        "required": [],
63                        "additionalProperties": false,
64                        "properties": {
65                            "transactionType": {
66                                "type": "object",
67                                "$ref": "./common/cper-json-nvp.json"
68                            },
69                            "operation": {
70                                "type": "object",
71                                "$ref": "./common/cper-json-nvp.json"
72                            },
73                            "level": {
74                                "type": "integer",
75                                "minimum": 0
76                            },
77                            "processorContextCorrupt": {
78                                "type": "boolean"
79                            },
80                            "uncorrected": {
81                                "type": "boolean"
82                            },
83                            "preciseIP": {
84                                "type": "boolean"
85                            },
86                            "restartableIP": {
87                                "type": "boolean"
88                            },
89                            "overflow": {
90                                "type": "boolean"
91                            },
92                            "participationType": {
93                                "type": "object",
94                                "$ref": "./common/cper-json-nvp.json"
95                            },
96                            "addressSpace": {
97                                "type": "object",
98                                "$ref": "./common/cper-json-nvp.json"
99                            },
100                            "timedOut": {
101                                "type": "boolean"
102                            },
103                            "errorType": {
104                                "type": "object",
105                                "$ref": "./common/cper-json-nvp.json"
106                            }
107                        }
108                    },
109                    "targetAddressID": {
110                        "type": "integer"
111                    },
112                    "requestorID": {
113                        "type": "integer"
114                    },
115                    "responderID": {
116                        "type": "integer"
117                    },
118                    "instructionPointer": {
119                        "type": "integer"
120                    }
121                }
122            }
123        },
124        "processorContextInfo": {
125            "type": "array",
126            "description": "This is a variable size field providing the information for the processor context state such as MC Bank MSRs and general registers.",
127            "items": {
128                "type": ["object", "null"],
129                "required": [
130                    "registerContextType",
131                    "registerArraySize",
132                    "msrAddress",
133                    "mmRegisterAddress"
134                ],
135                "additionalProperties": false,
136                "properties": {
137                    "registerContextType": {
138                        "type": "object",
139                        "$ref": "./common/cper-json-nvp.json"
140                    },
141                    "registerArraySize": {
142                        "type": "integer"
143                    },
144                    "msrAddress": {
145                        "type": "integer"
146                    },
147                    "mmRegisterAddress": {
148                        "type": "integer"
149                    },
150                    "registerArray": {
151                        "type": "object",
152                        "oneOf": [
153                            {
154                                "$id": "cper-json-registerarray0",
155                                "type": "object",
156                                "required": [
157                                    "eax",
158                                    "ebx",
159                                    "ecx",
160                                    "edx",
161                                    "esi",
162                                    "edi",
163                                    "ebp",
164                                    "esp",
165                                    "cs",
166                                    "ds",
167                                    "ss",
168                                    "es",
169                                    "fs",
170                                    "gs",
171                                    "eflags",
172                                    "eip",
173                                    "cr0",
174                                    "cr1",
175                                    "cr2",
176                                    "cr3",
177                                    "cr4",
178                                    "gdtr",
179                                    "idtr",
180                                    "ldtr",
181                                    "tr"
182                                ],
183                                "additionalProperties": false,
184                                "properties": {
185                                    "eax": {
186                                        "type": "integer"
187                                    },
188                                    "ebx": {
189                                        "type": "integer"
190                                    },
191                                    "ecx": {
192                                        "type": "integer"
193                                    },
194                                    "edx": {
195                                        "type": "integer"
196                                    },
197                                    "esi": {
198                                        "type": "integer"
199                                    },
200                                    "edi": {
201                                        "type": "integer"
202                                    },
203                                    "ebp": {
204                                        "type": "integer"
205                                    },
206                                    "esp": {
207                                        "type": "integer"
208                                    },
209                                    "cs": {
210                                        "type": "integer"
211                                    },
212                                    "ds": {
213                                        "type": "integer"
214                                    },
215                                    "ss": {
216                                        "type": "integer"
217                                    },
218                                    "es": {
219                                        "type": "integer"
220                                    },
221                                    "fs": {
222                                        "type": "integer"
223                                    },
224                                    "gs": {
225                                        "type": "integer"
226                                    },
227                                    "eflags": {
228                                        "type": "integer"
229                                    },
230                                    "eip": {
231                                        "type": "integer"
232                                    },
233                                    "cr0": {
234                                        "type": "integer"
235                                    },
236                                    "cr1": {
237                                        "type": "integer"
238                                    },
239                                    "cr2": {
240                                        "type": "integer"
241                                    },
242                                    "cr3": {
243                                        "type": "integer"
244                                    },
245                                    "cr4": {
246                                        "type": "integer"
247                                    },
248                                    "gdtr": {
249                                        "type": "integer"
250                                    },
251                                    "idtr": {
252                                        "type": "integer"
253                                    },
254                                    "ldtr": {
255                                        "type": "integer"
256                                    },
257                                    "tr": {
258                                        "type": "integer"
259                                    }
260                                }
261                            },
262                            {
263                                "$id": "cper-json-registerarray1",
264                                "type": "object",
265                                "required": [
266                                    "rax",
267                                    "rbx",
268                                    "rcx",
269                                    "rdx",
270                                    "rsi",
271                                    "rdi",
272                                    "rbp",
273                                    "rsp",
274                                    "r8",
275                                    "r9",
276                                    "r10",
277                                    "r11",
278                                    "r12",
279                                    "r13",
280                                    "r14",
281                                    "r15",
282                                    "cs",
283                                    "ds",
284                                    "es",
285                                    "fs",
286                                    "gs",
287                                    "rflags",
288                                    "eip",
289                                    "cr0",
290                                    "cr1",
291                                    "cr2",
292                                    "cr3",
293                                    "cr4",
294                                    "cr8",
295                                    "gdtr_0",
296                                    "gdtr_1",
297                                    "idtr_0",
298                                    "idtr_1",
299                                    "ldtr",
300                                    "tr"
301                                ],
302                                "additionalProperties": false,
303                                "properties": {
304                                    "rax": {
305                                        "type": "integer"
306                                    },
307                                    "rbx": {
308                                        "type": "integer"
309                                    },
310                                    "rcx": {
311                                        "type": "integer"
312                                    },
313                                    "rdx": {
314                                        "type": "integer"
315                                    },
316                                    "rsi": {
317                                        "type": "integer"
318                                    },
319                                    "rdi": {
320                                        "type": "integer"
321                                    },
322                                    "rbp": {
323                                        "type": "integer"
324                                    },
325                                    "rsp": {
326                                        "type": "integer"
327                                    },
328                                    "r8": {
329                                        "type": "integer"
330                                    },
331                                    "r9": {
332                                        "type": "integer"
333                                    },
334                                    "r10": {
335                                        "type": "integer"
336                                    },
337                                    "r11": {
338                                        "type": "integer"
339                                    },
340                                    "r12": {
341                                        "type": "integer"
342                                    },
343                                    "r13": {
344                                        "type": "integer"
345                                    },
346                                    "r14": {
347                                        "type": "integer"
348                                    },
349                                    "r15": {
350                                        "type": "integer"
351                                    },
352                                    "cs": {
353                                        "type": "integer"
354                                    },
355                                    "ds": {
356                                        "type": "integer"
357                                    },
358                                    "ss": {
359                                        "type": "integer"
360                                    },
361                                    "es": {
362                                        "type": "integer"
363                                    },
364                                    "fs": {
365                                        "type": "integer"
366                                    },
367                                    "gs": {
368                                        "type": "integer"
369                                    },
370                                    "rflags": {
371                                        "type": "integer"
372                                    },
373                                    "eip": {
374                                        "type": "integer"
375                                    },
376                                    "cr0": {
377                                        "type": "integer"
378                                    },
379                                    "cr1": {
380                                        "type": "integer"
381                                    },
382                                    "cr2": {
383                                        "type": "integer"
384                                    },
385                                    "cr3": {
386                                        "type": "integer"
387                                    },
388                                    "cr4": {
389                                        "type": "integer"
390                                    },
391                                    "cr8": {
392                                        "type": "integer"
393                                    },
394                                    "gdtr_0": {
395                                        "type": "integer"
396                                    },
397                                    "gdtr_1": {
398                                        "type": "integer"
399                                    },
400                                    "idtr_0": {
401                                        "type": "integer"
402                                    },
403                                    "idtr_1": {
404                                        "type": "integer"
405                                    },
406                                    "ldtr": {
407                                        "type": "integer"
408                                    },
409                                    "tr": {
410                                        "type": "integer"
411                                    }
412                                }
413                            },
414                            {
415                                "$id": "cper-json-registerarray2",
416                                "type": "object",
417                                "required": ["data"],
418                                "additionalProperties": false,
419                                "properties": {
420                                    "data": {
421                                        "type": "string"
422                                    }
423                                }
424                            }
425                        ]
426                    }
427                }
428            }
429        }
430    }
431}
432