D-Bus interfaces for FRU VPD inventory

Deepak Kodihalli dkodihal at linux.vnet.ibm.com
Mon Nov 14 17:58:55 AEDT 2016


Hello,

I'd like to solicit feedback on the d-bus interfaces that we're defining to represent FRU information, also known as FRU VPD (Vital Product Data).

A little background :

- The d-bus interfaces are being written as Inventory interfaces, as YAML files, under the openbmc/phosphor-dbus-interfaces repo [1].
- As far as sources/formats of VPD are concerned, we've looked at the IPMI FRU information spec [2], and the open-power VPD format [3].
- The goal has been to define properties in the d-bus interfaces to describe various pieces of FRU VPD, and to describe them in such a way that they're agnostic to the VPD format. It would be up to VPD related applications to parse specific VPD formats and then to populate the Inventory via the new d-bus interfaces.
- There are in general two classes of interfaces : those describing physical items such as processors, DIMMs, etc.; and those describing virtual items such as a replaceable item, a repairable item, an item having voltage control enabled, etc.
- We've realized that each and every property from the IPMI or the open-power spec need not be mapped as-is. D-Bus objects could implement an aggregate of interfaces to represent a specific item or FRU, and to have all relevant properties contained. For instance, we have interfaces such as an Asset Item, a generic Item, that could apply to multiple types of FRUs.
- There are currently two commits up in Gerrit for review. One commit is specific to open-power interfaces [4] (since these could describe properties specific to IBM systems, and may eventually be moved to a new repo), and another commit for generic properties [5].


I'm looking for :

- Code review comments on [4] and [5].
- Any properties that you think should be added or left out.
- Any other comments on the interface design.

For details on specific properties that have been mapped, I have a section below that you may want to have a look at.

[1] https://github.com/openbmc/phosphor-dbus-interfaces/tree/master/xyz/openbmc_project/Inventory
[2] http://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/platform-management-fru-document-rev-1-2-feb-2013.pdf
[3] https://github.com/open-power/vpdtools/tree/master/examples/p9/sysplanar32_ddr4
[4] https://gerrit.openbmc-project.xyz/#/c/1095/
[5] https://gerrit.openbmc-project.xyz/#/c/1094/




1) Properties mapped from the IPMI FRU information spec :
- The IPMI FRU information spec classifies FRU information into three broad areas : Chassis Info Area, Board Info Area and Product Info Area.

IPMI property

	

D-Bus property

Chassis Type

	

Item.interface : PrettyName

Chassis Part Number

	

Asset.interface : PartNumber

Chassis Serial Number

	

Asset.interface : SerialNumber

Board Manufacturing Date/Time

	

Asset.interface : BuildDate

Board Manufacturer

	

Asset.interface : Manufacturer

Board Product Name

	

Item.interface : PrettyName

Board Serial Number

	

Asset.interface : SerialNumber

Board Part Number

	

Asset.interface : PartNumber

Board FRU File ID

	

Asset.interface : FileId

Product Manufacturer

	

Asset.interface : Manufacturer

Product Name

	

Item.interface : PrettyName

Product Part Number

	

Asset.interface : PartNumber

Product Serial Number

	

Asset.interface : SerialNumber

Product Version

	

Revision.interface : Version

Product Asset Tag

	

Not mapped yet


2) The open-power VPD format uses a record/keyword mechanism to describe FRU VPD. A record is a group of related keywords. A keyword is a specific property. There are too many keywords to individually list here (please see [3]), hence I've shown how we've mapped records.

open-power property

	

D-Bus property

VINI record (applies to all FRUs, general FRU information such as serial number, part number)

	

See Asset.interface, Item.interface

OPFR record (applies to all FRUs, more general FRU information such as vendor name, build date)

	

See Asset.interface, Item.interface

MEMD record (direct-attached memory specific keywords)

	

See Dimm.DirectAttached.interface

Processor specific keywords coming from various records

	

See Cpu.interface

VNDR record (applies to multiple FRUs, custom information that can be added by the FRU vendor)

	

See VendorInformation.interface

MER0, VER0 records (applies to multiple FRUs, FRU repair information)

	

See RepairData.interface

VRTN record (applied to all FRUs, information to enable FRU replacement)

	

See Replaceable.interface

OSYS record (information specific to a system as a whole)

	

See Motherboard.interface


Thanks,
Deepak

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20161114/f778290e/attachment.html>


More information about the openbmc mailing list