pcieslot, cpu: add upstream_processor association

Define a mechanism for documenting associations in PDI YAML files.

A new associations member is added to the interface definitions.  The
new associations member is an array, with each array element having an
object or structure type that consists of a name, reverse_name (all
OpenBMC associations are bi-directional), description, and an array of
required_endpoint_interfaces.  The name and reverse_name properties must
be snake_case and comply with D-Bus specification restrictions on object
paths so they could be used directly as an object path element in a real
D-Bus implementation.  Similarly the required_endpoint_interfaces array
elements must also comply with D-Bus specification restrictions and best
practices on interfaces names.

Associations should only exist as subordinate objects to a superior
object with a specific D-Bus interface - for example the
upstream_processor association should only exist on objects which
implement the PCIeSlot interface.  This is the motivating thought behind
documenting OpenBMC associations in the existing interface definition
files instead of somewhere else.  Reuse of upstream_processor in other
interfaces is allowed (for example a memory DIMM), but it must be
explicitly listed in each interface definition that wishes to host the
association.

This first use of the associations documentation adds an
upstream_processor interface used to link PCIeSlots to upstream PCIe
host bridges or on-processor PCIe root complexes.

Change-Id: I1d8bdb90a2705c4f16c5b015b7135870782ad672
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
2 files changed
tree: 97c098ffa5df9b255836118a77b06693993fe313
  1. gen/
  2. subprojects/
  3. yaml/
  4. .gitignore
  5. .shellcheck
  6. LICENSE
  7. MAINTAINERS
  8. meson.build
  9. meson_options.txt
  10. README.md
README.md

phosphor-dbus-interfaces

YAML descriptors of standard D-Bus interfaces. The format is described by the sdbusplus binding generation tool sdbus++.

Building

This project can be built with meson. The typical meson workflow is: meson builddir && ninja -C builddir.

The meson files used to handle the YAML files are automatically generated and found under the gen subdirectory. When adding or removing YAML files, this must be regenerated. This can be done with the helper script found in the gen subdirectory: cd gen && ./regenerate-meson.

Configuration

Only the xyz/openbmc_project interfaces are built by default. Other interfaces can be enabled by meson options:

  • com/ibm - -Ddata_com_ibm=true
  • org/open_power - -Ddata_org_open_power=true

Example: meson builddir -Ddata_com_ibm=true && ninja -C builddir

References