commit | 2ee8a21910258b4bba1731e79f2df3a336f4e38e | [log] [tgz] |
---|---|---|
author | Souvik Roy <souvikroyofficial10@gmail.com> | Thu Apr 24 02:37:59 2025 -0500 |
committer | Souvik Roy <souvikroyofficial10@gmail.com> | Wed Apr 30 08:20:54 2025 -0500 |
tree | 1ef9a6e8dc5920046f67711009c8316840d4bcb0 | |
parent | 50731e434cf1ca691d336aa2202311ba76f2a03b [diff] |
Sync keyword update to inherited FRUs This commit syncs keyword update to all inherited FRUs. When a keyword value is updated either from vpd-tool or from vpd-manager WriteKeyword API, the keyword update should also be synced to all inherited FRUs on PIM to prevent mismatch. Test: ``` Tested on a rainier 2s2u simics setup. 1. Ensure BMC is in Ready state 2. Read VINI PN of /system/chassis/motherboard using vpd-tool 3. Update VINI PN of /system/chassis/motherboard using vpd-tool 4. Once vpd-tool returns success, read VINI PN of inherited FRUs /system/chassis and /system/chassis/motherboard/tod_battery 5. VINI PN value should be same on the inherited FRUs. ``` Change-Id: Iff7340a111722f9e5336c0c846a79ffec8bbb8db 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.