Revision Date Author Comments
# e4a64ba7 16-May-2025 Thang Tran <thuutran@amperecomputing.com>

Item: separate PCIe Function's properties into new interface

Currently, the PCIeDevice interface describes properties for up to eight
PCIe functions, but no association to individual PCIe functions

Item: separate PCIe Function's properties into new interface

Currently, the PCIeDevice interface describes properties for up to eight
PCIe functions, but no association to individual PCIe functions is
defined. To implement the Redfish Drive and NetworkInterface schemas,
this change is necessary because those schemas associate with the
specific PCIe function resources that produce them.

This commit moves PCIe Function properties from PCIe Device to an
independent PCIeFunction interface. The dbus object tree layout could
be:
```
/xyz/openbmc_project/inventory/item/PCIeDevice0
| xyz.openbmc_project.Inventory.Item.PCIeDevice
|---/xyz/openbmc_project/inventory/item/PCIeDevice0/PCIeFunction0
| xyz.openbmc_project.Inventory.Item.PCIeFunction
|---/xyz/openbmc_project/inventory/item/PCIeDevice0/PCIeFunction1
| xyz.openbmc_project.Inventory.Item.PCIeFunction
|---/xyz/openbmc_project/inventory/item/PCIeDevice0/PCIeFunction2
| xyz.openbmc_project.Inventory.Item.PCIeFunction
```

TODO: The PCIe function's properties in the PCIeDevice interface shall
be removed when bmcweb [1] and peci-pcie [2] are updated.

[1]: https://github.com/openbmc/bmcweb/blob/0fa3418803cb0af347903ae0b7d741f63d49cd32/redfish-core/lib/pcie.hpp#L628
[2]: https://github.com/openbmc/peci-pcie/blob/ec7361d5bce6be90effc2bed0adfea3df48f13d1/src/peci_pcie.cpp#L612

Change-Id: Ifba85d4ecb4847b737f1ace86bf8520ec31c0f03
Signed-off-by: Thang Tran <thuutran@amperecomputing.com>

show more ...