| commit | 4ed13dbaf527caa1b7358b325e233e5f11b244af | [log] [tgz] |
|---|---|---|
| author | Anupama B R <anupama.b.r1@ibm.com> | Mon Nov 10 00:54:35 2025 -0600 |
| committer | SunnySrivastava <sunnsr25@in.ibm.com> | Wed Nov 12 05:04:39 2025 +0000 |
| tree | 351b75bb5ebcd44d32ef1c933e72224a0b1b29f4 | |
| parent | a39aafa337352262596e07577fdf88cc294284c9 [diff] |
Fix clearing of LocationCode after deleteFRUVPD
LocationCode in the com.ibm.ipzvpd.Location interface was being set to
an empty string when deleteFRUVPD was called for a FRU in vpd-manager.
This should not happen because the LocationCode is fixed for a FRU,
regardless of whether the FRU is present or not.
This commit fixes the above issue and updates the vpd-tool to use the
standard xyz interface to display the LocationCode instead of the
OEM-specific interface.
Test:
```
Dump object before delete FRU
root@rainvpdteam:~# vpd-tool -o -O /system/chassis/motherboard/lcd_op_panel_hill
[
{
"/system/chassis/motherboard/lcd_op_panel_hill": {
"CC": "6B87",
"DR": "CEC OP PANEL LCD",
"FN": "02WF367",
"LocationCode": "U78DA.ND0. -D1",
"PN": "02WF364",
"PrettyName": "Control panel display",
"SN": "YA30UF04R007",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.Panel"
}
}
]
Call delete FRU VPD:
root@rainvpdteam:~# busctl call com.ibm.VPD.Manager /com/ibm/VPD/Manager com.ibm.VPD.Manager deleteFRUVPD o /xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill
After Delete, Location code on DBus:
root@rainvpdteam:~# busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill xyz.openbmc_project.Inventory.Decorator.LocationCode
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
.LocationCode property s "U78DA.ND0. -D1" emits-change writable
root@rainvpdteam:~# busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill com.ibm.ipzvpd.Location
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
.LocationCode property s "U78DA.ND0. -D1" emits-change writable
Set FRU Present Property:
root@rainvpdteam:~# busctl set-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill xyz.openbmc_project.Inventory.Item Present b true
Dump object details, with correct location code:
root@rainvpdteam:~# vpd-tool -o -O /system/chassis/motherboard/lcd_op_panel_hill
[
{
"/system/chassis/motherboard/lcd_op_panel_hill": {
"CC": "",
"DR": "",
"FN": "",
"LocationCode": "U78DA.ND0. -D1",
"PN": "",
"PrettyName": "",
"SN": "",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.Panel"
}
}
]
```
Change-Id: Ie6db0584b46f69b340034ecf63c06197f31f46af
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.