History log of /openbmc/openpower-vpd-parser/vpd_tool_impl.hpp (Results 1 – 25 of 27)
Revision Date Author Comments
# 08dc31cd 16-Aug-2024 Patrick Williams <patrick@stwcx.xyz>

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda forma

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda formatting also changed, so we have made changes to the
organization default style format to better handle lambda formatting.

See I5e08687e696dd240402a2780158664b7113def0e for updated style.
See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.

Change-Id: I917f3a65c985f3df3bb4d7a1bef0a13da54ab7bd
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# af921756 17-Jun-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

Fix spelling mistakes using codespell

This commit corrects various spelling mistakes throughout the
repository. The corrections were made automatically using `codespell`[1]
tool.

[1]: https://githu

Fix spelling mistakes using codespell

This commit corrects various spelling mistakes throughout the
repository. The corrections were made automatically using `codespell`[1]
tool.

[1]: https://github.com/codespell-project/codespell

Change-Id: Iae81201889d1bb4ca324243b863948cb60420ae7
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# 0eb8cacc 19-Sep-2023 priyaram <priyanga24@in.ibm.com>

vpd-tool:Fix system VPD and its backup VPD

vpd-tool fixSystemVPD implementation to backup and restore system VPD
to and from the backup VPD if the backup VPD path is found in
vpd inventory JSON.

Te

vpd-tool:Fix system VPD and its backup VPD

vpd-tool fixSystemVPD implementation to backup and restore system VPD
to and from the backup VPD if the backup VPD path is found in
vpd inventory JSON.

Test:
(Truncating the output in commit message)

===>>CASE 1: Option 6 to update new value on both backup and primary
hardware and its cache.

vpd-tool --fixSystemVPD
=============================================================
S.No Record Keyword Backup Data Primary Data Data Mismatch
1 UTIL D0 0x01 0x01 NO
============================================================

>> Enter the new value to update on both primary & backup. Value should be in ASCII or in HEX(prefixed with 0x) : 0x00

busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/base_op_panel_blyth com.ibm.ipzvpd.VSBK D0
ay 1 0

busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.UTIL D0
ay 1 0

===>>CASE 2: Option 4 to update primary with backup data

vpd-tool -w -O /system/chassis/motherboard -R LXR0 -K LX -V 0x333435363738
Data updated successfully

vpd-tool --fixSystemVPD
=================================================================================
S.No Record Keyword Backup Data Primary Data Data Mismatch
6 LXR0 LX 0x310004010030007b 0x333435363738007b YES
=================================================================================

Enter 4 => If you choose the data on backup as the right value : 4

busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.LXR0 LX
ay 8 49 0 4 1 0 48 0 123

===>>CASE 3: Option 5 to update backup with primary value
vpd-tool -w -O /system/chassis/motherboard/base_op_panel_blyth -R VSBK -K FC -V "abcd"
Data updated successfully

vpd-tool --fixSystemVPD
=================================================================================
S.No Record Keyword Backup Data Primary Data Data Mismatch
7 VCEN FC 0x616263642d303031 0x324534412d303031 YES
=================================================================================

Enter 5 => If you choose the data on primary as the right value : 5

busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/base_op_panel_blyth com.ibm.ipzvpd.VSBK FC
ay 8 50 69 52 65 45 48 48 49

===>>CASE 4: Option 2 to update all mismatching keywords with its primary data

vpd-tool -w -O /system/chassis/motherboard/base_op_panel_blyth -R VSBK -K FC -V "abcd"
Data updated successfully

vpd-tool -w -O /system/chassis/motherboard/base_op_panel_blyth -R VSBK -K D0 -V "abcd"
Data updated successfully

vpd-tool --fixSystemVPD
=================================================================================
S.No Record Keyword Backup Data Primary Data Data Mismatch
=================================================================================
1 UTIL D0 0x61 0x01 YES
-------------------------------------------------------------------------------
7 VCEN FC 0x616263642d303031 0x324534412d303031 YES
=================================================================================

Enter 2 => If you choose the data on primary for all mismatching record-keyword pairs : 2

Data updated successfully for all mismatching record-keyword pairs by choosing their corresponding data from primary VPD.

vpd-tool -r -O /system/chassis/motherboard/base_op_panel_blyth -R VSBK -K FC
{
"/system/chassis/motherboard/base_op_panel_blyth": {
"FC": "2E4A-001"
}
}
vpd-tool -r -O /system/chassis/motherboard/base_op_panel_blyth -R VSBK -K D0
{
"/system/chassis/motherboard/base_op_panel_blyth": {
"D0": "0x01"
}
}

===>>CASE 5: Option 1

vpd-tool -w -O /system/chassis/motherboard -R UTIL -K D0 -V "abcd"
Data updated successfully
vpd-tool -w -O /system/chassis/motherboard -R UTIL -K D1 -V "abcd"
Data updated successfully

vpd-tool --fixSystemVPD
=================================================================================
S.No Record Keyword Backup Data Primary Data Data Mismatch
=================================================================================
1 UTIL D0 0x01 0x61 YES
-------------------------------------------------------------------------------
2 UTIL D1 0x00 0x61 YES
=================================================================================

Enter 1 => If you choose the data on backup for all mismatching record-keyword pairs: 1

Data updated successfully for all mismatching record-keyword pairs by choosing their corresponding data from backup. Exit successfully.

vpd-tool -r -O /system/chassis/motherboard -R UTIL -K D0
{
"/system/chassis/motherboard": {
"D0": "0x01"
}
}
vpd-tool -r -O /system/chassis/motherboard -R UTIL -K D1
{
"/system/chassis/motherboard": {
"D1": "0x00"
}
}

Change-Id: I0cfa5c869d4c44d2dd74916b5284fa2ad9b4f398
Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>

show more ...


# c78d887c 10-May-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

Change-Id: Ia442cdc88aaeaab2f1384cc46a56f5cd5e40f2f5
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 5629fbc0 01-Mar-2023 Priyanga Ramasamy <priyanga24@in.ibm.com>

vpd-tool #kw support

This commit is to enable vpd-tool read and write support for pound
keywords starting with # and for numeric keywords.

This commit enables a way to read and write keyword values

vpd-tool #kw support

This commit is to enable vpd-tool read and write support for pound
keywords starting with # and for numeric keywords.

This commit enables a way to read and write keyword values using --file
option, where --file takes a file with absolute path.

when --file option used with --readKeyword flag - vpd-tool saves the
output in the given file.
and when the file option used with --writeKeyword flag - the vpd-tool
takes the value from file and performs write operation.

Test:
-----------------------------------------------
Case 1: Read from hardware and save in text file
-----------------------------------------------
vpd-tool -r -H -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R PSPD -K "#D" --file /tmp/output.txt
Value read is saved in the file /tmp/output.txt

-----------------------------------------------
Case 2: Write to hardware by taking input from a text file
-----------------------------------------------
:~# cat /tmp/write.txt
00102030405060607020304050601020304050606040302010

:~# vpd-tool -w -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R PSPD -K "#D" --file /tmp/write.txt -H
Data updated successfully

:~# vpd-tool -r -H -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R PSPD -K "#D"
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"#D": "0x0010203040506060702030405060102030405060604030201000000000 ...0000"
}
}

-----------------------------------------------
Case 3: Read from cache and pipe to text file
-----------------------------------------------
:~# vpd-tool -r -O /system/chassis/motherboard -R PSPD -K "#D" --file /tmp/read-motherboard-#D.txt
Value read is saved in the file /tmp/read-motherboard-#D.txt

-----------------------------------------------
Case 4: Write to cache by taking input from text file
-----------------------------------------------
:~# cat /tmp/write.txt
00102030405060607020304050601020304050606040302010

:~# vpd-tool -w -O /system/chassis/motherboard -R PSPD -K "#D" --file /tmp/write.txt
Data updated successfully

:~# vpd-tool -r -O /system/chassis/motherboard -R PSPD -K "#D"
{
"/system/chassis/motherboard": {
"#D": "0x0010203040506060702030405060102030405060604030201000000000000000000....."
}
}

-----------------------------------------------
Case 5: Write to cache by taking hex input from console
-----------------------------------------------
:~# vpd-tool -w -O /system/chassis/motherboard -R PSPD -K "#D" -V 0x65
Data updated successfully

:~# vpd-tool -r -O /system/chassis/motherboard -R PSPD -K "#D"
{
"/system/chassis/motherboard": {
"#D": "0x65100c0c000000000000000 ...
}
}

Case 5.1: Write to cache by providing ascii values as input from console

vpd-tool -w -O /system/chassis/motherboard -R PSPD -K "#D" -V abcd
Data updated successfully

vpd-tool -r -O /system/chassis/motherboard -R PSPD -K "#D"
{
"/system/chassis/motherboard": {
"#D": "0x6162636440506060702030405060102030405060604030201000000 .."
}
}

-----------------------------------------------
Case 6: Read from cache and display on console
-----------------------------------------------
:~# vpd-tool -r -O /system/chassis/motherboard -R PSPD -K "#D"
{
"/system/chassis/motherboard": {
"#D": "0x00100c0c00000000000000000000000000000000000000 .....
}
}

-----------------------------------------------
Case 7: Read from hardware and display on console
-----------------------------------------------
vpd-tool -r -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R PSPD -K "#D" -H
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"#D": "0x651020304050606070203040506010203040506060403020100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ......... 000000000000000000000000000000000000000"
}
}

-----------------------------------------------
Case 8: Write to hardware via console
-----------------------------------------------
vpd-tool -w -H -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R PSPD -K "#D" -V 0x00100c0c000000000000000000000000000000000000
Data updated successfully

vpd-tool -r -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R PSPD -K "#D" -H
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"#D": "0x00100c0c00000000000000000000000000000000000030201000000000000000000000000 ...
}
}

-----------------------------------------------
Case 9: Write 10240 bytes on dbus
-----------------------------------------------
time vpd-tool -w -O /system/chassis/motherboard -R PSPD -K "#D" --file /tmp/output.txt

Data updated successfully

real 0m49.564s
user 0m0.047s
sys 0m0.009s

time vpd-tool -r -O /system/chassis/motherboard -R PSPD -K "#D"
{
"/system/chassis/motherboard": {
"#D": "0x01100c0c0000.....0000123456782746002"
}
}

real 0m0.072s
user 0m0.057s
sys 0m0.001s
------------------------------------------------

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: I3977a7778b28ebcada7788f619b18bbca6ed0c8c

show more ...


# d90aadbf 28-Mar-2023 Priyanga Ramasamy <priyanga24@in.ibm.com>

Remove adding parent's presence for child FRUs

In the existing code, vpd-tool emplaces the parent FRU's presence for
child FRU whose "Present" property is not available on d-bus. This
gives a mislea

Remove adding parent's presence for child FRUs

In the existing code, vpd-tool emplaces the parent FRU's presence for
child FRU whose "Present" property is not available on d-bus. This
gives a misleading information on presence state of non embedded FRU's,
which can either be present or absent on a machine.

Fix:
This commit modifies the vpd-tool code to print "Unknown" if the FRU's
Present property is not available on d-bus.

Test:
1. When Present property is not published on d-bus
vpd-tool -o -O /system/chassis/motherboard/powersupply0
[
{
"/system/chassis/motherboard/powersupply0": {
"LocationCode": "U78DA.ND0.WZS0065-E0",
"Present": "Unknown",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.PowerSupply"
}
}
]

2. When Present property is set to true on dbus
:~# vpd-tool -o -O /system/chassis/motherboard/powersupply0
[
{
"/system/chassis/motherboard/powersupply0": {
"CC": "51DA",
"DR": "IBM PS",
"FN": "03FP221",
"LocationCode": "U780C.ND0.RCH0014-E0",
"PN": "03FP207",
"Present": "true",
"SN": "YL31KY12K0CX",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.PowerSupply"
}
}
]

3. When Present property is set to false on dbus
:~# vpd-tool -o -O /system/chassis/motherboard/powersupply0
[
{
"/system/chassis/motherboard/powersupply0": {
"CC": "51DA",
"DR": "IBM PS",
"FN": "03FP221",
"LocationCode": "U780C.ND0.RCH0014-E0",
"PN": "03FP207",
"Present": "false",
"SN": "YL31KY12K0CX",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.PowerSupply"
}
}
]

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: I4c8ce2141b9ae7c46f1421c59de5d627b8aad429

show more ...


# 24942235 05-Jan-2023 Priyanga Ramasamy <priyanga24@in.ibm.com>

Rewordings required in logging PEL

This commit rewords some of the comments and variables
in restore VPD PEL code and in vpd-tool restore function.

Eg:
>>Cache value -> Backup value
[As backup

Rewordings required in logging PEL

This commit rewords some of the comments and variables
in restore VPD PEL code and in vpd-tool restore function.

Eg:
>>Cache value -> Backup value
[As backup need not be in cache only]
>>Blank data -> Default data
[As default data need not be blank only]
>>Hardware data -> Primary data
The VPD backup values and backup memory are machine specific.

Thus providing generic terms makes the code statements/comments
more reliable w.r.t any machine.

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: I34fcd44e94b928db0fc30cda94eb8f03e6e87987

show more ...


# 124ae6c5 18-Oct-2022 Priyanga Ramasamy <priyanga24@in.ibm.com>

vpd-tool --mfgClean implementation

vpd-tool supports a new option --mfgClean, which cleans specific
keywords in system backplane VPD and restore it with their default
value.

This option will be use

vpd-tool --mfgClean implementation

vpd-tool supports a new option --mfgClean, which cleans specific
keywords in system backplane VPD and restore it with their default
value.

This option will be used to ensure that the VPD is properly defaulted
in the FRU stock.

The FAB test will make use this option to reset system
backplane VPD keywords to its defaults.

vpd-tool --mfgClean --yes

====================
Test:

./vpd-tool --mfgClean

This option resets some of the critical keywords in System Backplane VPD
to its default value. Do you really wish to proceed further?[yes/no]: yes

The critical keywords from system backplane VPD has been reset successfully.

./vpd-tool --mfgClean --yes

The critical keywords from system backplane VPD has been reset successfully.

Verified that the critical keywords have been reset to defaults.

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: Ia53498d222f2828d07a7d170291e641b7f69f9ac

show more ...


# 6d5e734d 14-Oct-2022 Priyanga Ramasamy <priyanga24@in.ibm.com>

Create subfunctions in vpd-tool to reuse

This commit aims in creating sub-functions in vpd-tool
fixSystemVPD implementation, so that the code can be reused in
future.

Test:
Tested that vpd-tool --f

Create subfunctions in vpd-tool to reuse

This commit aims in creating sub-functions in vpd-tool
fixSystemVPD implementation, so that the code can be reused in
future.

Test:
Tested that vpd-tool --fixSystemVPD option works as expected.

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: I6885b5642492a85a7087055a4b1bcf65c857c3ba

show more ...


# e008432a 27-Sep-2022 Priyanga Ramasamy <priyanga24@in.ibm.com>

Use namespace std in place

This commit uses std in place in header files rather than
using namespace.

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: If8e77ad0d23c7e6d8f16ea93e6

Use namespace std in place

This commit uses std in place in header files rather than
using namespace.

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: If8e77ad0d23c7e6d8f16ea93e65f34aefb6b157f

show more ...


# 43ffcf77 08-Jun-2022 Priyanga Ramasamy <priyanga24@in.ibm.com>

vpd-tool:Option to fixSystemVPD keywords

This commit has an added option in vpd-tool that fixes system VPD
restorable keywords in an interactive way.
This option is required in a field usecase.

In

vpd-tool:Option to fixSystemVPD keywords

This commit has an added option in vpd-tool that fixes system VPD
restorable keywords in an interactive way.
This option is required in a field usecase.

In the field when there is a fault in BMC and BMC gets replaced,
the replaced BMC VPD will now have all blank data. Now the Product
engineer can use vpd-tool fixSystemVPD option to update the BMC
critical keywords by chosing the corresponding keyword data from
system backplane.

Similarly when the system backplane is replaced,
using the option, the PEs' can copy the keyword data from BMC.

When both system backplane and BMC are replaced, the PEs' will have
option to update new value on both.

This interactive tool option eases keyword data updation and avoids
manual updation for each and every mismatching critical keyword.

Test: Tested on everest

// Create a mismatch.
root@ever8bmc:/tmp# ./vpd-tool-writeHardwareFix -w -H -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R VCEN -K FC -V 0x64560204
Disabled reboot
Sleep started
Enabled reboot
root@ever8bmc:/tmp#
root@ever8bmc:/tmp# busctl set-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.LXR0 LX ay 2 0x04 0x64
root@ever8bmc:/tmp#
root@ever8bmc:/tmp# busctl set-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard com.ibm.ipzvpd.VSYS WN ay 3 0x74 0x85 0x69
root@ever8bmc:/tmp# ./vpd-tool-writeHardwareFix -w -H -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R VSYS -K WN -V 0x64560204077675
Disabled reboot
Sleep started
Enabled reboot

=========

(Trimmed the output)
root@ever8bmc:/tmp# ./vpd-tool --fixSystemVPD

Restorable record-keyword pairs and their data on cache & hardware.

|======================================================================================================|
S.No Record Keyword Data On Cache Data On Hardware Data Mismatch
|======================================================================================================|
1 UTIL D0 0x69 0x69 NO
|------------------------------------------------------------------------------------------------------|
2 LXR0 LX 0x0464 0x3100080100300074 YES
|------------------------------------------------------------------------------------------------------|
3 VCEN FC 0x373830432d303031 0x645602042d303031 YES
|------------------------------------------------------------------------------------------------------|
4 VCEN SE RCH0014 RCH0014 NO
|------------------------------------------------------------------------------------------------------|
5 VSYS BR 0x5330 0x5330 NO
|------------------------------------------------------------------------------------------------------|
6 VSYS TM 0x646534302d4d5258 0x646534302d4d5258 NO
|------------------------------------------------------------------------------------------------------|
7 VSYS SE 13E8CEX 13E8CEX NO
|------------------------------------------------------------------------------------------------------|
8 VSYS SU 0x0004ac1e9fd4 0x0004ac1e9fd4 NO
|------------------------------------------------------------------------------------------------------|
9 VSYS RB 0x31000000 0x31000000 NO
|------------------------------------------------------------------------------------------------------|
10 VSYS WN 0x748569 0x645602040776754243453432 YES
|------------------------------------------------------------------------------------------------------|
11 VSYS RG 0x00000000 0x00000000 NO
|------------------------------------------------------------------------------------------------------|

Enter 1 => If you choose cache data of all mismatching record-keyword pairs
Enter 2 => If you choose hardware data of all mismatching record-keyword pairs
Enter 3 => If you wish to explore more options
Enter 0 to exit 3

|======================================================================================================|

Iterate through all restorable record-keyword pairs

|======================================================================================================|
S.No Record Keyword Data On Cache Data On Hardware Data Mismatch
1 UTIL D0 0x69 0x69 NO
|======================================================================================================|

No mismatch found.

Enter 6 => If you wish to enter a new value to update both on BMC and System Backplane
Enter 7 => If you wish to skip the above record-keyword pair
Enter 0 => To exit successfully : 6

|======================================================================================================|

Enter the new value to update both on BMC & System Backplane (Value should be in ASCII or in HEX(prefixed with 0x)) : 0x02

|======================================================================================================|

Data updated successfully.

|======================================================================================================|
S.No Record Keyword Data On Cache Data On Hardware Data Mismatch
2 LXR0 LX 0x0464 0x3100080100300074 YES
|======================================================================================================|

Enter 4 => If you choose the cache value as the right value
Enter 5 => If you choose hardware value as the right value
Enter 6 => If you wish to enter a new value to update both cache and hardware
Enter 7 => If you wish to skip the above record-keyword pair
Enter 0 => To exit successfully 5

|=======================================================================|
Disabled reboot
Sleep started, try to reboot
Sleep end
Sleep started
Enabled reboot

Data updated successfully.

|======================================================================================================|
S.No Record Keyword Data On Cache Data On Hardware Data Mismatch
3 VCEN FC 0x373830432d303031 0x645602042d303031 YES
|======================================================================================================|

Enter 4 => If you choose the cache value as the right value
Enter 5 => If you choose hardware value as the right value
Enter 6 => If you wish to enter a new value to update both cache and hardware
Enter 7 => If you wish to skip the above record-keyword pair
Enter 0 => To exit successfully 4

|=======================================================================|
Disabled reboot
Sleep started, try to reboot
Sleep end
Sleep started
Enabled reboot

Data updated successfully.

|======================================================================================================|
S.No Record Keyword Data On Cache Data On Hardware Data Mismatch
4 VCEN SE RCH0014 RCH0014 NO
|======================================================================================================|

No mismatch found.

Enter 6 => If you wish to enter a new value to update both on BMC and System Backplane
Enter 7 => If you wish to skip the above record-keyword pair
Enter 0 => To exit successfully : 7

|======================================================================================================|

Skipped the above record-keyword pair. Continueing to the next pair if available.

|======================================================================================================|
S.No Record Keyword Data On Cache Data On Hardware Data Mismatch
10 VSYS WN 0x748569 0x645602040776754243453432 YES
|======================================================================================================|

Enter 4 => If you choose the cache value as the right value
Enter 5 => If you choose hardware value as the right value
Enter 6 => If you wish to enter a new value to update both cache and hardware
Enter 7 => If you wish to skip the above record-keyword pair
Enter 0 => To exit successfully 6

|=======================================================================|

Enter the new value to update both in cache & hardware (Value should be in ASCII or in HEX(prefixed with 0x)) : 0x433035303736304243453432

|=======================================================================|

Data updated successfully.

|======================================================================================================|
S.No Record Keyword Data On Cache Data On Hardware Data Mismatch
11 VSYS RG 0x00000000 0x00000000 NO
|======================================================================================================|
No mismatch found. Skip this record-keyword pair.

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: Ifb32efd1174360409b795b162282673a4f73df1b

show more ...


# c99a0b05 08-Jun-2022 Priyanga Ramasamy <priyanga24@in.ibm.com>

vpd-tool: Fix for Hardware write option

With this commit, vpd-tool has a fix in Hardware (-H) write
option to update only in hardware and not in cache.

This commit also has an added change. User ca

vpd-tool: Fix for Hardware write option

With this commit, vpd-tool has a fix in Hardware (-H) write
option to update only in hardware and not in cache.

This commit also has an added change. User can provide
VPD offset(--seek) value while using read from hardware and write
to hardware options. Providing offset value(--seek) is optional.
By default offset value is 0. This option is mainly usefull
when providing an EEPROM path which is not present in VPD json.

Test: Tested on everest.

CASE 1: Using Hardware write option will update only hardware and not cache.

root@ever20bmc:/tmp# ./vpd-tool -w -H -O /sys/bus/spi/drivers/at25/spi12.0/eeprom -R VINI -K CC --seek 0x30000 -V 0x32

root@ever20bmc:/tmp# ./vpd-tool -r -H -O /sys/bus/spi/drivers/at25/spi12.0/eeprom -R VINI -K CC --seek 0x30000
{
"/sys/bus/spi/drivers/at25/spi12.0/eeprom": {
"CC": "2C5F"
}
}
root@ever20bmc:/tmp# ./vpd-tool -r -O /system/chassis/motherboard/dcm0/cpu0 -R VINI -K CC
{
"/system/chassis/motherboard/dcm0/cpu1": {
"CC": "5C5F"
}
}

CASE 2: Using normal write option will update both hardware and cache

root@ever20bmc:/tmp# ./vpd-tool -w -O /system/chassis/motherboard/dcm0/cpu1 -R VINI -K CC -V 0x64

root@ever20bmc:/tmp# ./vpd-tool -r -O /system/chassis/motherboard/dcm0/cpu1 -R VINI -K CC
{
"/system/chassis/motherboard/dcm0/cpu1": {
"CC": "dC5F"
}
}
root@ever20bmc:/tmp# ./vpd-tool -r -H -O /sys/bus/spi/drivers/at25/spi22.0/eeprom -R VINI -K CC --seek 0x30000

{
"/sys/bus/spi/drivers/at25/spi22.0/eeprom": {
"CC": "dC5F"
}
}

CASE 3: Providing wrong offset value during hardware read

root@ever20bmc:/tmp# ./vpd-tool -r -H -O /sys/bus/i2c/drivers/at24/28-0051/eeprom -R VINI -K CC --seek 19
VHDR record not found
Did you provide a valid offset? By default VPD offset is taken as 0. To input offset, use --offset. Refer vpd-tool help.

CASE 4: Providing offset value during normal read operation. As mentioned, there'll be no impact as the offset value will be
valid only while using --Hardware/-H option.

root@ever20bmc:/tmp# ./vpd-tool -r -O /system/chassis/motherboard/dcm0/cpu1 -R VINI -K CC --seek 0
{
"/system/chassis/motherboard/dcm0/cpu1": {
"CC": "5C5F"
}
}

CASE 5: Providing wrong offset value during hardware write

root@ever20bmc:/tmp# ./vpd-tool -w -H -O /sys/bus/spi/drivers/at25/spi12.0/eeprom -R VINI -K CC --seek 20 -V 0x53
Could not find start tag in VPD /sys/bus/spi/drivers/at25/spi12.0/eeprom
Did you provide a valid offset? By default VPD offset is taken as 0. To input offset, use --seek. Refer vpd-tool help.

CASE 6: Providing offset value during normal write. As mentioned, there'll be no impact as the offset value will be valid
only while using --Hardware/-H option.

root@ever8bmc:/tmp# ./vpd-tool -w -O /system/chassis/motherboard/dasd_backplane/panel1 -R VMPU -K VZ -V 0x64 --seek 19
root@ever8bmc:/tmp# ./vpd-tool -r -O /system/chassis/motherboard/dasd_backplane/panel1 -R VMPU -K VZ
{
"/system/chassis/motherboard/dasd_backplane/panel1": {
"VZ": "d1"
}
}

CASE 7: Reading and Writing on a EEPROM path which is not a key in JSON.

root@ever8bmc:/tmp# ./vpd-tool -w -O /sys/bus/spi/drivers/at25/spi13.0/eeprom -R VMPU -K VZ --seek 196608 -H -V 0x64
root@ever8bmc:/tmp#
root@ever8bmc:/tmp# ./vpd-tool -r -O /sys/bus/spi/drivers/at25/spi13.0/eeprom -R VMPU -K VZ --seek 196608 -H
{
"/sys/bus/spi/drivers/at25/spi13.0/eeprom": {
"VZ": "d1"
}
}

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: Icc94b5ee0d044271acf7b6263405fca07eb33728

show more ...


# 3803131f 07-Oct-2021 Priyanga Ramasamy <priyanga24@in.ibm.com>

Vpd-tool:Read keyword from hardware

Vpd-tool adds an option to read any keyword
directly from hardware with the help of -H option.

This commit has the front-end portion which gets the
user option a

Vpd-tool:Read keyword from hardware

Vpd-tool adds an option to read any keyword
directly from hardware with the help of -H option.

This commit has the front-end portion which gets the
user option and calls the back end code which is present
in Impl class in this commit
https://gerrit.openbmc.org/c/openbmc/openpower-vpd-parser/+/47666 .

Test:
Tested on rainier.

1.
root@rain111bmc:/tmp# ./vpd-tool -r -O /sys/bus/spi/drivers/at25/spi12.0/eeprom -R CP00 -K PG -H
{
"/sys/bus/spi/drivers/at25/spi12.0/eeprom": {
"PG": "0x01e03fffe051ffe37fffe53fffffffffffffffffffffffffffe00c1fe00c1fffffffffffffe21dffe21dffffffffffffffe79fffe39fffe79fffe79fffffffffffffffffffffffffffffffffffffffe3bdffe3bdffe3bdffffffffe3bdffe3bdffe7f9ffe1987fe0001fe7f9ffe7f9ffe0001fe6619fe0001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
}

root@rain111bmc:/tmp# ./vpd-tool -r -O /system/chassis/motherboard/dcm0/cpu0 -R CP00 -K PG
{
"/system/chassis/motherboard/dcm0/cpu0": {
"PG": "0x01e03fffe051ffe37fffe53fffffffffffffffffffffffffffe00c1fe00c1fffffffffffffe21dffe21dffffffffffffffe79fffe39fffe79fffe79fffffffffffffffffffffffffffffffffffffffe3bdffe3bdffe3bdffffffffe3bdffe3bdffe7f9ffe1987fe0001fe7f9ffe7f9ffe0001fe6619fe0001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
}

2.
root@rain111bmc:/tmp# ./vpd-tool -r -H -O /sys/bus/spi/drivers/at25/spi12.0/eeprom -R VINI -K SN
{
"/sys/bus/spi/drivers/at25/spi12.0/eeprom": {
"SN": "YA3936110110"
}
}
root@rain111bmc:/tmp# ./vpd-tool -r -O /system/chassis/motherboard/dcm0/cpu0 -R VINI -K SN
{
"/system/chassis/motherboard/dcm0/cpu0": {
"SN": "YA3936110110"
}
}

3.
root@rain111bmc:/tmp# ./vpd-tool -r -H -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R VSYS -K BR
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"BR": "S0"
}
}

4.
root@rain111bmc:/tmp# ./vpd-tool -r -H -O /sys/bus/i2c/drivers/at24/8-0050/eeprom -R VINI -K SN
{
"/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
"SN": "Y131UF07302S"
}
}

5.
root@perfrain86bmctest:/tmp# ./vpd-tool -r -H -O /sys/bus/i2c/drivers/at24/7-0050/eeprom -R VR10 -K BD
The given keyword BD is not present in the given record VR10 in the given vpd path /sys/bus/i2c/drivers/at24/7-0050/eeprom

6.
root@perfrain86bmctest:/tmp# ./vpd-tool -r -H -O /sys/bus/i2c/drivers/at24/7-0050/eeprom -R CP00 -K SN
The given record CP00 is not present in the given vpd path /sys/bus/i2c/drivers/at24/7-0050/eeprom

7.
root@perfrain86bmctest:/tmp# ./vpd-tool -r -H -O /sys/bus/i2c/drivers/at24/7-0050/eeprom -R VR10 -K DC
{
"/sys/bus/i2c/drivers/at24/7-0050/eeprom": {
"DC": "BD 201908260800"
}
}

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: I37f85fe22a2c98704bbc8f6090f0d83084d4c6f8

show more ...


# 0086dd11 28-Sep-2021 Priyanga Ramasamy <priyanga24@in.ibm.com>

VPD Tool: Emplace Present property

This commit adds logic which emplaces fru's
"Present" property in vpd-tool output.

Some frus doesn't have Present property by itself.
In such case, vpd-tool empla

VPD Tool: Emplace Present property

This commit adds logic which emplaces fru's
"Present" property in vpd-tool output.

Some frus doesn't have Present property by itself.
In such case, vpd-tool emplaces the fru's parent's
present property value and displays it to the user.

Test:
Tested on rainier.
1.
root@rain148bmc:/tmp# ./vpd-tool -i

[
{
"/system": {
"LocationCode": "U9105.42B.13BE920",
"Model": "9105-42B",
"Present": "true",
"SerialNumber": "13BE920",
"SubModel": "S0",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.System"
},
..
.
}
]

2.
root@p10bmc:/tmp# ./vpd-tool -o -O "/system/chassis/motherboard/vdd_vrm1"
[
{
"/system/chassis/motherboard/vdd_vrm1": {
"CC": "ABCD",
"DR": "CABCDARD ",
"FN": "1234",
"LocationCode": "U7123.ABC.12342-P0-C23",
"PN": "02CW34F",
"Present": "true",
"SN": "YH30W3R8X12D",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.Vrm"
}
}
]

3.
root@rain148bmc:/tmp# ./vpd-tool -o -O /system
[
{
"/system": {
"LocationCode": "U9105.42B.13BE920",
"Model": "9105-42B",
"Present": "true",
"SerialNumber": "13BE920",
"SubModel": "S0",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.System"
}
}
]

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: Ic2ff978a499f13b21e34fe37aa7ebd067ffcd34e

show more ...


# 02434931 07-Oct-2021 Priyanga Ramasamy <priyanga24@in.ibm.com>

Move getPrintableValue api to utils

This commit moves getPrintableValue api from VpdTool
class to utility file, as this is a common api needs to
be used by other class members as wel

Move getPrintableValue api to utils

This commit moves getPrintableValue api from VpdTool
class to utility file, as this is a common api needs to
be used by other class members as well.

Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: Iac8a645156d48c9f44308f96bf1f951b663a6669

show more ...


# 8cc5b15c 03-Jun-2021 PriyangaRamasamy <priyanga24@in.ibm.com>

Vpd-tool defect fix:data not shown for primed objects

Issue:
Some of the primed objects data were not shown by vpd-tool.

For those inventory paths whose inherit is true, the too

Vpd-tool defect fix:data not shown for primed objects

Issue:
Some of the primed objects data were not shown by vpd-tool.

For those inventory paths whose inherit is true, the tool checks for
specific VINI properties presence. If any VINI property is not present,
the tool considered dbus object itself is not present.
And the output json was emplaced with null object.

Thus ended up in showing empty data for primed frus
with no common interfaces properties.

Fix:
Emplace null object for the inventory path, only when the
inventory path is not found in dbus.

Other Fixes:

-> Removed checking inherit value, as whether or not inherit
is true/false, we need both common interfaces and location
code(for some frus like powersupply).

So in this fix, if the common interface keywords are
not present, we ignore and get only the extra interfaces
properties.

-> Removed unwanted null object emplacement.
-> Logic which adds fan type interface for fan frus.

Tested on rainier:

1. Frus without common interface properties are displayed with
its extra interface properties.

"/system/chassis/motherboard/dimm29": {
"LocationCode": "U78DB.ND0.WZS000G-P0-C46",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.Dimm"
},
"/system/chassis/motherboard/dimm3": {
"LocationCode": "U78DB.ND0.WZS000G-P0-C17",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.Dimm"
},

2. cable card10 and its connectors are physically present on the
system

"/system/chassis/motherboard/pcie_cable_card10": {
"CC": "6B87",
"DR": "NVME JBOF RISER",
"FN": "03FL205",
"LocationCode": "U78DA.ND0.WZS004K-P0-C10",
"PN": "03FL204",
"SN": "YA31UF07200Z",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.FabricAdapter"
},
"/system/chassis/motherboard/pcie_cable_card10/cxp_bot": {
"LocationCode": "U78DA.ND0.WZS004K-P0-C10-T1",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.Connector"
},
"/system/chassis/motherboard/pcie_cable_card10/cxp_top": {
"LocationCode": "U78DA.ND0.WZS004K-P0-C10-T0",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.Connector"
},

3. cable card3 and its connectors are not present on the system

"/system/chassis/motherboard/pcie_cable_card3": {
"LocationCode": "U78DA.ND0.WZS004K-P0-C3",
"TYPE": "FRU",
"type": "xyz.openbmc_project.Inventory.Item.FabricAdapter"
},
"/system/chassis/motherboard/pcie_cable_card3/cxp_bot": {},
"/system/chassis/motherboard/pcie_cable_card3/cxp_top": {},

4. Fan frus showing up with its Item inteface

"/system/chassis/motherboard/fan1": {
"LocationCode": "U78DB.ND0.WZS000G-A1",
"type": "xyz.openbmc_project.Inventory.Item.Fan"
},

Signed-off-by: PriyangaRamasamy <priyanga24@in.ibm.com>
Change-Id: I38467642944fffec381d070d2a1a7dd3b9882399

show more ...


# 6c71c9dc 15-Apr-2021 Sunny Srivastava <sunnsr25@in.ibm.com>

Segregate utility methods

This commit segregates utility methods required commonly by both
openpower-read-vpd and ibm-read-vpd from methods only required by
ibm-read-vpd.
All dep

Segregate utility methods

This commit segregates utility methods required commonly by both
openpower-read-vpd and ibm-read-vpd from methods only required by
ibm-read-vpd.
All dependency required by utility methods specific to ibm-read-vpd
is not applicable to utility methods required by openpower-read-vpd.

Hence to avoid un-necessary dependency inclusion, this change is
introduced.

Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
Change-Id: I95f2be27dc0c391a45beb1654a99506317aaa52b

show more ...


# c0a534f4 24-Aug-2020 PriyangaRamasamy <priyanga24@in.ibm.com>

VPD Tool: Update Hardware

Vpd tool has --Hardware/-H flag which should be given along
with writeKeyword flags, if the user wants to write directly to "Hardware".

In general the

VPD Tool: Update Hardware

Vpd tool has --Hardware/-H flag which should be given along
with writeKeyword flags, if the user wants to write directly to "Hardware".

In general the user should give only the object path in
--path/-P value.

Only if --Hardware/-H flag is given, the user has an
option to give either eeprom path or the object path in
--path/-P value.

Test:
Tested on simics.

./vpd-tool --writeKeyword -H --path < hardware path/object path > -R < record name > -K < keyword > -V < value in hex/ascii >

CASE 1: <updating eeprom path> < update directly on hardware using -H.>
./vpd-tool -u -H -P /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a480.i2c-bus/i2c-8/8-0051/8-00510/nvmem -R VINI -K PN -V 0x717273
updation successful on both dbus and hardware.

CASE 2:
./vpd-tool -u -H -P /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a480.i2c-bus/i2c-8/8-0051/8-00510/nvmem -R DINF -K FL -V 0x717273
updation successful on hardware. <this wont get updated in dbus as the given record-keyword pair is not required to update in dbus(only those record keywords
present in dbus_properties.json are required to be updated in dbus).

CASE 3: <failure case - invalid eeprom path>
root@rainier:/tmp# ./vpd-tool -u -H -P /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a490.i2c-bus/i2c-8/8-0051/8-00510/nvmem -R VINI -K PN -V 0x717273
Invalid object path : /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a490.i2c-bus/i2c-8/8-0051/8-00510/nvmem. Unable to find the corresponding EEPROM path for the given object path : /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e7$

Signed-off-by: PriyangaRamasamy <priyanga24@in.ibm.com>
Change-Id: I6b893e699fe343c90c3a3fd2b07fd8b9a4711687

show more ...


# 887a42ad 02-Sep-2020 PriyangaRamasamy <priyanga24@in.ibm.com>

Vpd Tool Defect.

Output from the vpd-tool for any non printable character
will be in hex.
Previously the non printable characters were represented in
unicode encoding standard.

Vpd Tool Defect.

Output from the vpd-tool for any non printable character
will be in hex.
Previously the non printable characters were represented in
unicode encoding standard.

Fixed the defect.

Tested on simics for the below cases:

Case 1:
./vpd-tool -r -O /system/chassis/motherboard/ebmc_card_bmc -R VCFG -K Z0
{
"/system/chassis/motherboard/ebmc_card_bmc": {
"Z0": "0x001125c10000"
}
}

Case 2:
./vpd-tool -r -O /system/chassis/motherboard -R VSBP -K IM
{
"/system/chassis/motherboard": {
"IM": "0x50001001"
}
}

Case 3:
./vpd-tool -r -O /system/chassis/motherboard/ebmc_card_bmc -R VW10 -K DR
{
"/system/chassis/motherboard/ebmc_card_bmc": {
"DR": "EBMC VW10 "
}
}

Signed-off-by: PriyangaRamasamy <priyanga24@in.ibm.com>
Change-Id: Ia815b5818f64327eb070f21b06283bff0acd2207

show more ...


# 6ee637aa 12-Feb-2021 PriyangaRamasamy <priyanga24@in.ibm.com>

VPD Tool: Fix for silencing unused variable warning

Signed-off-by: PriyangaRamasamy <priyanga24@in.ibm.com>
Change-Id: I05bdf989896a983b435ceefebc482d267a9c57f8


# b6965f13 01-Jun-2020 Alpana Kumari <alpankum@in.ibm.com>

Support FRU Type in vpd tool

Test:
./vpd-tool --dumpObject --object /system/chassis/motherboard/cpu0
[
{
"/system/chassis/motherboard/cpu0": {
"

Support FRU Type in vpd tool

Test:
./vpd-tool --dumpObject --object /system/chassis/motherboard/cpu0
[
{
"/system/chassis/motherboard/cpu0": {
"CC": "CB41",
"DR": "A WAY PROC CUOD",
"FN": "1234567",
"LocationCode": "U78DA.ND1.1234567-P0-C15",
"PN": "1345678",
"SN": "YLAB41010000",
"TYPE": "fruAndModule", <=================================
"type": "xyz.openbmc_project.Inventory.Item.Cpu"
}
}
]

./vpd-tool --dumpObject --object /system/chassis/motherboard/cpu1
[
{
"/system/chassis/motherboard/cpu1": {
"CC": "BB41",
"DR": "A WAY PROC CUOD",
"FN": "1234567",
"LocationCode": "U78DA.ND1.1234567-P0-C15",
"PN": "1345678",
"SN": "YLAB41010000",
"TYPE": "moduleOnly", <==================================
"type": "xyz.openbmc_project.Inventory.Item.Cpu"
}
}
]

./vpd-tool --dumpObject --object /system/chassis/motherboard/ebmc_card_bmc
[
{
"/system/chassis/motherboard/ebmc_card_bmc": {
"CC": "6B58",
"DR": "EBMC ",
"FN": "F191014",
"LocationCode": "U78DA.ND1.1234567-P0-C5",
"PN": "PN12345",
"SN": "YL6B58010000",
"TYPE": "FRU", <=================================
"type": "xyz.openbmc_project.Inventory.Item.Bmc"
}
}
]

Change-Id: Ie36631913481514e9f06bd50415a3d6b057f8510
Signed-off-by: Alpana Kumari <alpankum@in.ibm.com>

show more ...


# d5d52bb4 28-Jul-2020 Santosh Puranik <santosh.puranik@in.ibm.com>

vpd-tool: Do not enumerate Power supplies

There are outstanding issues with enumerating
power supply objects in the vpd tool.
Skip those for now.

Signed-off-by: Santosh Pura

vpd-tool: Do not enumerate Power supplies

There are outstanding issues with enumerating
power supply objects in the vpd tool.
Skip those for now.

Signed-off-by: Santosh Puranik <santosh.puranik@in.ibm.com>
Change-Id: I450fe93627ec061e7e408b9f6e432a589ba9c4cf

show more ...


# 0407b172 31-Mar-2020 PriyangaRamasamy <priyanga24@in.ibm.com>

VPD Tool : Force Collect On Hardware

This commit adds an additional option called --forceReset
in the vpd-tool.

This option is used to restart the Inventory Manager service

VPD Tool : Force Collect On Hardware

This commit adds an additional option called --forceReset
in the vpd-tool.

This option is used to restart the Inventory Manager service
and retrigger the udev events which launches the VPD services.

How to use the option?
./vpd-tool --forceReset/-f/-F

This option does not take any arguments.

Tested on simics.

Signed-off-by: PriyangaRamasamy <priyanga24@in.ibm.com>
Change-Id: Icd1ad30389432f731f21cc84999f7a54fcbbec65

show more ...


# cdf943c9 17-Mar-2020 PriyangaRamasamy <priyanga24@in.ibm.com>

Added PowerSupply frus:

The dumpInventory and dumpObject options of VPD tool
now includes PowerSupply frus.

Signed-off-by: PriyangaRamasamy <priyanga24@in.ibm.com>
Change-Id

Added PowerSupply frus:

The dumpInventory and dumpObject options of VPD tool
now includes PowerSupply frus.

Signed-off-by: PriyangaRamasamy <priyanga24@in.ibm.com>
Change-Id: I6078d966780898a20a4c3e7c5cc61c3f4f2e6ddd

show more ...


# d09d2ec1 12-Mar-2020 PriyangaRamasamy <priyanga24@in.ibm.com>

VPD Tool: Write keyword command line interface

This commit has the command line interface
for writeKeyword option in the VPD tool.

--help option will provide the user - the argu

VPD Tool: Write keyword command line interface

This commit has the command line interface
for writeKeyword option in the VPD tool.

--help option will provide the user - the argument format
for writeKeyword option.

Note:
The application "vpd-manager" acts as the backend for the keyword updation.
The vpd-manager executable should run in the background while testing in simics.
The commits which points to the vpd-manager backend application are,
< https://gerrit.openbmc-project.xyz/c/openbmc/openpower-vpd-parser/+/28991/43 >
< https://gerrit.openbmc-project.xyz/c/openbmc/openpower-vpd-parser/+/29039/43 >
< https://gerrit.openbmc-project.xyz/c/openbmc/openpower-vpd-parser/+/32439/10 >

Tested on rainier:
root@rainier:/tmp# ./vpd-tool -r -O /system/chassis/motherboard/vdd_vrm1 -R VINI -K FN
{
"/system/chassis/motherboard/vdd_vrm1": {
"FN": "F190827"
}
}
root@rainier:/tmp#
root@rainier:/tmp# ./vpd-tool -w -O /system/chassis/motherboard/vdd_vrm1 -R VINI -K FN -V 0x616263
root@rainier:/tmp#
root@rainier:/tmp# ./vpd-tool -r -O /system/chassis/motherboard/vdd_vrm1 -R VINI -K FN
{
"/system/chassis/motherboard/vdd_vrm1": {
"FN": "abc0827"
}
}

Change-Id: I6c586a9848497e44bf88eda78694989d0287cbba
Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>

show more ...


12