| commit | 5cb3b1f361d347c7881d546241c4bb214d246da2 | [log] [tgz] |
|---|---|---|
| author | alpana07 <alpana07@gfw289.aus.stglabs.ibm.com> | Thu Dec 16 11:19:36 2021 -0600 |
| committer | Santosh Puranik <santosh.puranik@in.ibm.com> | Mon Mar 07 04:38:09 2022 +0000 |
| tree | 68c2a361474780fd9d93ac8a56d84d3d283d0bab | |
| parent | 64b9f5f12083b15e47d1df63a3be3500d8c842c4 [diff] |
PEL: Error support for VPD
This commit takes care of logging predictive error in case of
any vpd file has invalid data/no data.
If FRU is present on the system and due to any reason vpd
collection fails, then there should be a non-informational
PEL to indicate there is a vpd issue.
Test: Tested for an empty vpd file-
./ibm-read-vpd -f /tmp/empty.vpd
"0x500011DF": {
"SRC": "BD554001",
"Message": "A VPD data exception occurred.",
"PLID": "0x500011DF",
"CreatorID": "BMC",
"Subsystem": "CEC Hardware - VPD Interface",
"Commit Time": "12/22/2021 04:20:05",
"Sev": "Predictive Error",
"CompID": "0x4000"
}
Change-Id: I4fe119b580b555bb1bc47bf1f714bac4fb7e2b55
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.