tree 322e624b73450d0a4718ea5bd07c2bc992a33dd9
parent 12e24ff3ee08e12211d735c61974cc579c482c8a
author PriyangaRamasamy <priyanga24@in.ibm.com> 1620903321 -0500
committer priyanga24 <priyanga24@in.ibm.com> 1620906372 +0000

Vpd-tool: Hardware option fix

The -H hardware flag is given when the user wants to update hardware.
When -H flag is given, the user must provide the eeprom path and not
the object path in -O/object option.

Test:
1. When dbus object path is given with -H Hardware flag - tool throws error.

root@rainier:/tmp# ./vpd-tool -u -H -O /system/chassis/motherboard/vdd_vrm1 -R VINI -K CC -V 0x7172
Invalid EEPROM path : /system/chassis/motherboard/vdd_vrm1. The given EEPROM path doesn't exist. Provide valid EEPROM path when -H flag is used. Refer help option. root@rainier:/tmp#

2. To update directly on hardware -
( - this updates the keyword on ONLY hardware for those keywords which are not mentioned in /usr/share/vpd/dbus_properties.json)
( - if the given keyword is present in dbus_properties.json => then both HARDWARE AND DBUS are updated.)

./vpd-tool -u -H -O /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a580.i2c-bus/i2c-10/10-0050/10-00500/nvmem -R VINI -K CC -V 0x7172
Tested that both hardware and dbus is updated as the record-keyword VINI-CC is a part of dbus_properties.json.

3. To update on dbus and hardware ( no matter whether or not the record-keyword is present in dbus_properties.json.)

 ./vpd-tool -u -O /system/chassis/motherboard/vdd_vrm1 -R VINI -K DR -V 0x7172

4. Help option
root@rainier:/tmp# ./vpd-tool --help
VPD Command line tool to dump the inventory and to read and update the keywords
Usage: ./vpd-tool [OPTIONS]

Options:
  -h,--help                   Print this help message and exit
  -O,--object TEXT            Enter the Object Path
  -R,--record TEXT            Enter the Record Name
  -K,--keyword TEXT           Enter the Keyword
  -V,--value TEXT             Enter the value. The value to be updated should be either in ascii or in hex. ascii eg: 01234; hex eg: 0x30313233
  -o,--dumpObject Needs: --object
                              Dump the given object from the inventory. { vpd-tool-exe --dumpObject/-o --object/-O object-name }
  -i,--dumpInventory          Dump all the inventory objects. { vpd-tool-exe --dumpInventory/-i }
  -r,--readKeyword Needs: --object --record --keyword
                              Read the data of the given keyword. { vpd-tool-exe --readKeyword/-r --object/-O "object-name" --record/-R "record-name" --keyword/-K "keyword-name" }
  -w,-u,--writeKeyword,--updateKeyword Needs: --object --record --keyword --value
                              Update the value. { vpd-tool-exe --writeKeyword/-w/--updateKeyword/-u --object/-O object-name --record/-R record-name --keyword/-K keyword-name --value/-V value-to-be-updated }
  -f,-F,--forceReset          Force Collect for Hardware. { vpd-tool-exe --forceReset/-f/-F }
  -H,--Hardware               This is a supplementary flag to write directly to hardware. When the -H flag is given, User should provide valid hardware/eeprom path (and not dbus object path) in the -O/--object path.


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