commit | 5cd1b2d508ec8263609a5a0d9e43157e3318d387 | [log] [tgz] |
---|---|---|
author | Anupama B R <anupama.b.r1@ibm.com> | Tue Aug 05 04:57:40 2025 -0500 |
committer | SunnySrivastava <sunnsr25@in.ibm.com> | Fri Aug 29 05:06:29 2025 +0000 |
tree | f97eb8d0ab952e4425b19334aa182d1b28bbfb66 | |
parent | 9443af22c813a4f405977850f12996a5c2a5cabb [diff] |
Use xyz interface to update VPD collection status This commit adds code to use xyz.openbmc_project.Common.Progress interface instead of the com.ibm.VPD.Collection to update VPD collection status of the FRU. Output: ``` Tested on rainier system: During inventory priming, observed Status as below # Status updated as NotStarted: root@p11bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/tpm_wilson xyz.openbmc_project.Common.Progress Status s "xyz.openbmc_project.Common.Progress.OperationStatus.NotStarted" Status updated as InProgress: root@p11bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/tpm_wilson xyz.openbmc_project.Common.Progress Status s "xyz.openbmc_project.Common.Progress.OperationStatus.InProgress" Status updated as Completed: root@p11bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/tpm_wilson xyz.openbmc_project.Common.Progress Status s "xyz.openbmc_project.Common.Progress.OperationStatus.Completed" root@p11bmc:~# FRU whose VPD collection is failed: After Priming - root@p11bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14 xyz.openbmc_project.Common.Progress Status s "xyz.openbmc_project.Common.Progress.OperationStatus.NotStarted" After VPD collection failed - root@p11bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14 xyz.openbmc_project.Common.Progress Status s "xyz.openbmc_project.Common.Progress.OperationStatus.Failed" Collection status update during deleteFRUVPD # Before delete - root@p11bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10 xyz.openbmc_project.Common.Progress Status; busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10/c10_connector0 xyz.openbmc_project.Common.Progress Status; busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10/c10_connector1 xyz.openbmc_project.Common.Progress Status; busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10/c10_connector2 xyz.openbmc_project.Common.Progress Status; busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10/c10_connector3 xyz.openbmc_project.Common.Progress Status s "xyz.openbmc_project.Common.Progress.OperationStatus.Completed" s "xyz.openbmc_project.Common.Progress.OperationStatus.Completed" s "xyz.openbmc_project.Common.Progress.OperationStatus.Completed" s "xyz.openbmc_project.Common.Progress.OperationStatus.Completed" s "xyz.openbmc_project.Common.Progress.OperationStatus.Completed" After delete operation - root@p11bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10 xyz.openbmc_project.Common.Progress Status; busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10/c10_connector0 xyz.openbmc_project.Common.Progress Status; busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10/c10_connector1 xyz.openbmc_project.Common.Progress Status; busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10/c10_connector2 xyz.openbmc_project.Common.Progress Status; busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10/c10_connector3 xyz.openbmc_project.Common.Progress Status s "xyz.openbmc_project.Common.Progress.OperationStatus.NotStarted" s "xyz.openbmc_project.Common.Progress.OperationStatus.NotStarted" s "xyz.openbmc_project.Common.Progress.OperationStatus.NotStarted" s "xyz.openbmc_project.Common.Progress.OperationStatus.NotStarted" s "xyz.openbmc_project.Common.Progress.OperationStatus.NotStarted" Collection status update during CollectFRUVPD # Before collection: root@p11bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill xyz.openbmc_project.Common.Progress Status s "xyz.openbmc_project.Common.Progress.OperationStatus.Completed" After CollectFRUVPD method call - root@p11bmc:~# busctl call com.ibm.VPD.Manager /com/ibm/VPD/Manager com.ibm.VPD.Manager CollectFRUVPD o "/xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill" Status updated as below during the process – root@p11bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill xyz.openbmc_project.Common.Progress Status s "xyz.openbmc_project.Common.Progress.OperationStatus.InProgress" root@p11bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill xyz.openbmc_project.Common.Progress Status s "xyz.openbmc_project.Common.Progress.OperationStatus.Completed" ``` Change-Id: I705e10e80b90df9bac338e8b5475d95690e05ace 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.