Add stm32flash binary

Built from 5b0e391c5 of the stm32flash git repository.

Change-Id: Ia4b4a9eecbf56ac06d2318053bac452b3f8db489
Update the canonical libkoki url.

We've had a root level hosted versoin of this for a while now, and the
ckirkham specific one doesn't exist on badger.

Change-Id: I16ba90b116ef9484a39809497d0f3f56a36f2ddc
Trim trailing whitespace.

Change-Id: I91a6ff7a205c2883b8c4a8e8c263548f7e48dcea
Note that the binaries are for different arches

It's otherwise not obvious that these are compiled for something
specific.

Change-Id: Ia0eb4f70e2d424e2c132040c54de53b7ea3489bf
Fix a typo in README

Change-Id: Iff7db91f7d3f0044d0c5eab179639b68f915a76e
Merge branch 'master' into stm32flash
Don't ignore firmware files

There was a .gitignore file instructing git to ignore everything in
the firmware directory.  We don't need that.

Change-Id: I0d38c762d68f987e5b12190cf70b65153958cb28
Add the mcv4 firmware images

From d37a83dbd in motor-v4-fw.git.

This is the firmware that the motor boards were initially shipped out
with in the SR2014 kit.

Change-Id: I1affd94c79848103eb504758beeae68af7af05f0
Add find_devs() function to sr.motor

Soon, the firmware updater will need to be able to find a list of the
motor boards.  This patch allows this device-locating stuff to be
shared between the Robot object and the firmware updater.

Change-Id: Iec7cff9d64b67900c7515869e695a4f68f160fc2
Clean up updating scripts

Use __exit__ combined with a 'with' statement to ensure the firmware
updating splash screen is closed.

This makes managing that context somewhat easier.

Change-Id: I523e79c8387f57deaae00f509a04c6eaa58d2bec
Make FwUpdater restart sricd as necessary

FwUpdater may need to restart sricd after a power board update, and
before a motor board firmware update (since the motor rail needs to be
on).  So now FwUpdater does the restarting.

Change-Id: I7184ea6f6bc63d2d146eae4f8b15f54ab622ac18
Add useful path members to FwUpdater

These paths will be constructed several times for other things, so set
them as members of FwUpdater.

Change-Id: I7c6d68a5d80720ae19852b93181dbc1d9cd691e1
Add support for updating motor board firmware

Add support to FwUpdater to check and update motor board firmwares.

This adapts sr.motor.Motor's existing ability to check the firmware
version of the device.  If it's not correct, then the InvalidFirmware
exception is raised, and the firmware is subsequently updated.

This checks that the bootloader has been entered after sending the
bootloader entry command to the motor board.

Change-Id: I1c49dd3dffb383a647017fa875b62d82d346f048
Update motor board firmware to v2

1a78313f76070b83963313f293eef3d42c7c81a6 from motor-v4-fw.git

Change-Id: If0c621e35cf63617e446569e3026a842f494b608
Show fwsplash if MCv4 firmware is being updated

User needs to know this is happening.

Change-Id: I2d48616d3db8604d12d8f9a8e63b2ed16285b7af
Update MCv4 firmware to v3

465dff8c2ea1ece174664bb6cd632b8e9c7a6887 in motor-v4-fw.git

Brings in bootloader magic number wiping.

Change-Id: I7278dca6d2902126b46ebc88bd0e33e8fa5fb7b1
Use modified stm32loader to flash MCv4

Use stm32loader.py from https://github.com/jsnyder/stm32loader.git
to flash the MCv4.  This makes getting progress information back
about the flashing process more convenient than having to parse the
output of a program.

stm32loader.py here is based on rev
5d7dd023c41320ebe45c34cdce360a0e8c86ab35 from the above repository.
It is modified not to output anything, and to provide a callback that
provides progress information.

Change-Id: Ia4359ea31bf6c0b1867dd486fd656144cd107620
Remove check if power board update occurred

This is no longer needed, as we determine if an update is needed using
vbuf data, not the response of flashb.

It's also a bit dodgy, as fw-log may contain more than one power board
update (unlikely, but possible).

Change-Id: Iad2b22db9fa32a72b842df339d1aed4c35efe067
Force flashb to update power board firmware

Since we now use the vbuf data to determine if an update is required,
we no longer need flashb's version number checking.

Change-Id: Ic00e327aeef2254929cc68e2c90a6c05a15da88f
Present motor board fw update progress in GUI

Rather than just showing a bouncing progress bar, show the actual
progress through updating the motor board.  Still shows a bouncing bar
for the power board firmware update.

This patch extends fwsplash to take state update information through
stdin.

Change-Id: I2e6ec2e634c9d365cb701787b2d0bf8cad18ab96