1{ 2 "$schema": "https://json-schema.org/draft/2020-12/schema", 3 "title": "PCIe Capability Structure", 4 "type": "object", 5 "description": "PCIe 1.0 or PCIe 2.0 Capability structure", 6 "additionalProperties": false, 7 "properties": { 8 "data": { 9 "type": "string" 10 }, 11 "device_capabilities": { 12 "type": "object", 13 "properties": { 14 "captured_slot_power_limit_scale": { 15 "type": "integer" 16 }, 17 "captured_slot_power_limit_value": { 18 "type": "integer" 19 }, 20 "endpoint_l0s_acceptable_latency": { 21 "type": "object", 22 "properties": { 23 "raw": { 24 "type": "integer" 25 } 26 }, 27 "required": [] 28 }, 29 "endpoint_l1_acceptable_latency": { 30 "type": "object", 31 "properties": { 32 "raw": { 33 "type": "integer" 34 } 35 }, 36 "required": [] 37 }, 38 "err_cor_subclass_capable": { 39 "type": "boolean" 40 }, 41 "extended_tag_field_supported": { 42 "type": "string" 43 }, 44 "function_level_reset_capability_supported": { 45 "type": "string" 46 }, 47 "max_payload_size_supported": { 48 "type": "integer" 49 }, 50 "mixed_mps_supported": { 51 "type": "string" 52 }, 53 "phantom_functions_supported": { 54 "type": "string" 55 }, 56 "role_based_error_reporting": { 57 "type": "boolean" 58 }, 59 "rx_mps_fixed": { 60 "type": "integer" 61 }, 62 "tee_io_supported": { 63 "type": "string" 64 } 65 }, 66 "required": [] 67 }, 68 "device_capabilities2": { 69 "type": "object", 70 "properties": { 71 "_128_bit_cas_completer_supported": { 72 "type": "string" 73 }, 74 "_32_bit_atomicop_completer_supported": { 75 "type": "string" 76 }, 77 "_64_bit_atomicop_completer_supported": { 78 "type": "string" 79 }, 80 "ari_forwarding_supported": { 81 "type": "string" 82 }, 83 "atomic_op_routing_supported": { 84 "type": "string" 85 }, 86 "completion_timeout_disable_supported": { 87 "type": "string" 88 }, 89 "completion_timeout_ranges_supported": { 90 "type": "integer" 91 }, 92 "dmwr_lengths_supported": { 93 "type": "integer" 94 }, 95 "emergency_power_reduction_supported": { 96 "type": "string" 97 }, 98 "ltr_mechanism_supported": { 99 "type": "string" 100 }, 101 "max_end_end_tlp_prefixes": { 102 "type": "object", 103 "properties": { 104 "raw": { 105 "type": "integer" 106 } 107 }, 108 "required": [] 109 }, 110 "no_ro_enabled_pr_pr_passing": { 111 "type": "string" 112 }, 113 "obff_supported": { 114 "type": "string" 115 }, 116 "tph_completer_supported": { 117 "type": "string" 118 } 119 }, 120 "required": [] 121 }, 122 "device_control": { 123 "type": "object", 124 "properties": { 125 "aux_power_pm_enable": { 126 "type": "string" 127 }, 128 "correctable_error_reporting_enable": { 129 "type": "string" 130 }, 131 "enable_no_snoop": { 132 "type": "integer" 133 }, 134 "extended_tag_field_enable": { 135 "type": "string" 136 }, 137 "fatal_error_reporting_enable": { 138 "type": "string" 139 }, 140 "function_level_reset": { 141 "type": "boolean" 142 }, 143 "max_payload_size": { 144 "type": "integer" 145 }, 146 "max_read_request_size": { 147 "type": "integer" 148 }, 149 "non_fatal_error_reporting_enable": { 150 "type": "string" 151 }, 152 "phantom_functions_enable": { 153 "type": "string" 154 }, 155 "relaxed_ordering_enable": { 156 "type": "string" 157 }, 158 "unsupported_request_reporting_enabled": { 159 "type": "string" 160 } 161 }, 162 "required": [] 163 }, 164 "device_control2": { 165 "type": "object", 166 "properties": { 167 "bit_tag_requester_10_enable": { 168 "type": "boolean" 169 }, 170 "ari_forwarding_enable": { 171 "type": "boolean" 172 }, 173 "atomicop_egress_blocking": { 174 "type": "boolean" 175 }, 176 "atomicop_requester_enable": { 177 "type": "boolean" 178 }, 179 "completion_timeout_value": { 180 "type": "integer" 181 }, 182 "emergency_power_reduction_request": { 183 "type": "boolean" 184 }, 185 "ido_completion_enable": { 186 "type": "boolean" 187 }, 188 "ido_request_enable": { 189 "type": "boolean" 190 }, 191 "ltr_mechanism_enable": { 192 "type": "boolean" 193 }, 194 "obff_enable": { 195 "type": "integer" 196 } 197 }, 198 "required": [] 199 }, 200 "device_status": { 201 "type": "object", 202 "properties": { 203 "aux_power_detected": { 204 "type": "boolean" 205 }, 206 "correctable_error_detected": { 207 "type": "boolean" 208 }, 209 "emergency_power_reduction": { 210 "type": "integer" 211 }, 212 "fatal_error_detected": { 213 "type": "boolean" 214 }, 215 "non_fatal_error_detected": { 216 "type": "boolean" 217 }, 218 "transactions_pending": { 219 "type": "boolean" 220 }, 221 "unsupported_request_detected": { 222 "type": "boolean" 223 } 224 }, 225 "required": [] 226 }, 227 "link_capabilities": { 228 "type": "object", 229 "properties": { 230 "aspm_optionality_compliance": { 231 "type": "boolean" 232 }, 233 "aspm_support": { 234 "type": "integer" 235 }, 236 "clock_power_management": { 237 "type": "boolean" 238 }, 239 "data_link_layer_link_active_reporting_capable": { 240 "type": "boolean" 241 }, 242 "l0s_exit_latency": { 243 "type": "integer" 244 }, 245 "l1_exit_latency": { 246 "type": "integer" 247 }, 248 "link_bandwidth_notification_capability": { 249 "type": "boolean" 250 }, 251 "max_link_speed": { 252 "type": "integer" 253 }, 254 "maximum_link_width": { 255 "type": "integer" 256 }, 257 "port_number": { 258 "type": "integer" 259 }, 260 "surprise_down_error_reporting_capable": { 261 "type": "boolean" 262 } 263 }, 264 "required": [] 265 }, 266 "link_capabilities2": { 267 "type": "object", 268 "properties": { 269 "crosslink_supported": { 270 "type": "string" 271 }, 272 "drs_supported": { 273 "type": "string" 274 }, 275 "lower_skp_os_generation_supported": { 276 "type": "integer" 277 }, 278 "lower_skp_os_reception_supported": { 279 "type": "integer" 280 }, 281 "retimer_presence_detect_supported": { 282 "type": "string" 283 }, 284 "supported_link_speeds": { 285 "type": "integer" 286 }, 287 "two_retimers_presence_detect_supported": { 288 "type": "string" 289 } 290 }, 291 "required": [] 292 }, 293 "link_control": { 294 "type": "object", 295 "properties": { 296 "aspm_control": { 297 "type": "integer" 298 }, 299 "extended_synch": { 300 "type": "integer" 301 }, 302 "flit_mode_disable": { 303 "type": "integer" 304 }, 305 "link_disable": { 306 "type": "integer" 307 }, 308 "ptm_prop_delay_adaptation_interpretation": { 309 "type": "boolean" 310 }, 311 "retrain_link": { 312 "type": "integer" 313 }, 314 "sris_clocking": { 315 "type": "integer" 316 } 317 }, 318 "required": [ 319 "aspm_control", 320 "extended_synch", 321 "flit_mode_disable", 322 "link_disable", 323 "ptm_prop_delay_adaptation_interpretation", 324 "retrain_link", 325 "sris_clocking" 326 ] 327 }, 328 "link_control2": { 329 "type": "object", 330 "properties": { 331 "compliance_preset_de_emphasis": { 332 "type": "integer" 333 }, 334 "compliance_sos": { 335 "type": "boolean" 336 }, 337 "enter_compliance": { 338 "type": "string" 339 }, 340 "enter_modified_compliance": { 341 "type": "boolean" 342 }, 343 "hardware_autonomous_speed_disable": { 344 "type": "object", 345 "properties": { 346 "raw": { 347 "type": "integer" 348 } 349 }, 350 "required": ["raw"] 351 }, 352 "selectable_de_emphasis": { 353 "type": "boolean" 354 }, 355 "target_link_speed": { 356 "type": "object", 357 "properties": { 358 "raw": { 359 "type": "integer" 360 } 361 }, 362 "required": ["raw"] 363 }, 364 "transmit_margin": { 365 "type": "integer" 366 } 367 }, 368 "required": [ 369 "compliance_preset_de_emphasis", 370 "compliance_sos", 371 "enter_compliance", 372 "enter_modified_compliance", 373 "hardware_autonomous_speed_disable", 374 "selectable_de_emphasis", 375 "target_link_speed", 376 "transmit_margin" 377 ] 378 }, 379 "link_status": { 380 "type": "object", 381 "properties": { 382 "current_link_speed": { 383 "type": "integer" 384 }, 385 "link_training": { 386 "type": "integer" 387 }, 388 "negotiated_link_width": { 389 "type": "integer" 390 } 391 }, 392 "required": [] 393 }, 394 "link_status2": { 395 "type": "object", 396 "properties": { 397 "crosslink_resolution": { 398 "type": "integer" 399 }, 400 "current_de_emphasis_level": { 401 "type": "integer" 402 }, 403 "downstream_component_presence": { 404 "type": "integer" 405 }, 406 "drs_message_received": { 407 "type": "boolean" 408 }, 409 "equalization_8gts_complete": { 410 "type": "boolean" 411 }, 412 "equalization_8gts_phase1_successful": { 413 "type": "boolean" 414 }, 415 "equalization_8gts_phase2_successful": { 416 "type": "boolean" 417 }, 418 "equalization_8gts_phase3_successful": { 419 "type": "boolean" 420 }, 421 "flit_mode_status": { 422 "type": "integer" 423 }, 424 "link_equalization_request_8gts": { 425 "type": "boolean" 426 }, 427 "retimer_presence_detected": { 428 "type": "boolean" 429 }, 430 "two_retimers_presence_detected": { 431 "type": "boolean" 432 } 433 }, 434 "required": [] 435 }, 436 "pcie_capabilities": { 437 "type": "object", 438 "properties": { 439 "capability_version": { 440 "type": "integer" 441 }, 442 "device_port_type": { 443 "type": "object", 444 "properties": { 445 "raw": { 446 "type": "integer" 447 }, 448 "value": { 449 "type": "string" 450 } 451 }, 452 "required": [] 453 }, 454 "flit_mode_supported": { 455 "type": "string" 456 }, 457 "interrupt_message_number": { 458 "type": "integer" 459 }, 460 "slot_implemented": { 461 "type": "boolean" 462 } 463 }, 464 "required": [] 465 }, 466 "pcie_capability_header": { 467 "type": "object", 468 "properties": { 469 "capability_id": { 470 "type": "object", 471 "properties": { 472 "raw": { 473 "type": "integer" 474 } 475 }, 476 "required": [] 477 }, 478 "next_capability_pointer": { 479 "type": "integer" 480 } 481 }, 482 "required": [] 483 }, 484 "root_status": { 485 "type": "object", 486 "properties": { 487 "pme_pending": { 488 "type": "integer" 489 }, 490 "pme_requester_id": { 491 "type": "integer" 492 }, 493 "pme_status": { 494 "type": "integer" 495 } 496 }, 497 "required": [] 498 }, 499 "slot_capabilities": { 500 "type": "object", 501 "properties": { 502 "physical_slot_number": { 503 "type": "integer" 504 }, 505 "slot_power_limit_scale": { 506 "type": "integer" 507 }, 508 "slot_power_limit_value": { 509 "type": "object", 510 "properties": { 511 "raw": { 512 "type": "integer" 513 } 514 }, 515 "required": [] 516 } 517 }, 518 "required": [] 519 }, 520 "slot_control": { 521 "type": "object", 522 "properties": { 523 "attention_indicator_control": { 524 "type": "integer" 525 }, 526 "power_indicator_control": { 527 "type": "integer" 528 }, 529 "rsvdp": { 530 "type": "integer" 531 } 532 }, 533 "required": [] 534 }, 535 "slot_status": { 536 "type": "object", 537 "properties": { 538 "command_completed": { 539 "type": "integer" 540 }, 541 "mrl_sensor_changed": { 542 "type": "integer" 543 }, 544 "mrl_sensor_state": { 545 "type": "integer" 546 } 547 }, 548 "required": [] 549 } 550 }, 551 "required": [] 552} 553