Skip to content
Snippets Groups Projects
Commit 3da839d7 authored by Ricardo Cañuelo's avatar Ricardo Cañuelo
Browse files

boards/chromebooks/debugging_interfaces: Servo v4 FW update documentation

parent 77bb9aa4
No related branches found
No related tags found
No related merge requests found
Pipeline #19549 passed
...@@ -219,3 +219,97 @@ $ dut-control -p 9932 cold_reset:on ...@@ -219,3 +219,97 @@ $ dut-control -p 9932 cold_reset:on
If this worked as expected, congratulations! Your Chromebook is now If this worked as expected, congratulations! Your Chromebook is now
ready to be automated in the LAVA test lab. ready to be automated in the LAVA test lab.
## Upgrading the Servo v4 firmware
There are many versions of the Servo v4 firmware. It's recommended to
upgrade it to a recent version whenever possible, as older versions have
shown some issues with certain boards and
[Depthcharge](../04-bootloader_setup) versions.
You can check the current Servo v4 firmware version using the CLI that
the Servo runs in the first serial terminal it enumerates
(`/dev/ttyUSB0` in the example below, it could be different in your
setup):
```
$ miniterm /dev/ttyUSB0
> version
Board: 3
RO: servo_v4_v2.3.22-ecb74cc56
RW: servo_v4_v2.3.22-ecb74cc56
Build: servo_v4_v2.3.22-ecb74cc56
2019-07-23 18:07:15 @chromeos-legacy-release-us-central2-c-x32-40-2efr
```
The `servo_updater` tool (installed from the
[dependencies](#dependencies) above) can be used to flash the Servo v4
firmware. To use it, first clone the [firmware-tools
repo](https://gitlab.collabora.com/chromium/firmware-tools). Then make
sure the Servo v4 is connected to your host and run:
```
$ cd firmware-tools
$ sudo PATH=$PWD/bin:$PATH LD_LIBRARY_PATH=$PWD/lib servo_updater -f <firmware_file>
```
The `servo_v4_fw` directory in `firmware-tools` includes some tested
Servo v4 firmware binaries. You can usually find these binaries in the
ChromeOS SDK (`usr/share/servo_updater/firmware/` inside the cros-build
chroot).
If everything goes well you should see an output like this:
```
Current servo_v4 version is servo_v4_v2.3.22-ecb74cc56
Available servo_v4 version is servo_v4_v2.4.35-f1113c92b
Updating to recommended version.
usb_updater2 -d 18d1:501b -n servo_v4_fw/servo_v4_v2.4.35-f1113c92b.bin
read 131072(0x20000) bytes from servo_v4_fw/servo_v4_v2.4.35-f1113c92b.bin
Found device.
found interface 4 endpoint 6, chunk_len 64
READY
-------
start
target running protocol version 6 (type 1)
maximum PDU size: 1024
Flash protection status: 0008
version: servo_v4_v2.3.22-ecb74cc56
key_version: 0
min_rollback: -1
offset: writable at 0x10000
sending 0xe760 bytes to 0x10000
-------
update complete
image updated
usb_updater2 -d 18d1:501b -n servo_v4_fw/servo_v4_v2.4.35-f1113c92b.bin
read 131072(0x20000) bytes from servo_v4_fw/servo_v4_v2.4.35-f1113c92b.bin
Found device.
found interface 4 endpoint 6, chunk_len 64
READY
-------
start
target running protocol version 6 (type 1)
maximum PDU size: 1024
Flash protection status: 0008
version: servo_v4_v2.3.22-ecb74cc56
key_version: 0
min_rollback: -1
offset: writable at 0
sending 0xe8d4 bytes to 0
-------
update complete
image updated
```
If you have more than one Servo v4 interface connected to the host, you
can specify which one you want to flash using the `-s <serial_number>`
option of `servo_updater`. The serial number of an interface can also be
retrieved from its CLI using the `serialno` command:
```
> serialno
Serial number: C1706310161
```
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment