blob: 371e19f0c78f5797b6a67ba36f744a141bff2e37 [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",
Ed Tanousda798dc2025-03-14 15:27:55 -07004 "description": "IA32x64 Processor Error Section",
Aushim Nagarkattiae8f6d92025-01-29 17:34:44 -08005 "required": ["processorErrorInfoNum", "processorContextInfoNum"],
Lawrence Tang079d5812022-07-12 14:15:32 +01006 "additionalProperties": false,
7 "properties": {
Aushim Nagarkattiae8f6d92025-01-29 17:34:44 -08008 "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."
Lawrence Tang079d5812022-07-12 14:15:32 +010015 },
16 "localAPICID": {
Andrew Adrianced9835a12024-12-05 14:41:42 -080017 "type": "integer",
18 "description": "This is the processor APIC ID programmed into the APIC ID registers."
Lawrence Tang079d5812022-07-12 14:15:32 +010019 },
20 "cpuidInfo": {
21 "type": "object",
Andrew Adrianced9835a12024-12-05 14:41:42 -080022 "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.",
Lawrence Tang079d5812022-07-12 14:15:32 +010023 "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",
Andrew Adrianced9835a12024-12-05 14:41:42 -080041 "description": "Array of processor error information structure.",
Lawrence Tang079d5812022-07-12 14:15:32 +010042 "items": {
43 "type": "object",
Aushim Nagarkattiae8f6d92025-01-29 17:34:44 -080044 "required": ["type"],
Lawrence Tang079d5812022-07-12 14:15:32 +010045 "additionalProperties": false,
46 "properties": {
47 "type": {
Lawrence Tang3592da72022-07-21 16:50:07 +010048 "type": "object",
Ed Tanous7a531ff2025-03-14 17:06:49 -070049 "additionalProperties": false,
Lawrence Tang3592da72022-07-21 16:50:07 +010050 "required": ["guid", "name"],
51 "properties": {
52 "guid": {
53 "type": "string"
54 },
55 "name": {
56 "type": "string"
57 }
58 }
Lawrence Tang079d5812022-07-12 14:15:32 +010059 },
Lawrence Tang079d5812022-07-12 14:15:32 +010060 "checkInfo": {
John Chung044afd02024-05-03 19:58:02 +080061 "type": "object",
Lawrence Tang079d5812022-07-12 14:15:32 +010062 "oneOf": [
63 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -070064 "$id": "cper-json-checkinfo0",
Lawrence Tang079d5812022-07-12 14:15:32 +010065 "type": "object",
Aushim Nagarkattiae8f6d92025-01-29 17:34:44 -080066 "required": [],
Lawrence Tang079d5812022-07-12 14:15:32 +010067 "additionalProperties": false,
68 "properties": {
Lawrence Tang079d5812022-07-12 14:15:32 +010069 "transactionType": {
70 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +010071 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +010072 },
73 "operation": {
74 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +010075 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +010076 },
77 "level": {
78 "type": "integer",
79 "minimum": 0
80 },
81 "processorContextCorrupt": {
82 "type": "boolean"
83 },
84 "uncorrected": {
85 "type": "boolean"
86 },
87 "preciseIP": {
88 "type": "boolean"
89 },
90 "restartableIP": {
91 "type": "boolean"
92 },
93 "overflow": {
94 "type": "boolean"
95 }
96 }
97 },
98 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -070099 "$id": "cper-json-checkinfo1",
Lawrence Tang079d5812022-07-12 14:15:32 +0100100 "type": "object",
Aushim Nagarkattiae8f6d92025-01-29 17:34:44 -0800101 "required": [],
Lawrence Tang079d5812022-07-12 14:15:32 +0100102 "additionalProperties": false,
103 "properties": {
Lawrence Tang079d5812022-07-12 14:15:32 +0100104 "transactionType": {
105 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100106 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100107 },
108 "operation": {
109 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100110 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100111 },
112 "level": {
113 "type": "integer",
114 "minimum": 0
115 },
116 "processorContextCorrupt": {
117 "type": "boolean"
118 },
119 "uncorrected": {
120 "type": "boolean"
121 },
122 "preciseIP": {
123 "type": "boolean"
124 },
125 "restartableIP": {
126 "type": "boolean"
127 },
128 "overflow": {
129 "type": "boolean"
130 },
131 "participationType": {
132 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100133 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100134 },
135 "addressSpace": {
136 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100137 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100138 },
139 "timedOut": {
140 "type": "boolean"
141 }
142 }
143 },
144 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700145 "$id": "cper-json-checkinfo2",
Lawrence Tang079d5812022-07-12 14:15:32 +0100146 "type": "object",
147 "required": [],
148 "additionalProperties": false,
149 "properties": {
Lawrence Tang079d5812022-07-12 14:15:32 +0100150 "errorType": {
151 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100152 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100153 },
154 "processorContextCorrupt": {
155 "type": "boolean"
156 },
157 "uncorrected": {
158 "type": "boolean"
159 },
160 "preciseIP": {
161 "type": "boolean"
162 },
163 "restartableIP": {
164 "type": "boolean"
165 },
166 "overflow": {
167 "type": "boolean"
168 }
169 }
170 }
171 ]
172 },
173 "targetAddressID": {
174 "type": "integer"
175 },
176 "requestorID": {
177 "type": "integer"
178 },
179 "responderID": {
180 "type": "integer"
181 },
182 "instructionPointer": {
183 "type": "integer"
184 }
185 }
186 }
187 },
188 "processorContextInfo": {
189 "type": "array",
Andrew Adrianced9835a12024-12-05 14:41:42 -0800190 "description": "This is a variable size field providing the information for the processor context state such as MC Bank MSRs and general registers.",
Lawrence Tang079d5812022-07-12 14:15:32 +0100191 "items": {
192 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800193 "required": [
194 "registerContextType",
195 "registerArraySize",
196 "msrAddress",
197 "mmRegisterAddress"
198 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100199 "additionalProperties": false,
200 "properties": {
201 "registerContextType": {
202 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100203 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100204 },
205 "registerArraySize": {
206 "type": "integer"
207 },
208 "msrAddress": {
209 "type": "integer"
210 },
211 "mmRegisterAddress": {
212 "type": "integer"
213 },
214 "registerArray": {
215 "type": "object",
216 "oneOf": [
217 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700218 "$id": "cper-json-registerarray0",
Lawrence Tang079d5812022-07-12 14:15:32 +0100219 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800220 "required": [
221 "eax",
222 "ebx",
223 "ecx",
224 "edx",
225 "esi",
226 "edi",
227 "ebp",
228 "esp",
229 "cs",
230 "ds",
231 "ss",
232 "es",
233 "fs",
234 "gs",
235 "eflags",
236 "eip",
237 "cr0",
238 "cr1",
239 "cr2",
240 "cr3",
241 "cr4",
242 "gdtr",
243 "idtr",
244 "ldtr",
245 "tr"
246 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100247 "additionalProperties": false,
248 "properties": {
249 "eax": { "type": "integer" },
250 "ebx": { "type": "integer" },
251 "ecx": { "type": "integer" },
252 "edx": { "type": "integer" },
253 "esi": { "type": "integer" },
254 "edi": { "type": "integer" },
255 "ebp": { "type": "integer" },
256 "esp": { "type": "integer" },
257 "cs": { "type": "integer" },
258 "ds": { "type": "integer" },
259 "ss": { "type": "integer" },
260 "es": { "type": "integer" },
261 "fs": { "type": "integer" },
262 "gs": { "type": "integer" },
263 "eflags": { "type": "integer" },
264 "eip": { "type": "integer" },
265 "cr0": { "type": "integer" },
266 "cr1": { "type": "integer" },
267 "cr2": { "type": "integer" },
268 "cr3": { "type": "integer" },
269 "cr4": { "type": "integer" },
270 "gdtr": { "type": "integer" },
271 "idtr": { "type": "integer" },
272 "ldtr": { "type": "integer" },
273 "tr": { "type": "integer" }
274 }
275 },
276 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700277 "$id": "cper-json-registerarray1",
Lawrence Tang079d5812022-07-12 14:15:32 +0100278 "type": "object",
John Chung044afd02024-05-03 19:58:02 +0800279 "required": [
280 "rax",
281 "rbx",
282 "rcx",
283 "rdx",
284 "rsi",
285 "rdi",
286 "rbp",
287 "rsp",
288 "r8",
289 "r9",
290 "r10",
291 "r11",
292 "r12",
293 "r13",
294 "r14",
295 "r15",
296 "cs",
297 "ds",
298 "es",
299 "fs",
300 "gs",
301 "rflags",
302 "eip",
303 "cr0",
304 "cr1",
305 "cr2",
306 "cr3",
307 "cr4",
308 "cr8",
309 "gdtr_0",
310 "gdtr_1",
311 "idtr_0",
312 "idtr_1",
313 "ldtr",
314 "tr"
315 ],
Lawrence Tang079d5812022-07-12 14:15:32 +0100316 "additionalProperties": false,
317 "properties": {
318 "rax": { "type": "integer" },
319 "rbx": { "type": "integer" },
320 "rcx": { "type": "integer" },
321 "rdx": { "type": "integer" },
322 "rsi": { "type": "integer" },
323 "rdi": { "type": "integer" },
324 "rbp": { "type": "integer" },
325 "rsp": { "type": "integer" },
326 "r8": { "type": "integer" },
327 "r9": { "type": "integer" },
328 "r10": { "type": "integer" },
329 "r11": { "type": "integer" },
330 "r12": { "type": "integer" },
331 "r13": { "type": "integer" },
332 "r14": { "type": "integer" },
333 "r15": { "type": "integer" },
334 "cs": { "type": "integer" },
335 "ds": { "type": "integer" },
336 "ss": { "type": "integer" },
337 "es": { "type": "integer" },
338 "fs": { "type": "integer" },
339 "gs": { "type": "integer" },
340 "rflags": { "type": "integer" },
341 "eip": { "type": "integer" },
342 "cr0": { "type": "integer" },
343 "cr1": { "type": "integer" },
344 "cr2": { "type": "integer" },
345 "cr3": { "type": "integer" },
346 "cr4": { "type": "integer" },
347 "cr8": { "type": "integer" },
348 "gdtr_0": { "type": "integer" },
349 "gdtr_1": { "type": "integer" },
350 "idtr_0": { "type": "integer" },
351 "idtr_1": { "type": "integer" },
352 "ldtr": { "type": "integer" },
353 "tr": { "type": "integer" }
354 }
355 },
356 {
Aushim Nagarkatti382ad4c2024-09-19 13:39:04 -0700357 "$id": "cper-json-registerarray2",
Lawrence Tang079d5812022-07-12 14:15:32 +0100358 "type": "object",
359 "required": ["data"],
360 "additionalProperties": false,
361 "properties": {
362 "data": {
363 "type": "string"
364 }
365 }
366 }
367 ]
368 }
369 }
370 }
371 }
372 }
John Chung044afd02024-05-03 19:58:02 +0800373}