xref: /openbmc/libcper/specification/json/sections/cper-pcie-capabilityStructure.json (revision eda19ff0ed430f222e29d3578cee4a4ed5771584)
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