commit | 0e34d3574cc2512b8ac465913eb988a95c1cf808 | [log] [tgz] |
---|---|---|
author | Alpana Kumari <alpankum@in.ibm.com> | Sun Mar 21 11:38:03 2021 -0500 |
committer | Santosh Puranik <santosh.puranik@in.ibm.com> | Thu Mar 31 05:41:32 2022 +0000 |
tree | 4bc43c661eac9fec2f3cffcca35024935be574c3 | |
parent | d40e42d1252c4e30cd1ad7a22b8a0bf5cebf284c [diff] |
Handle ECC update By default openpower-vpd-parser contains dummy code of ecc_create which writes 0s to the vpd-ecc. And this corrupts the ECC. This commit will not allow the user to update any record-kwd-data with dummy ecc_create code as it returns -1. If want to update any vpd data then build your image with vpdecc functions implementation. Test- when tried to update the keyword- busctl call com.ibm.VPD.Manager /com/ibm/VPD/Manager com.ibm.VPD.Manager WriteKeyword ossay "/system/chassis/motherboard" "VINI" "PN" 1 65 ERROR: ECC update failed And another terminal output- root@rainier:/tmp# ./vpd-manager Error: Couldn't update the ECC Signed-off-by: Alpana Kumari <alpankum@in.ibm.com> Change-Id: I7333a79ff06ac1acd21f9e10f99b4a78cb5705db
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.