summaryrefslogtreecommitdiff
path: root/include/update_fw.h
diff options
context:
space:
mode:
authorNicolas Boichat <drinkcat@google.com>2017-03-22 16:41:34 +0800
committerchrome-bot <chrome-bot@chromium.org>2017-04-26 04:28:07 -0700
commit7f6176dc5502dc4d6b166ab2c7c90209220e82ff (patch)
tree8d9e82ff5971b11f5ed5d102fa4ce72c5faa1736 /include/update_fw.h
parentacb397063002fec38979c56ae6d7219dd04c1412 (diff)
downloadchrome-ec-7f6176dc5502dc4d6b166ab2c7c90209220e82ff.tar.gz
common/usb_update: add support for extra commands
Add support for 4 extra commands that are required to update hammer: - UPDATE_EXTRA_CMD_IMMEDIATE_RESET - UPDATE_EXTRA_CMD_JUMP_TO_RW: Tells the RWSIG task to jump to RW as soon as possible (assuming the image verifies) - UPDATE_EXTRA_CMD_STAY_IN_RO: Tells the RWSIG task to not jump to RW, and stay in RO, to leave enough time for AP to update RW. - UPDATE_EXTRA_CMD_UNLOCK_RW: Tells EC to unlock the RW section so that it can be updated (on next reboot). BRANCH=none BUG=b:35587171 TEST=Test RO+RW update cd extra/usb_updater; make # Jump to RW sudo ./usb_updater2 -j sleep 0.5 # Update RO, then reboot sudo ./usb_updater2 ../../build/hammer/ec.bin sleep 0.5 # Update RW (first tell RO to not jump to RW) sudo ./usb_updater2 -s sudo ./usb_updater2 ../../build/hammer/ec.bin TEST=Test RW update only, with RO protected On EC console: flashwp true; reboot cd extra/usb_updater; make # Tell RW to unprotect RW and jump back to RO sudo ./usb_updater2 -w sudo ./usb_updater2 -r sleep 0.5 # Update RW, then reboot sudo ./usb_updater2 -s sudo ./usb_updater2 ../../build/hammer/ec.bin Change-Id: I5e8df7bdb4f06f2ac7b47de53dcde69c5002f578 Reviewed-on: https://chromium-review.googlesource.com/458470 Commit-Ready: Nicolas Boichat <drinkcat@chromium.org> Tested-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Diffstat (limited to 'include/update_fw.h')
-rw-r--r--include/update_fw.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/update_fw.h b/include/update_fw.h
index 115b34d35c..e575500b19 100644
--- a/include/update_fw.h
+++ b/include/update_fw.h
@@ -154,6 +154,14 @@ enum first_response_pdu_header_type {
/* TODO: Handle this in update_fw.c, not usb_update.c */
#define UPDATE_DONE 0xB007AB1E
+#define UPDATE_EXTRA_CMD 0xB007AB1F
+
+enum update_extra_command {
+ UPDATE_EXTRA_CMD_IMMEDIATE_RESET = 0,
+ UPDATE_EXTRA_CMD_JUMP_TO_RW = 1,
+ UPDATE_EXTRA_CMD_STAY_IN_RO = 2,
+ UPDATE_EXTRA_CMD_UNLOCK_RW = 3,
+};
void fw_update_command_handler(void *body,
size_t cmd_size,