xref: /openbmc/phosphor-dbus-interfaces/yaml/xyz/openbmc_project/Inventory/Item/PCIeDevice.interface.yaml (revision 1f7befd2490bed95e38efa75a540cbdbb9823600)
1description: >
2    This defines a PCIe device to be exposed for system management.  It includes
3    the device properties and function properties for all 8 possible functions
4    that are needed for the device identification.
5
6properties:
7    - name: DeviceType
8      type: enum[self.DeviceTypes]
9      default: "Unknown"
10      description: >
11          Indicates if the device type is MultiFunction/Retimer/Simulated or
12          SingleFunction.
13    - name: GenerationInUse
14      type: enum[xyz.openbmc_project.Inventory.Item.PCIeSlot.Generations]
15      default: "Unknown"
16      description: >
17          The PCIe interface generation in use by the device.
18    - name: GenerationSupported
19      type: enum[xyz.openbmc_project.Inventory.Item.PCIeSlot.Generations]
20      default: "Unknown"
21      description: >
22          The maximum PCIe generation supported by the device.
23
24    - name: Function0ClassCode
25      type: string
26      description: >
27          The Class Code for this function.
28    - name: Function0DeviceClass
29      type: string
30      description: >
31          The Device Class for this function.
32    - name: Function0DeviceId
33      type: string
34      description: >
35          The Device ID for this function.
36    - name: Function0FunctionType
37      type: string
38      description: >
39          Indicates if the function is Physical or Virtual
40    - name: Function0RevisionId
41      type: string
42      description: >
43          The Revision ID for this function.
44    - name: Function0SubsystemId
45      type: string
46      description: >
47          The Subsystem ID for this function.
48    - name: Function0SubsystemVendorId
49      type: string
50      description: >
51          The Subsystem Vendor ID for this function.
52    - name: Function0VendorId
53      type: string
54      description: >
55          The Vendor ID for this function.
56
57    - name: Function1ClassCode
58      type: string
59      description: >
60          The Class Code for this function.
61    - name: Function1DeviceClass
62      type: string
63      description: >
64          The Device Class for this function.
65    - name: Function1DeviceId
66      type: string
67      description: >
68          The Device ID for this function.
69    - name: Function1FunctionType
70      type: string
71      description: >
72          Indicates if the function is Physical or Virtual
73    - name: Function1RevisionId
74      type: string
75      description: >
76          The Revision ID for this function.
77    - name: Function1SubsystemId
78      type: string
79      description: >
80          The Subsystem ID for this function.
81    - name: Function1SubsystemVendorId
82      type: string
83      description: >
84          The Subsystem Vendor ID for this function.
85    - name: Function1VendorId
86      type: string
87      description: >
88          The Vendor ID for this function.
89
90    - name: Function2ClassCode
91      type: string
92      description: >
93          The Class Code for this function.
94    - name: Function2DeviceClass
95      type: string
96      description: >
97          The Device Class for this function.
98    - name: Function2DeviceId
99      type: string
100      description: >
101          The Device ID for this function.
102    - name: Function2FunctionType
103      type: string
104      description: >
105          Indicates if the function is Physical or Virtual
106    - name: Function2RevisionId
107      type: string
108      description: >
109          The Revision ID for this function.
110    - name: Function2SubsystemId
111      type: string
112      description: >
113          The Subsystem ID for this function.
114    - name: Function2SubsystemVendorId
115      type: string
116      description: >
117          The Subsystem Vendor ID for this function.
118    - name: Function2VendorId
119      type: string
120      description: >
121          The Vendor ID for this function.
122
123    - name: Function3ClassCode
124      type: string
125      description: >
126          The Class Code for this function.
127    - name: Function3DeviceClass
128      type: string
129      description: >
130          The Device Class for this function.
131    - name: Function3DeviceId
132      type: string
133      description: >
134          The Device ID for this function.
135    - name: Function3FunctionType
136      type: string
137      description: >
138          Indicates if the function is Physical or Virtual
139    - name: Function3RevisionId
140      type: string
141      description: >
142          The Revision ID for this function.
143    - name: Function3SubsystemId
144      type: string
145      description: >
146          The Subsystem ID for this function.
147    - name: Function3SubsystemVendorId
148      type: string
149      description: >
150          The Subsystem Vendor ID for this function.
151    - name: Function3VendorId
152      type: string
153      description: >
154          The Vendor ID for this function.
155
156    - name: Function4ClassCode
157      type: string
158      description: >
159          The Class Code for this function.
160    - name: Function4DeviceClass
161      type: string
162      description: >
163          The Device Class for this function.
164    - name: Function4DeviceId
165      type: string
166      description: >
167          The Device ID for this function.
168    - name: Function4FunctionType
169      type: string
170      description: >
171          Indicates if the function is Physical or Virtual
172    - name: Function4RevisionId
173      type: string
174      description: >
175          The Revision ID for this function.
176    - name: Function4SubsystemId
177      type: string
178      description: >
179          The Subsystem ID for this function.
180    - name: Function4SubsystemVendorId
181      type: string
182      description: >
183          The Subsystem Vendor ID for this function.
184    - name: Function4VendorId
185      type: string
186      description: >
187          The Vendor ID for this function.
188
189    - name: Function5ClassCode
190      type: string
191      description: >
192          The Class Code for this function.
193    - name: Function5DeviceClass
194      type: string
195      description: >
196          The Device Class for this function.
197    - name: Function5DeviceId
198      type: string
199      description: >
200          The Device ID for this function.
201    - name: Function5FunctionType
202      type: string
203      description: >
204          Indicates if the function is Physical or Virtual
205    - name: Function5RevisionId
206      type: string
207      description: >
208          The Revision ID for this function.
209    - name: Function5SubsystemId
210      type: string
211      description: >
212          The Subsystem ID for this function.
213    - name: Function5SubsystemVendorId
214      type: string
215      description: >
216          The Subsystem Vendor ID for this function.
217    - name: Function5VendorId
218      type: string
219      description: >
220          The Vendor ID for this function.
221
222    - name: Function6ClassCode
223      type: string
224      description: >
225          The Class Code for this function.
226    - name: Function6DeviceClass
227      type: string
228      description: >
229          The Device Class for this function.
230    - name: Function6DeviceId
231      type: string
232      description: >
233          The Device ID for this function.
234    - name: Function6FunctionType
235      type: string
236      description: >
237          Indicates if the function is Physical or Virtual
238    - name: Function6RevisionId
239      type: string
240      description: >
241          The Revision ID for this function.
242    - name: Function6SubsystemId
243      type: string
244      description: >
245          The Subsystem ID for this function.
246    - name: Function6SubsystemVendorId
247      type: string
248      description: >
249          The Subsystem Vendor ID for this function.
250    - name: Function6VendorId
251      type: string
252      description: >
253          The Vendor ID for this function.
254
255    - name: Function7ClassCode
256      type: string
257      description: >
258          The Class Code for this function.
259    - name: Function7DeviceClass
260      type: string
261      description: >
262          The Device Class for this function.
263    - name: Function7DeviceId
264      type: string
265      description: >
266          The Device ID for this function.
267    - name: Function7FunctionType
268      type: string
269      description: >
270          Indicates if the function is Physical or Virtual
271    - name: Function7RevisionId
272      type: string
273      description: >
274          The Revision ID for this function.
275    - name: Function7SubsystemId
276      type: string
277      description: >
278          The Subsystem ID for this function.
279    - name: Function7SubsystemVendorId
280      type: string
281      description: >
282          The Subsystem Vendor ID for this function.
283    - name: Function7VendorId
284      type: string
285      description: >
286          The Vendor ID for this function.
287
288    - name: MaxLanes
289      type: size
290      default: 0
291      description: >
292          The maximum number of PCIe lanes supported by the PCIe Device
293
294    - name: LanesInUse
295      type: size
296      default: maxint
297      description: >
298          The number of PCIe lanes in use by this device. Default value of
299          maxint is to accommodate the situation where the value of this
300          property is not known due to some unknown reason, like hardware
301          failure. The value of 0 indicates that the link is not active.
302
303enumerations:
304    - name: DeviceTypes
305      description: >
306          Possible Device Type
307      values:
308          - name: MultiFunction
309            description: >
310                Indicates if the device is MultiFunction
311          - name: Retimer
312            description: >
313                Indicate if the device is Retimer
314          - name: Simulated
315            description: >
316                Indicates if the device is Simulated
317          - name: SingleFunction
318            description: >
319                Indicates if the device is Single Function
320          - name: Unknown
321            description: >
322                Indicates if the device is Unknown
323
324associations:
325    - name: upstream_pcie_slot
326      description: >
327          Objects that implement PCIeDevice can optionally implement the
328          upstream_pcie_slot association to provide a link back to a PCIe slot.
329      reverse_names:
330          - associated_pcie_device
331      required_endpoint_interfaces:
332          - xyz.openbmc_project.Inventory.Item.PCIeSlot
333