diff options
author | Nicolas Boichat <drinkcat@google.com> | 2017-04-26 17:30:56 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-05-02 00:01:35 -0700 |
commit | 7b76a8a2ca2d3066fd7e7133957e06f927b1446a (patch) | |
tree | e05bb3cda0eaa075b32290ee4203ea77b18f7ca2 /common/usb_update.c | |
parent | 38016e0f94bb30ac634c95d2174aae7867137e34 (diff) | |
download | chrome-ec-7b76a8a2ca2d3066fd7e7133957e06f927b1446a.tar.gz |
common/usb_update: Add support for UPDATE_EXTRA_CMD_UNLOCK_ROLLBACK
AP will use that command to tell base EC that it believe the current
FW is functionning correctly, and that the rollback region can
be unlocked for an update on the next reboot.
BRANCH=none
BUG=b:35586219
BUG=b:35587171
TEST=- Flash hammer ToT image with rollback version 0
> flashwp true; reboot
> flashinfo => all flash is protected
- Update CONFIG_ROLLBACK_VERSION to 1
$ make BOARD=hammer -j
- Flash new RW
$ sudo extra/usb_updater/usb_updater2 -w
$ sudo extra/usb_updater/usb_updater2 -r
$ sleep 0.5
$ sudo extra/usb_updater/usb_updater2 -s
$ sudo extra/usb_updater/usb_updater2 build/hammer/ec.bin
> rollbackinfo
rollback minimum version: 0
RW rollback version: 1
- Tell RW to unprotect rollback
$ sudo extra/usb_updater/usb_updater2 -u
$ sudo extra/usb_updater/usb_updater2 -r
> rollbackinfo
rollback minimum version: 1
RW rollback version: 1
Change-Id: Ib52253e9b8bba872688d6f601d9bfad8862be25f
Reviewed-on: https://chromium-review.googlesource.com/489889
Commit-Ready: Nicolas Boichat <drinkcat@chromium.org>
Tested-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'common/usb_update.c')
-rw-r--r-- | common/usb_update.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/common/usb_update.c b/common/usb_update.c index 4d4c65d906..0c14d8dfbf 100644 --- a/common/usb_update.c +++ b/common/usb_update.c @@ -196,6 +196,12 @@ static int try_vendor_command(struct consumer const *consumer, size_t count) flash_set_protect(EC_FLASH_PROTECT_RW_AT_BOOT, 0); response = EC_RES_SUCCESS; break; +#ifdef CONFIG_ROLLBACK + case UPDATE_EXTRA_CMD_UNLOCK_ROLLBACK: + flash_set_protect(EC_FLASH_PROTECT_ROLLBACK_AT_BOOT, 0); + response = EC_RES_SUCCESS; + break; +#endif default: response = EC_RES_INVALID_COMMAND; } |