Add logic to sync/preserve MAC and UUID - openbmc-v1.0-stable

This is a port from functionality on master into the stable branch.

The MAC and UUID values are written in the VPD eeprom by the manufacturer.
These values are mirrored to u-boot. During BMC boot, check that the
values in the VPD eeprom and u-boot are the same. If they are different,
use the VPD eeprom value to update u-boot.
Exception is the MAC when it's been set by the admin to have a locally
administered address. In this case the MAC is not updated.
Updating the MAC takes effect immediately, updating the UUID requires a
BMC reboot.

Also add a state dependency between collecting the vpd info into the
inventory, and reading the inventory, by creating a new BMC_STARTING1
state. Creating a BMC_STARTING3 state does not enforce a dependency
because BMC_STARTING2 exits automatically already when some processes
are started up.

Change-Id: I35ca0b96ea645bc2e9a8dc5dd57410fe66f5c841
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
3 files changed