blob: ff482e5d1fe3bb837ce7bb9e8ea2c942321e57e9 [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",
121 "$ref": "../common/cper-json-nvp.json"
122 },
123 "operation": {
124 "type": "object",
125 "$ref": "../common/cper-json-nvp.json"
126 },
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",
155 "required": ["transactionTypeValid", "operationValid", "levelValid", "processorContextCorruptValid", "uncorrectedValid", "preciseIPValid", "restartableIPValid", "overflowValid", "participationTypeValid", "timedOutValid"],
156 "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"
186 }
187 }
188 },
189 "transactionType": {
190 "type": "object",
191 "$ref": "../common/cper-json-nvp.json"
192 },
193 "operation": {
194 "type": "object",
195 "$ref": "../common/cper-json-nvp.json"
196 },
197 "level": {
198 "type": "integer",
199 "minimum": 0
200 },
201 "processorContextCorrupt": {
202 "type": "boolean"
203 },
204 "uncorrected": {
205 "type": "boolean"
206 },
207 "preciseIP": {
208 "type": "boolean"
209 },
210 "restartableIP": {
211 "type": "boolean"
212 },
213 "overflow": {
214 "type": "boolean"
215 },
216 "participationType": {
217 "type": "object",
218 "$ref": "../common/cper-json-nvp.json"
219 },
220 "addressSpace": {
221 "type": "object",
222 "$ref": "../common/cper-json-nvp.json"
223 },
224 "timedOut": {
225 "type": "boolean"
226 }
227 }
228 },
229 {
230 "type": "object",
231 "required": [],
232 "additionalProperties": false,
233 "properties": {
234 "validationBits": {
235 "type": "object",
236 "required": ["errorTypeValid", "processorContextCorruptValid", "uncorrectedValid", "preciseIPValid", "restartableIPValid", "overflowValid"],
237 "properties": {
238 "errorTypeValid": {
239 "type": "boolean"
240 },
241 "processorContextCorruptValid": {
242 "type": "boolean"
243 },
244 "uncorrectedValid": {
245 "type": "boolean"
246 },
247 "preciseIPValid": {
248 "type": "boolean"
249 },
250 "restartableIPValid": {
251 "type": "boolean"
252 },
253 "overflowValid": {
254 "type": "boolean"
255 }
256 }
257 },
258 "errorType": {
259 "type": "object",
260 "$ref": "../common/cper-json-nvp.json"
261 },
262 "processorContextCorrupt": {
263 "type": "boolean"
264 },
265 "uncorrected": {
266 "type": "boolean"
267 },
268 "preciseIP": {
269 "type": "boolean"
270 },
271 "restartableIP": {
272 "type": "boolean"
273 },
274 "overflow": {
275 "type": "boolean"
276 }
277 }
278 }
279 ]
280 },
281 "targetAddressID": {
282 "type": "integer"
283 },
284 "requestorID": {
285 "type": "integer"
286 },
287 "responderID": {
288 "type": "integer"
289 },
290 "instructionPointer": {
291 "type": "integer"
292 }
293 }
294 }
295 },
296 "processorContextInfo": {
297 "type": "array",
298 "items": {
299 "type": "object",
300 "required": ["registerContextType", "registerArraySize", "msrAddress", "mmRegisterAddress"],
301 "additionalProperties": false,
302 "properties": {
303 "registerContextType": {
304 "type": "object",
305 "$ref": "../common/cper-json-nvp.json"
306 },
307 "registerArraySize": {
308 "type": "integer"
309 },
310 "msrAddress": {
311 "type": "integer"
312 },
313 "mmRegisterAddress": {
314 "type": "integer"
315 },
316 "registerArray": {
317 "type": "object",
318 "oneOf": [
319 {
320 "type": "object",
321 "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"],
322 "additionalProperties": false,
323 "properties": {
324 "eax": { "type": "integer" },
325 "ebx": { "type": "integer" },
326 "ecx": { "type": "integer" },
327 "edx": { "type": "integer" },
328 "esi": { "type": "integer" },
329 "edi": { "type": "integer" },
330 "ebp": { "type": "integer" },
331 "esp": { "type": "integer" },
332 "cs": { "type": "integer" },
333 "ds": { "type": "integer" },
334 "ss": { "type": "integer" },
335 "es": { "type": "integer" },
336 "fs": { "type": "integer" },
337 "gs": { "type": "integer" },
338 "eflags": { "type": "integer" },
339 "eip": { "type": "integer" },
340 "cr0": { "type": "integer" },
341 "cr1": { "type": "integer" },
342 "cr2": { "type": "integer" },
343 "cr3": { "type": "integer" },
344 "cr4": { "type": "integer" },
345 "gdtr": { "type": "integer" },
346 "idtr": { "type": "integer" },
347 "ldtr": { "type": "integer" },
348 "tr": { "type": "integer" }
349 }
350 },
351 {
352 "type": "object",
353 "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"],
354 "additionalProperties": false,
355 "properties": {
356 "rax": { "type": "integer" },
357 "rbx": { "type": "integer" },
358 "rcx": { "type": "integer" },
359 "rdx": { "type": "integer" },
360 "rsi": { "type": "integer" },
361 "rdi": { "type": "integer" },
362 "rbp": { "type": "integer" },
363 "rsp": { "type": "integer" },
364 "r8": { "type": "integer" },
365 "r9": { "type": "integer" },
366 "r10": { "type": "integer" },
367 "r11": { "type": "integer" },
368 "r12": { "type": "integer" },
369 "r13": { "type": "integer" },
370 "r14": { "type": "integer" },
371 "r15": { "type": "integer" },
372 "cs": { "type": "integer" },
373 "ds": { "type": "integer" },
374 "ss": { "type": "integer" },
375 "es": { "type": "integer" },
376 "fs": { "type": "integer" },
377 "gs": { "type": "integer" },
378 "rflags": { "type": "integer" },
379 "eip": { "type": "integer" },
380 "cr0": { "type": "integer" },
381 "cr1": { "type": "integer" },
382 "cr2": { "type": "integer" },
383 "cr3": { "type": "integer" },
384 "cr4": { "type": "integer" },
385 "cr8": { "type": "integer" },
386 "gdtr_0": { "type": "integer" },
387 "gdtr_1": { "type": "integer" },
388 "idtr_0": { "type": "integer" },
389 "idtr_1": { "type": "integer" },
390 "ldtr": { "type": "integer" },
391 "tr": { "type": "integer" }
392 }
393 },
394 {
395 "type": "object",
396 "required": ["data"],
397 "additionalProperties": false,
398 "properties": {
399 "data": {
400 "type": "string"
401 }
402 }
403 }
404 ]
405 }
406 }
407 }
408 }
409 }
410}