commit | 612bce854fc0d212bc79e35aba1058450c04fdc3 | [log] [tgz] |
---|---|---|
author | Souvik Roy <souvikroyofficial10@gmail.com> | Wed Apr 16 02:22:33 2025 -0500 |
committer | Souvik Roy <souvikroyofficial10@gmail.com> | Thu Apr 24 01:35:06 2025 -0500 |
tree | bf07d352b8e366a36a78786f46c84212fcbc8621 | |
parent | 6f14283e7b5d52ca89afb4ce4a4fb6f05cf903de [diff] |
Log PEL and dump VPD if invalid record(s) found This commit adds changes in ipz parser to log predictive PEL if any invalid record(s) is found while parsing. Processing of records still continues even if any invalid record is found. At the end of parsing the VPD: 1. A predictive PEL is logged which specifies FRU path and list of invalid records. 2. The bad VPD binary data is dumped to filesystem so that it can be collected by FFDC. Test: ``` 1. Using dd command, zero out VINI DR and VMPU VZ keyword values of Op Panel EEPROM(/sys/bus/i2c/drivers/at24/7-0051/eeprom). 2. Restart vpd-manager service. 3. Check PEL list using peltool and observe that a predictive PEL is logged with the Op Panel EEPROM path in the description and a list of bad record names and respective error(Data/ECC) in the UserData1 section. 4. Check /var/lib/vpd/ directory and see dumps directory is created with a dump file which contains the Op Panel EEPROM binary data 5. Restore the Op Panel EEPROM with backed up correct data 6. Clear all PELs using peltool 7. Restart vpd-manager 8. Observe no new PELs logged for invalid records ``` Change-Id: Iebb526bae3c467b1cd0a256c93d57a56fb87e9f6 Signed-off-by: Souvik Roy <souvikroyofficial10@gmail.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.