commit | a4a2adfa96d2c491b1baf776013a6442bc88c78b | [log] [tgz] |
---|---|---|
author | Priyanga Ramasamy <priyanga24@in.ibm.com> | Thu Feb 03 05:43:41 2022 -0600 |
committer | Santosh Puranik <santosh.puranik@in.ibm.com> | Mon Apr 25 04:19:50 2022 +0000 |
tree | 0f3ae7e7fa105b279b366e6da37ffd213f6ea6b1 | |
parent | bf78ed8883a067d6f297860ceb54dbd6148b2d25 [diff] |
VPD ECC shared library This commit makes the VPD ECC source into a shared library and links the shared library with other executables which are dependant on VPD ECC. Since the ECC source file is confidential, we need to share the ECC as a shared library to the IBM Power customers. Test: Tested on simics: 1. Corrupted the vpd data. root@p10bmc:/usr/lib# dd if=/dev/zero of=/sys/bus/i2c/drivers/at24/7-0050/eeprom bs=1 count=2 seek=184 2+0 records in 2+0 records out root@p10bmc:/usr/lib# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/7-0050/eeprom ERROR: ECC check did not pass for the Record:VINI 2. VPD Parser parsed successfully for a valid vpd root@p10bmc:/usr/lib# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/7-0050/eeprom <no error> 3.ECC Code worked fine with VPD-Manager root@p10bmc:/usr/lib# vpd-tool -w -O /system/chassis/motherboard/base_op_panel_blyth -R VINI -K PN -V "PN34" root@p10bmc:/usr/lib# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/7-0050/eeprom root@p10bmc:/usr/lib# root@p10bmc:/usr/lib# root@p10bmc:/usr/lib# vpd-tool -w -O /system/chassis/motherboard/base_op_panel_blyth -R VINI -K PN -V "PN12" root@p10bmc:/usr/lib# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/7-0050/eeprom Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com> Change-Id: I72306b06ca8724193ef5ef05a0659467994a154d
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.