tree b0ee3218cc7066c2c83156062f94d22233d4c6b1
parent ab1e22c36f1e775f70b97873f5b5f538a1fddf8f
author Priyanga Ramasamy <priyanga24@in.ibm.com> 1641884732 -0600
committer Santosh Puranik <santosh.puranik@in.ibm.com> 1643723368 +0000

Set one time properties for non primeable frus

This commit enables vpd-parser to populate one time properties
like "OperationalStatus" and "Enabled" for non primeable frus.

Tested on rainier:

cablecard/cxp_ports are non primeable frus.

Modified inventory json for this testing:
Since am not finding a system with ibm-cablecards, edited vpd_inventory.json
by including cablecard vpd's CCIN in cablecard ccin list to populate cxp_ports.

====> root@rain100bmc:/tmp# busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10/cxp_top
NAME                                                 TYPE      SIGNATURE RESULT/VALUE                             FLAGS
com.ibm.ipzvpd.Location                              interface -         -                                        -
.LocationCode                                        property  s         "U78DA.ND0.WZS004A-P0-C10-T0"            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)    2 "fault_led_group" "fault_inventory_ob… emits-change writable
xyz.openbmc_project.Inventory.Decorator.LocationCode interface -         -                                        -
.LocationCode                                        property  s         "U78DA.ND0.WZS004A-P0-C10-T0"            emits-change writable
xyz.openbmc_project.Inventory.Item.Connector         interface -         -                                        -
root@rain100bmc:/tmp#

====> root@rain100bmc:/tmp# ./ibm-read-vpd --file /sys/bus/i2c/drivers/at24/11-0050/eeprom

====> root@rain100bmc:/tmp# busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10/cxp_top
NAME                                                  TYPE      SIGNATURE RESULT/VALUE                             FLAGS
com.ibm.ipzvpd.Location                               interface -         -                                        -
.LocationCode                                         property  s         "U78DA.ND0.WZS004A-P0-C10-T0"            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)    2 "fault_led_group" "fault_inventory_ob… emits-change writable
xyz.openbmc_project.Inventory.Decorator.LocationCode  interface -         -                                        -
.LocationCode                                         property  s         "U78DA.ND0.WZS004A-P0-C10-T0"            emits-change writable
xyz.openbmc_project.Inventory.Item.Connector          interface -         -                                        -
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
root@rain100bmc:/tmp#

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: I16e4af25f7427812054871e524e51829713c0012
