| 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.