OpenBMC : FRU Inventory management

Deepak Kodihalli dkodihal at linux.vnet.ibm.com
Thu Jul 30 14:22:29 AEST 2020


On 30/07/20 8:37 am, Vasant Patil wrote:
> Hi Team,
> 
> We are enabling OpenBMC on x86 system. We would like to know the 
> recommendation on FRU inventory management and corresponding pointers.
> 
> There seems to be multiple options available
> 
>  1. described in  “Adding new system to OpenBMC
>     <https://github.com/openbmc/docs/blob/master/development/add-new-system.md>”
>     with  Yaml files (meta-romulus/recipes-phosphor/ipmi
>     <https://github.com/openbmc/openbmc/tree/master/meta-ibm/meta-romulus/recipes-phosphor/ipmi>)
> 
>  2. Entity manager <https://github.com/openbmc/entity-manager> with JSON
>     schema

Hi Vasant,

The commonly used option for this now is entity-manager. The 
entity-manager config JSONs enable entity-manager to monitor/probe FRU 
config information (FRU information read off of an EEPROM for eg) and 
then transform that to an inventory D-Bus object that implements an 
xyz.openbmc_project.Inventory.Item.<Type> interface. The webserver 
(bmcweb) then can relay this into a Redfish inventory representation.

To make the FRU EEPROM content available on D-Bus, anther app typically 
reads the EEPROM and then hosts the info on D-Bus. For eg the FruDevice 
daemon (which sits in the entity-manager repo) scans I2C connected 
EEPROMs, and can read IPMI FRU format data off of them. Now this info 
can actually be coming in via EEPROMs that the BMC can't access (and for 
eg the host CPU can) - in that case I would expect the FRU information 
to be transported over IPMI/PLDM, and then apps like host-ipmid or pldmd 
can place the FRU information on D-Bus, for entity-manager to consume.

> We are looking to enable below inventory (Both FRU and non-FRU):
> 
>   * CPU
>   * DIMM
>   * M.2
>   * U.2
>   * Motherboard FRU EEPROM
>   * Chassis FRU EEPROM
>   * Add-on PCI cards
>   * FANs
>   * PSU
>   * Etc.

You can look at 
https://github.com/openbmc/phosphor-dbus-interfaces/tree/master/xyz/openbmc_project/Inventory/Item 
and define types that you don't find here.

Regards,
Deepak



More information about the openbmc mailing list