tools: starting burn_my_bmc host utility

burn_my_bmc is a host-run utility that in cooperation with the
phosphor-ipmi-flash library, attempts to send a BMC firmware image and
signature file to the BMC and trigger verification of said image.

The program's current design and use were tailored towards the legacy
OpenBMC image and not UBI.  Therefore, changes to support the UBI
process will get addressed as it all takes shape.

The overall process is:
1) Attempts to send firmware image over an interface.
2) Attempts to send signature file contents over an interface*.
3) Triggers a verification step.
4) Reboots the BMC**.

* The only interface in the initial version here is the blocktransfer
interface.  It's technically also possibly KCS.  It's sending the data
over the same communications channel as the normal IPMI packets.  A
later patchset will enable sending the data bytes over an LPC memory
region or the PCI P2A region.

** The 4th step is done by a separate call to the 'reboot' command.
The 'reboot' and 'ping' commands will come in a later patchset.

Change-Id: I62d725274e56c55ca414fa6c2a3eab6c500066ed
Signed-off-by: Patrick Venture <venture@google.com>
27 files changed