| 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.