1description: >
2    This defines a PCIe slot to be exposed for system management. It includes
3    the slot properties.
4
5properties:
6    - name: Generation
7      type: enum[self.Generations]
8      default: "Unknown"
9      description: >
10          The PCIe generation of the slot
11
12    - name: Lanes
13      type: size
14      description: >
15          The maximum number of PCIe lanes supported by the slot
16
17    - name: SlotType
18      type: enum[self.SlotTypes]
19      default: "Unknown"
20      description: >
21          The type of the slot
22
23    - name: HotPluggable
24      type: boolean
25      description: >
26          Whether this PCIe slot supports hotplug
27
28enumerations:
29    - name: Generations
30      description: >
31          Possible PCIe generations
32      values:
33          - name: "Gen1"
34            description: >
35                PCIe v1.0 slot
36
37          - name: "Gen2"
38            description: >
39                PCIe v2.0 slot
40
41          - name: "Gen3"
42            description: >
43                PCIe v3.0 slot
44
45          - name: "Gen4"
46            description: >
47                PCIe v4.0 slot
48
49          - name: "Gen5"
50            description: >
51                PCIe v5.0 slot
52
53          - name: "Unknown"
54            description: >
55                Version of the PCIe slot is unknown
56
57    - name: SlotTypes
58      description: >
59          Possible types of a PCIe slot
60      values:
61          - name: "FullLength"
62            description: >
63                Full-Length PCIe slot
64
65          - name: "HalfLength"
66            description: >
67                Half-Length PCIe slot
68
69          - name: "LowProfile"
70            description: >
71                Low-Profile or Slim PCIe slot
72
73          - name: "Mini"
74            description: >
75                Mini PCIe slot
76
77          - name: "M_2"
78            description: >
79                PCIe M.2 slot
80
81          - name: "OEM"
82            description: >
83                An OEM-specific PCIe slot
84
85          - name: "OCP3Small"
86            description: >
87                Open Compute Project 3.0 small form factor PCIe slot
88
89          - name: "OCP3Large"
90            description: >
91                Open Compute Project 3.0 large form factor PCIe slot
92
93          - name: "U_2"
94            description: >
95                U.2 / SFF-8639 PCIe slot or bay
96
97          - name: "Unknown"
98            description: >
99                Type of the PCIe slot is unknown
100
101association:
102    name: connected_to
103    description: >
104        Objects that are connected at the other end of the link.
105    reverse_name: connecting
106    required_endpoint_interfaces:
107        - xyz.openbmc_project.Inventory.Item.Cpu
108        - xyz.openbmc_project.Inventory.Item.PCIeSwitch
109