Add support for ARM platforms reimaging
Arm platforms use completely different mechanisms to reimage both EC
and bootprom.
Programming the EC happens through the serial interface, using the
protocol imposed by the EC core. There is a utility
(platform/ec/utils/stm32mon.c) which allows to program the EC firmware, this
utility must be present in the path of the servo host.
Programming bootprom happens over a USB interface, and is accomplished
by the cros_write_firmware utility (platform/dev/host/*).
Both utilities had to be modified to properly operate while running
under autotest control, the changes are being reviewed.
The following programmer.py modifications were required to support
both ARM and x86 platforms:
- new programmer classes are being added: Stm32monEcProgrammer for the
ARM EC and CrosProgrammer for the arm bootprom.
- existing programmer classes are being renamed to more accurately
reflect their function.
- the required servo settings should be in a list or tuple as opposed
to dictionary, because the order of setting the controls is
important.
- the set of utilities required to be available to the programmer is
now per programmer type.
BUG=chrome-os-partner:15610
TEST=manual
. successfully reimaged ARM and X86 devices using the following
commands:
$ run_remote_tests.sh --use_emerged --board=link --remote=192.168.1.4 \
fwupdate --args \
'fwurl=file:///tmp/link.tar.bz2 board=link servo_host=192.168.1.102'
$ run_remote_tests.sh --use_emerged --board=daisy --servo \
--remote=192.168.1.6 --allow_offline_remote fwupdate --args \
'fwurl=file:///tmp/daisy-3604.tar.bz2 board=snow'
Note that the tests require the DUTs to be up and running and would
fail if the DUTs are not available over ssh.
Change-Id: I2d2ccc69b9408175c78f3208eb73fc03f29428d9
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42360
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
1 file changed