commit | b17dd3b3e45d9add8e37f549e6f3ab63ecdf4340 | [log] [tgz] |
---|---|---|
author | Alpana Kumari <alpankum@in.ibm.com> | Thu Oct 01 00:18:10 2020 -0500 |
committer | Santosh Puranik <santosh.puranik@in.ibm.com> | Tue Sep 14 19:45:13 2021 +0530 |
tree | aa7560f9de6e8ff2e597f76eaa2127c7cb427383 | |
parent | 7ce68724414f4c7eb9786379be9bf991e98261e2 [diff] |
Enable dynamic presence detect of FRUs This commit enables presence detect of FRUs at runtime. Anytime any FRU can get attached or de-attached, this code will detect it and will enable/disable the corresponding output I2C pin respectively. Right now we have only one FRU- op-panel, which is attachable or de-attachable at runtime. Test- Tested on Simics: >> 2timers keep running, as part of vpd-manager- ./vpd-manager keep checking for event occurance... hasEventOccurred ? keep checking for event occurance... hasEventOccurred ? >> changed signal at presence-pin of FRU2 keep checking for event occurance... hasEventOccurred ? keep checking for event occurance... hasEventOccurred ? Yes, togggle the gpio <---------------------event on 2nd timer >> Again, changed signal at presence-pin of FRU2 keep checking for event occurance... hasEventOccurred ? keep checking for event occurance... hasEventOccurred ? Yes, togggle the gpio <---------------------event on 2nd timer >> changed signal at presence-pin of FRU1 keep checking for event occurance... hasEventOccurred ? Yes, togggle the gpio <---------------------event on 1st timer keep checking for event occurance... hasEventOccurred ? >> Again changed signal at presence-pin of FRU1 keep checking for event occurance... hasEventOccurred ? Yes, togggle the gpio <---------------------event on 1st timer keep checking for event occurance... hasEventOccurred ? >> Noticed change on output gpio after every signal change. As of now for testing, output gpio is same for both of these FRUs- >> Effects on i2c- i2cdetect -y 7 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 50: UU UU UU -- -- -- -- -- -- -- 5a -- -- -- -- -- 60: UU UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- UU -- i2cdetect -y 7 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 50: UU 51 UU -- -- -- -- -- -- -- 5a -- -- -- -- -- 60: UU UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- UU -- Also tested for write functionality, shouldn't be affected due to this change It looks fine. root@p10bmc:~# busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard |grep PN .PN property ay 7 48 50 87 71 54 55 56 emits-change writable root@p10bmc:~# busctl call com.ibm.VPD.Manager /com/ibm/VPD/Manager com.ibm.VPD.Manager WriteKeyword ossay "/system/chassis/motherboard" "VINI" "PN" 1 80 root@p10bmc:~# busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard |grep PN .PN property ay 7 80 50 87 71 54 55 56 emits-change writable root@p10bmc:~# busctl call com.ibm.VPD.Manager /com/ibm/VPD/Manager com.ibm.VPD.Manager WriteKeyword ossay "/system/chassis/motherboard" "VINI" "PN" 1 48 root@p10bmc:~# busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard |grep PN .PN property ay 7 48 50 87 71 54 55 56 emits-change writable Change-Id: If7d311d36bf56ece751afe393a9ba2d83be5df11 Signed-off-by: Alpana Kumari <alpankum@in.ibm.com>
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.