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