| commit | b498cd3c64a5ae088e9eebbe809bd638352c22c2 | [log] [tgz] |
|---|---|---|
| author | girik <giridharikrishnan@gmail.com> | Tue Apr 25 04:17:29 2023 -0500 |
| committer | Jinu Joy Thomas <jinu.joy.thomas@in.ibm.com> | Fri May 05 09:50:10 2023 +0000 |
| tree | fc2a886206145b4be44fc08b14401e2eb17348a9 | |
| parent | 0abbb9c9ba2eab2fbd78843c96caafd53223904a [diff] |
vpd-tool: Bug fix for displaying non printable value
Hexa decimal string getting truncated to a byte,
This fix addresses the issue.
Test:
/tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VCFG -K Z1
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"Z1": "0x0894ef83188c"
}
}
/tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VCFG -K Z0
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"Z0": "0x0894ef83188b"
}
}
/tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VCFG -K HW
The given keyword HW or record VCFG or both are not present in the given FRU path /sys/bus/i2c/drivers/at24/8-0050/eeprom
/tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K HW
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"HW": "0x8001"
}
}
~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K B3
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"B3": ""
}
}
:~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K B4
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"B4": ""
}
}
~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K B7
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"B7": ""
}
}
~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R PSPD -K "#D"
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"#D": "0x00100c0c000 .... 000000000000000000" }
}
10240 Bytes printed.
~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K SN
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"SN": "YF30UF31C007"
}
}
~# /tmp/vpd-tool_combin -r -O /system/chassis/motherboard -R VINI -K SN
{
"/system/chassis/motherboard": {
"SN": "YF30UF31C007"
}
}
~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K FN
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"FN": "F230306"
}
}
~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K PN
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"PN": "03KP340"
}
}
~# /tmp/vpd-tool_combin -r -O /system/chassis/motherboard -R VINI -K FN
{
"/system/chassis/motherboard": {
"FN": "F230306"
}
}
~# /tmp/vpd-tool_combin -r -O /system/chassis/motherboard -R VINI -K PN
{
"/system/chassis/motherboard": {
"PN": "03KP340"
}
}
~# /tmp/vpd-tool_combin -r -O /system/chassis/motherboard -R VINI -K B3
{
"/system/chassis/motherboard": {
"B3": ""
}
}
~# /tmp/vpd-tool_combin -r -O /system/chassis/motherboard -R VINI -K B4
{
"/system/chassis/motherboard": {
"B4": ""
}
}
~# /tmp/vpd-tool_combin -r -O /system/chassis/motherboard -R VINI -K B7
{
"/system/chassis/motherboard": {
"B7": ""
}
}
HexDump results for comparison:
00000820 47 56 5a 02 30 31 5a 30 06 08 94 ef 83 18 8b 5a |GVZ.01Z0.......Z|
00000830 31 06 08 94 ef 83 18 8c 50 46 0b 00 00 00 00 00 |1.......PF......
00000160 45 04 30 30 30 31 43 54 04 40 18 00 0e 48 57 02 |E.0001CT.@...HW.|
00000170 80 01 42 33 06 00 00 00 00 00 00 42 34 01 00 42 |..B3.......B4..B|
00000180 37 0c 00 00 00 00 00 00 00 00 00 00 00 00 50 46 |7.............PF|
000008a0 30 32 56 4d 04 00 00 00 00 23 44 00 28 00 10 0c |02VM.....#D.(...|
000008b0 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000008c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000920 00 00 00 00 00 00 00 00 00 00 00 b9 cc 00 00 00 |................|
00000930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000970 00 00 00 80 29 b0 00 15 60 04 50 00 00 df 03 ff |....)...`.P.....|
00000980 f3 0f 00 00 01 00 00 00 00 03 00 00 00 00 00 00 |................|
00000990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000009b0 00 00 00 00 00 00 00 00 00 00 00 00 00 81 00 00 |................|
Signed-off-by: Giridhari Krishna <giridharikrishnan@gmail.com>
Change-Id: If380ca3483fb4fc88ca1dd159b2fa75703c8fe1c
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.