pldm-stack: add section on PLDM FRU information
Add a proposal that briefly describes how the BMC will consume PLDM FRU
information sent down by the host firmware.
Change-Id: I70c1bbe274a8151deafc4132a8539445d4913649
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/designs/pldm-stack.md b/designs/pldm-stack.md
index 75b9e41..f8f50f1 100644
--- a/designs/pldm-stack.md
+++ b/designs/pldm-stack.md
@@ -350,6 +350,41 @@
that transport. Also, it should be possible to plug-in platform specific D-Bus
objects that implement an interface to target a platform specific transport.
+### Processing PLDM FRU information sent down by the host firmware
+
+Note: while this is specific to the host BMC communication, most of this might
+apply to processing PLDM FRU information received from a device connected to the
+BMC as well.
+
+The requirement is for the BMC to consume PLDM FRU information received from the
+host firmware and then have the same exposed via Redfish. An example can be the
+host firmware sending down processor and core information via PLDM FRU commands,
+and the BMC making this information available via the Processor and
+ProcessorCollection schemas.
+
+This design is built around the pldmd and entity-manager applications on the
+BMC:
+
+- The pldmd asks the host firmware's PLDM stack for the host's FRU record table,
+ by sending it the PLDM GetFRURecordTable command. The pldmd should send this
+ command if the host indicates support for the PLDM FRU spec. The pldmd
+ receives a PLDM FRU record table from the host firmware (
+ www.dmtf.org/sites/default/files/standards/documents/DSP0257_1.0.0.pdf). The
+ daemon parses the FRU record table and hosts raw PLDM FRU information on
+ D-Bus. It will house the PLDM FRU properties for a certain FRU under an
+ xyz.openbmc_project.Inventory.Source.PLDM.FRU D-Bus interface, and house the
+ PLDM entity info extracted from the FRU record set PDR under an
+ xyz.openbmc_project.Source.PLDM.Entity interface.
+
+- Configurations can be written for entity-manager to probe an interface like
+ xyz.openbmc_project.Inventory.Source.PLDM.FRU, and create FRU inventory D-Bus
+ objects. Inventory interfaces from the xyz.openbmc_project. Inventory
+ namespace can be applied on these objects, by converting PLDM FRU property
+ values into xyz.openbmc_project.Invnetory.Decorator.Asset property values,
+ such as Part Number and Serial Number, in the entity manager configuration
+ file. Bmcweb can find these FRU inventory objects based on D-Bus interfaces,
+ as it does today.
+
## Alternatives Considered
Continue using IPMI, but start making more use of OEM extensions to
suit the requirements of new platforms. However, given that the IPMI