blob: 11aa819e14e92b23afab40ea61818cf9cc622067 [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",
5 "required": ["validationBits", "localAPICID", "cpuidInfo", "processorErrorInfo", "processorContextInfo"],
6 "additionalProperties": false,
7 "properties": {
8 "validationBits": {
9 "type": "object",
10 "required": ["localAPICIDValid", "cpuIDInfoValid", "processorErrorInfoNum", "processorContextInfoNum"],
11 "properties": {
12 "localAPICIDValid": {
13 "type": "boolean"
14 },
15 "cpuIDInfoValid": {
16 "type": "boolean"
17 },
18 "processorErrorInfoNum": {
19 "type": "integer",
20 "minimum": 0
21 },
22 "processorContextInfoNum": {
23 "type": "integer",
24 "minimum": 0
25 }
26 }
27 },
28 "localAPICID": {
29 "type": "integer"
30 },
31 "cpuidInfo": {
32 "type": "object",
33 "required": ["eax", "ebx", "ecx", "edx"],
34 "properties": {
35 "eax": {
36 "type": "integer"
37 },
38 "ebx": {
39 "type": "integer"
40 },
41 "ecx": {
42 "type": "integer"
43 },
44 "edx": {
45 "type": "integer"
46 }
47 }
48 },
49 "processorErrorInfo": {
50 "type": "array",
51 "items": {
52 "type": "object",
53 "required": ["type", "validationBits", "checkInfo", "targetAddressID", "requestorID", "responderID", "instructionPointer"],
54 "additionalProperties": false,
55 "properties": {
56 "type": {
57 "type": "string"
58 },
59 "validationBits": {
60 "type": "object",
61 "required": ["checkInfoValid", "targetAddressIDValid", "requestorIDValid", "responderIDValid", "instructionPointerValid"],
62 "additionalProperties": false,
63 "properties": {
64 "checkInfoValid": {
65 "type": "boolean"
66 },
67 "targetAddressIDValid": {
68 "type": "boolean"
69 },
70 "requestorIDValid": {
71 "type": "boolean"
72 },
73 "responderIDValid": {
74 "type": "boolean"
75 },
76 "instructionPointerValid": {
77 "type": "boolean"
78 }
79 }
80 },
81 "checkInfo": {
82 "type" : "object",
83 "oneOf": [
84 {
85 "type": "object",
86 "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "uncorrected", "preciseIP", "restartableIP", "overflow"],
87 "additionalProperties": false,
88 "properties": {
89 "validationBits": {
90 "type": "object",
91 "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "uncorrectedValid", "preciseIPValid", "restartableIPValid", "overflowValid"],
92 "properties": {
93 "transactionTypeValid": {
94 "type": "boolean"
95 },
96 "operationValid": {
97 "type": "boolean"
98 },
99 "levelValid": {
100 "type": "boolean"
101 },
102 "processorContextCorruptValid": {
103 "type": "boolean"
104 },
105 "uncorrectedValid": {
106 "type": "boolean"
107 },
108 "preciseIPValid": {
109 "type": "boolean"
110 },
111 "restartableIPValid": {
112 "type": "boolean"
113 },
114 "overflowValid": {
115 "type": "boolean"
116 }
117 }
118 },
119 "transactionType": {
120 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100121 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100122 },
123 "operation": {
124 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100125 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100126 },
127 "level": {
128 "type": "integer",
129 "minimum": 0
130 },
131 "processorContextCorrupt": {
132 "type": "boolean"
133 },
134 "uncorrected": {
135 "type": "boolean"
136 },
137 "preciseIP": {
138 "type": "boolean"
139 },
140 "restartableIP": {
141 "type": "boolean"
142 },
143 "overflow": {
144 "type": "boolean"
145 }
146 }
147 },
148 {
149 "type": "object",
150 "required": ["validationBits", "transactionType", "operation", "level", "processorContextCorrupt", "uncorrected", "preciseIP", "restartableIP", "overflow", "participationType", "timedOut", "addressSpace"],
151 "additionalProperties": false,
152 "properties": {
153 "validationBits": {
154 "type": "object",
Lawrence Tangd34f2b12022-07-19 15:36:31 +0100155 "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "uncorrectedValid", "preciseIPValid", "restartableIPValid", "overflowValid", "participationTypeValid", "timedOutValid", "addressSpaceValid"],
Lawrence Tang079d5812022-07-12 14:15:32 +0100156 "properties": {
157 "transactionTypeValid": {
158 "type": "boolean"
159 },
160 "operationValid": {
161 "type": "boolean"
162 },
163 "levelValid": {
164 "type": "boolean"
165 },
166 "processorContextCorruptValid": {
167 "type": "boolean"
168 },
169 "uncorrectedValid": {
170 "type": "boolean"
171 },
172 "preciseIPValid": {
173 "type": "boolean"
174 },
175 "restartableIPValid": {
176 "type": "boolean"
177 },
178 "overflowValid": {
179 "type": "boolean"
180 },
181 "participationTypeValid": {
182 "type": "boolean"
183 },
184 "timedOutValid": {
185 "type": "boolean"
Lawrence Tangd34f2b12022-07-19 15:36:31 +0100186 },
187 "addressSpaceValid": {
188 "type": "boolean"
Lawrence Tang079d5812022-07-12 14:15:32 +0100189 }
190 }
191 },
192 "transactionType": {
193 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100194 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100195 },
196 "operation": {
197 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100198 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100199 },
200 "level": {
201 "type": "integer",
202 "minimum": 0
203 },
204 "processorContextCorrupt": {
205 "type": "boolean"
206 },
207 "uncorrected": {
208 "type": "boolean"
209 },
210 "preciseIP": {
211 "type": "boolean"
212 },
213 "restartableIP": {
214 "type": "boolean"
215 },
216 "overflow": {
217 "type": "boolean"
218 },
219 "participationType": {
220 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100221 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100222 },
223 "addressSpace": {
224 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100225 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100226 },
227 "timedOut": {
228 "type": "boolean"
229 }
230 }
231 },
232 {
233 "type": "object",
234 "required": [],
235 "additionalProperties": false,
236 "properties": {
237 "validationBits": {
238 "type": "object",
239 "required": ["errorTypeValid", "processorContextCorruptValid", "uncorrectedValid", "preciseIPValid", "restartableIPValid", "overflowValid"],
240 "properties": {
241 "errorTypeValid": {
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 }
260 },
261 "errorType": {
262 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100263 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100264 },
265 "processorContextCorrupt": {
266 "type": "boolean"
267 },
268 "uncorrected": {
269 "type": "boolean"
270 },
271 "preciseIP": {
272 "type": "boolean"
273 },
274 "restartableIP": {
275 "type": "boolean"
276 },
277 "overflow": {
278 "type": "boolean"
279 }
280 }
281 }
282 ]
283 },
284 "targetAddressID": {
285 "type": "integer"
286 },
287 "requestorID": {
288 "type": "integer"
289 },
290 "responderID": {
291 "type": "integer"
292 },
293 "instructionPointer": {
294 "type": "integer"
295 }
296 }
297 }
298 },
299 "processorContextInfo": {
300 "type": "array",
301 "items": {
302 "type": "object",
303 "required": ["registerContextType", "registerArraySize", "msrAddress", "mmRegisterAddress"],
304 "additionalProperties": false,
305 "properties": {
306 "registerContextType": {
307 "type": "object",
Lawrence Tang8a2d7372022-07-12 16:44:49 +0100308 "$ref": "./common/cper-json-nvp.json"
Lawrence Tang079d5812022-07-12 14:15:32 +0100309 },
310 "registerArraySize": {
311 "type": "integer"
312 },
313 "msrAddress": {
314 "type": "integer"
315 },
316 "mmRegisterAddress": {
317 "type": "integer"
318 },
319 "registerArray": {
320 "type": "object",
321 "oneOf": [
322 {
323 "type": "object",
324 "required": ["eax", "ebx", "ecx", "edx", "esi", "edi", "ebp", "esp", "cs", "ds", "ss", "es", "fs", "gs", "eflags", "eip", "cr0", "cr1", "cr2", "cr3", "cr4", "gdtr", "idtr", "ldtr", "tr"],
325 "additionalProperties": false,
326 "properties": {
327 "eax": { "type": "integer" },
328 "ebx": { "type": "integer" },
329 "ecx": { "type": "integer" },
330 "edx": { "type": "integer" },
331 "esi": { "type": "integer" },
332 "edi": { "type": "integer" },
333 "ebp": { "type": "integer" },
334 "esp": { "type": "integer" },
335 "cs": { "type": "integer" },
336 "ds": { "type": "integer" },
337 "ss": { "type": "integer" },
338 "es": { "type": "integer" },
339 "fs": { "type": "integer" },
340 "gs": { "type": "integer" },
341 "eflags": { "type": "integer" },
342 "eip": { "type": "integer" },
343 "cr0": { "type": "integer" },
344 "cr1": { "type": "integer" },
345 "cr2": { "type": "integer" },
346 "cr3": { "type": "integer" },
347 "cr4": { "type": "integer" },
348 "gdtr": { "type": "integer" },
349 "idtr": { "type": "integer" },
350 "ldtr": { "type": "integer" },
351 "tr": { "type": "integer" }
352 }
353 },
354 {
355 "type": "object",
356 "required": ["rax", "rbx", "rcx", "rdx", "rsi", "rdi", "rbp", "rsp", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", "cs", "ds", "es", "fs", "gs", "rflags", "eip", "cr0", "cr1", "cr2", "cr3", "cr4", "cr8", "gdtr_0", "gdtr_1", "idtr_0", "idtr_1", "ldtr", "tr"],
357 "additionalProperties": false,
358 "properties": {
359 "rax": { "type": "integer" },
360 "rbx": { "type": "integer" },
361 "rcx": { "type": "integer" },
362 "rdx": { "type": "integer" },
363 "rsi": { "type": "integer" },
364 "rdi": { "type": "integer" },
365 "rbp": { "type": "integer" },
366 "rsp": { "type": "integer" },
367 "r8": { "type": "integer" },
368 "r9": { "type": "integer" },
369 "r10": { "type": "integer" },
370 "r11": { "type": "integer" },
371 "r12": { "type": "integer" },
372 "r13": { "type": "integer" },
373 "r14": { "type": "integer" },
374 "r15": { "type": "integer" },
375 "cs": { "type": "integer" },
376 "ds": { "type": "integer" },
377 "ss": { "type": "integer" },
378 "es": { "type": "integer" },
379 "fs": { "type": "integer" },
380 "gs": { "type": "integer" },
381 "rflags": { "type": "integer" },
382 "eip": { "type": "integer" },
383 "cr0": { "type": "integer" },
384 "cr1": { "type": "integer" },
385 "cr2": { "type": "integer" },
386 "cr3": { "type": "integer" },
387 "cr4": { "type": "integer" },
388 "cr8": { "type": "integer" },
389 "gdtr_0": { "type": "integer" },
390 "gdtr_1": { "type": "integer" },
391 "idtr_0": { "type": "integer" },
392 "idtr_1": { "type": "integer" },
393 "ldtr": { "type": "integer" },
394 "tr": { "type": "integer" }
395 }
396 },
397 {
398 "type": "object",
399 "required": ["data"],
400 "additionalProperties": false,
401 "properties": {
402 "data": {
403 "type": "string"
404 }
405 }
406 }
407 ]
408 }
409 }
410 }
411 }
412 }
413}