Supports SPD in VPD partition.

VPD originally assumes the whole VPD partition only contains EPS and VPD 2.0
data. Since chrome-os-partner:2129 requests the to move SPD EEPROM content
to VPD partition, VPD utility needs to be modified to support.

This patch mainly re-factored the loadFile() and saveFile() functions to
parse and store SPD data. In loadFile(), it tries to load SPD BBP first.
Then VPD 2.0 BBP. In saveFile(), it writes in this order: EPS, SPD, VPD 2.0.

This patch also refined some comments and removed few obscured/unused code.

Change-Id: I3dc00f29e8120d30c8c48182e70f755018375637

BUG=chrome-os-partner:2129
TEST=I manually run the below commands on Z600 for cases:
  1. a standalone VPD.bin file
  2. Mario BIOS with VPD 1.0 partition
  3. Mario BIOS with blank VPD partition
  4. old version of VPD 2.0 partition (located at 0x100)
  5. new BIOS with SPD data present (at 0x400) and VPD 2.0 (at 0x600)
Command sequence is like:
  % vpd -f $F -s "some=string"
  % vpd -f $F -l  # to verify
  % vpd -f $F -s "another=string"
  % vpd -f $F -l  # confirm new string is added
  % vpd -f $F -O  # make sure all VPD 2.0 data are clean
Let me know if you are interested in detailed command log I've tested.

Review URL: http://codereview.chromium.org/6628052
5 files changed
tree: f7defb1d33f6f653c10742d4c5abef5eb2ad1734
  1. include/
  2. lib/
  3. util/
  4. LICENSE
  5. Makefile
  6. README
  7. vpd.c