summaryrefslogtreecommitdiff
path: root/common/usb_update.c
diff options
context:
space:
mode:
authorNicolas Boichat <drinkcat@google.com>2017-04-26 17:30:56 +0800
committerchrome-bot <chrome-bot@chromium.org>2017-05-02 00:01:35 -0700
commit7b76a8a2ca2d3066fd7e7133957e06f927b1446a (patch)
treee05bb3cda0eaa075b32290ee4203ea77b18f7ca2 /common/usb_update.c
parent38016e0f94bb30ac634c95d2174aae7867137e34 (diff)
downloadchrome-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.c6
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;
}