commit | 7b293cdc5d6c90c72776292c2279ae755b3075f8 | [log] [tgz] |
---|---|---|
author | Anupama B R <anupama.b.r1@ibm.com> | Fri Mar 28 05:35:01 2025 -0500 |
committer | Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com> | Wed Jul 16 07:23:00 2025 +0000 |
tree | 2b08799c473eef2ddf0e10e651bffc1b1ea37425 | |
parent | f7bb4dbafb5f8070fcec888c03a8b4c9e3a1fbc7 [diff] |
Backup or restore keyword implementation This commits implements backup or restore keyword’s value on the system. Conditions for updating the value, * System’s primary and backup VPD’s should be on the hardware. * Record and keyword should be found in the backup and restore config JSON. Backup or restore keyword’s value is triggered based on the following, * Backup - While updating VPD on the primary path, VPD on backup path gets updated. * Restore - While updating VPD on the backup path, VPD on primary path gets updated. Output: ``` Before updating keyword’s value: vpd-tool -O /sys/bus/i2c/drivers/at24/7-0050/eeprom -R VSBK -K BR -r -H; vpd-tool -O /system/chassis/motherboard/base_op_panel_blyth -R VSBK -K BR -r; vpd-tool -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R VSYS -K BR -r -H; vpd-tool -O /system/chassis/motherboard -R VSYS -K BR -r { "/sys/bus/i2c/drivers/at24/7-0050/eeprom": { "BR": "S0" } } { "/system/chassis/motherboard/base_op_panel_blyth": { "BR": "S0" } } { "/sys/bus/i2c/drivers/at24/8-0050/eeprom": { "BR": "S0" } } { "/system/chassis/motherboard": { "BR": "S0" } } Update keyword’s value: root@bonn026bmc:~# vpd-tool -O /system/chassis/motherboard -R VSYS -K BR -w -V 89 Data updated successfully After updating keyword’s value: root@bonn026bmc:~# vpd-tool -O /sys/bus/i2c/drivers/at24/7-0050/eeprom -R VSBK -K BR -r -H; vpd-tool -O /system/chassis/motherboard/base_op_panel_blyth -R VSBK -K BR -r; vpd-tool -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R VSYS -K BR -r -H; vpd-tool -O /system/chassis/motherboard -R VSYS -K BR -r { "/sys/bus/i2c/drivers/at24/7-0050/eeprom": { "BR": "89" } } { "/system/chassis/motherboard/base_op_panel_blyth": { "BR": "89" } } { "/sys/bus/i2c/drivers/at24/8-0050/eeprom": { "BR": "89" } } { "/system/chassis/motherboard": { "BR": "89" } } Note: similarly, tested by updating backup path, observed that both primary and backup keyword’s value got updated with provided new value. ``` Change-Id: I175e55305d103b1833d07bbd14b3e76dd7d02cc9 Signed-off-by: Anupama B R <anupama.b.r1@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 at a broken link.
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.