commit | 32c687f5a145008c7b725278b3b23589f315e4a7 | [log] [tgz] |
---|---|---|
author | Priyanga Ramasamy <priyanga24@in.ibm.com> | Tue Jan 04 23:14:03 2022 -0600 |
committer | Santosh Puranik <santosh.puranik@in.ibm.com> | Thu Jan 06 13:05:42 2022 +0000 |
tree | be8fa1001ad8309917f5d382e8db06acc698e68d | |
parent | 69f760240e8bf0937652a39a3fd81d8fb180179c [diff] |
Move json symlink before populating dbus interfaces This commit reorders the flow of ibm-read-vpd app execution by first allowing the app to create symbolink link to the respective json and then populate dbus interfaces by having the right json. Without this change, only those motherboard subfrus which are present in the default inventory json will gets its interfaces populated during genesis boot. Thus leaving machine specific motherboard's subfru's (powersupply, pcieslots, etc.,) dbus interfaces unpopulated. With this change, all of the motherboard subfrus which are present in the symlink json will get its interfaces populated on dbus during genesis boot. Test: Tested on simics rainier2s2u. Able to see all of the interfaces of motherboard's subfrus after the genesis boot. 1. motherboard's subfru - powersupply0 root@p10bmc:~# busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0 NAME TYPE SIGNATURE RESULT/VALUE FLAGS com.ibm.ipzvpd.DINF interface - - - .FL property ay 20 69 48 32 32 32 32 32 32 32 32 32 32 … emits-change writable .RI property ay 4 0 3 16 0 emits-change writable .RT property ay 0 emits-change writable com.ibm.ipzvpd.Location interface - - - .LocationCode property s "U78DA.ND0.1234567-E0" emits-change writable com.ibm.ipzvpd.VINI interface - - - .B3 property ay 0 emits-change writable .B4 property ay 0 emits-change writable .B7 property ay 0 emits-change writable .CC property ay 4 53 49 69 57 emits-change writable .CE property ay 0 emits-change writable .CT property ay 0 emits-change writable .DR property ay 6 73 66 77 32 80 83 emits-change writable .FG property ay 0 emits-change writable .FN property ay 1 99 emits-change writable .HE property ay 0 emits-change writable .HW property ay 0 emits-change writable .HX property ay 0 emits-change writable .PN property ay 8 114 101 118 105 115 105 111 110 emits-change writable .PR property ay 0 emits-change writable .RT property ay 0 emits-change writable .SN property ay 12 89 76 49 48 75 115 101 114 105 97 10… emits-change writable .TS property ay 0 emits-change writable .VN property ay 0 emits-change writable .VZ property ay 0 emits-change writable org.freedesktop.DBus.Introspectable interface - - - .Introspect method - s - org.freedesktop.DBus.Peer interface - - - .GetMachineId method - s - .Ping method - - - org.freedesktop.DBus.Properties interface - - - .Get method ss v - .GetAll method s a{sv} - .Set method ssv - - .PropertiesChanged signal sa{sv}as - - xyz.openbmc_project.Association.Definitions interface - - - .Associations property a(sss) 3 "fault_led_group" "fault_inventory_ob… emits-change writable xyz.openbmc_project.Inventory.Decorator.Asset interface - - - .BuildDate property s "" emits-change writable .Manufacturer property s "" emits-change writable .Model property s "51E9" emits-change writable .PartNumber property s "revision" emits-change writable .SerialNumber property s "serial" emits-change writable .SparePartNumber property s "c" emits-change writable .SubModel property s "" emits-change writable xyz.openbmc_project.Inventory.Decorator.LocationCode interface - - - .LocationCode property s "U78DA.ND0.1234567-E0" emits-change writable xyz.openbmc_project.Inventory.Item interface - - - .Present property b true emits-change writable .PrettyName property s "powersupply0" emits-change writable xyz.openbmc_project.Inventory.Item.PowerSupply interface - - - xyz.openbmc_project.Object.Enable interface - - - .Enabled property b false emits-change writable xyz.openbmc_project.Software.Version interface - - - .Purpose property s "xyz.openbmc_project.Software.Version.V… emits-change writable .Version property s "313033323330" emits-change writable xyz.openbmc_project.State.Decorator.OperationalStatus interface - - - .Functional property b true emits-change writable root@p10bmc:~# =========== 2. motherboard's subfru - pcieslot0 root@p10bmc:~# busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0 NAME TYPE SIGNATURE RESULT/VALUE FLAGS com.ibm.ipzvpd.Location interface - - - .LocationCode property s "U78DA.ND0.1234567-P0-C0" emits-change writable org.freedesktop.DBus.Introspectable interface - - - .Introspect method - s - org.freedesktop.DBus.Peer interface - - - .GetMachineId method - s - .Ping method - - - org.freedesktop.DBus.Properties interface - - - .Get method ss v - .GetAll method s a{sv} - .Set method ssv - - .PropertiesChanged signal sa{sv}as - - xyz.openbmc_project.Association.Definitions interface - - - .Associations property a(sss) 3 "fault_led_group" "fault_inventory_ob… emits-change writable xyz.openbmc_project.Inventory.Decorator.LocationCode interface - - - .LocationCode property s "U78DA.ND0.1234567-P0-C0" emits-change writable xyz.openbmc_project.Inventory.Item.PCIeSlot interface - - - .Generation property s "xyz.openbmc_project.Inventory.Item.PCI… emits-change writable .HotPluggable property b false emits-change writable .Lanes property u 0 emits-change writable .SlotType property s "xyz.openbmc_project.Inventory.Item.PCI… emits-change writable xyz.openbmc_project.Object.Enable interface - - - .Enabled property b false emits-change writable xyz.openbmc_project.State.Decorator.OperationalStatus interface - - - .Functional property b true emits-change writable xyz.openbmc_project.State.Decorator.PowerState interface - - - .PowerState property s "xyz.openbmc_project.State.Decorator.Po… emits-change writable root@p10bmc:~# Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com> Change-Id: I7a5c6dc23ef5b09a99f013c0540ecc59913c92c6
This repository hosts code for OpenPower and IBM IPZ format VPD parsers. Both OpenPower VPD and IPZ VPD formats are structured binaries that consist of records and keywords. A record is a collection of multiple keywords. More information about the format can be found here.
The repository consists of two distinct applications, which are:
This is a build-time YAML driven application that parses the OpenPower VPD format and uses the YAML configuration (see extra-properties-example.yaml and writefru.yaml) to determine:
The application instance must be passed in the file path to the VPD (this can, for example, be a sysfs path exposed by the EEPROM device driver) and also the D-Bus object path(s) that EEPROM data needs to be published under.
This parser is can be built by passing in the --enable-ibm-parser
configure option. This parser differs from the OpenPower VPD parser in the following ways:
#
and are > 255 bytes in length).Making the application runtime JSON driven allows us to support multiple systems (with different FRU configurations) to be supported in a single code image as well as making the application more flexible for future improvements.