commit | c2fe40f853191f248b0a2a4f21ed9d65b403b909 | [log] [tgz] |
---|---|---|
author | PriyangaRamasamy <priyanga24@in.ibm.com> | Tue Mar 02 06:27:33 2021 -0600 |
committer | PriyangaRamasamy <priyanga24@in.ibm.com> | Mon May 24 05:25:41 2021 -0500 |
tree | 32724efe7b25128c0ef21608ded0b5e161e17c23 | |
parent | 33c61c2d634c116d9b31b0a3d7c69860e9dbcaab [diff] |
Collect Bad/Broken VPDs in BMC When there is a vpd failure case due to the corruption in vpd data, this commit collects the bad vpd into BMC tmp/bad-vpd directory, so that this bad-vpd directory gets into BMC Dump collection. Tested on simics. 1.Corrupted the data of a vpd file. dd if=/dev/zero of=/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a500.i2c-bus/i2c-9/9-0050/9-00500/nvmem bs=1 seek=170 count=3 2.No bad-vpd directory before executing the commit changes. root@rainier:/tmp# ls dbus_properties.json systemd-private-9dfe8fba43254dfc8b7be9e4278a3ced-systemd-resolved.service-8pLWbo ibm-read-vpd systemd-private-9dfe8fba43254dfc8b7be9e4278a3ced-systemd-timesyncd.service-7yowK9 images vpd-manager overlays vpd-tool systemd-private-9dfe8fba43254dfc8b7be9e4278a3ced-dbus-broker.service-hb47BQ root@rainier:/tmp# 3. Due to the data corruption, ibm-read-vpd throws exception root@rainier:/tmp# ./ibm-read-vpd --file /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a500.i2c-bus/i2c-9/9-0050/9-00500/nvmem std::exception root@rainier:/tmp# 4. And collects the broken vpd into bad-vpd directory in /tmp root@rainier:/tmp# ls bad-vpd systemd-private-9dfe8fba43254dfc8b7be9e4278a3ced-dbus-broker.service-hb47BQ dbus_properties.json systemd-private-9dfe8fba43254dfc8b7be9e4278a3ced-systemd-resolved.service-8pLWbo ibm-read-vpd systemd-private-9dfe8fba43254dfc8b7be9e4278a3ced-systemd-timesyncd.service-7yowK9 images vpd-manager overlays vpd-tool root@rainier:/tmp# 5. The bad vpd file is stored in /tmp/bad-vpd directory. root@rainier:/tmp/bad-vpd# ls -l -rw-r--r-- 1 root root 16384 Mar 28 19:54 i2c-9-0050 -rw-r--r-- 1 root root 65504 Mar 28 20:01 spi22 (vpd-names of i2c eeproms will be in the pattern "i2c-busNumber-eepromAddress"; for spi eeproms - "spiBusNumber") Signed-off-by: PriyangaRamasamy <priyanga24@in.ibm.com> Change-Id: I34fb8c61c79e02ca72d7e99413baebf7e5cb3d53
#Overview 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.