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