test_lists: add test group for EC write protect enabling
Some EC chips do not support "RO_NOW" write protect flag (e.g.
STM32 series, which are widely used in ARM projects) but only set
"RO_AT_BOOT" instead. In this case, EC will not be locked down
immediately when a write protect command is executed, because the write
protection only takes effect after rebooting.
This may cause finalization failure, and a workaround is to run EC write
protection solely before finalization. This CL adds a test group for EC
write protect via `ectool flashprotect` so users can use it when needed.
BUG=b:153433560
TEST=manual on Krane, WP enabled after reboot
Change-Id: Ibe63d1415c356f6c7aaeb23c43a14c0a1b43f882
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/2147125
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Yilin Yang (kerker) <kerker@chromium.org>
Commit-Queue: Fei Shao <fshao@chromium.org>
Tested-by: Fei Shao <fshao@chromium.org>
diff --git a/py/gooftool/commands.py b/py/gooftool/commands.py
index 31641c1..2a5761b 100755
--- a/py/gooftool/commands.py
+++ b/py/gooftool/commands.py
@@ -408,13 +408,16 @@
WriteProtect(crosfw.LoadMainFirmware())
event_log.Log('wp', fw='main')
- # Some EC (mostly PD) does not support "RO NOW". Instead they will only set
+ # Some EC (mostly PD) does not support "RO_NOW". Instead they will only set
# "RO_AT_BOOT" when you request to enable RO (These platforms consider
# --wp-range with right range identical to --wp-enable), and requires a
# 'ectool reboot_ec RO at-shutdown; reboot' to let the RO take effect.
# After reboot, "flashrom -p host --wp-status" will return protected range.
# If you don't reboot, returned range will be (0, 0), and running command
# "ectool flashprotect" will not have RO_NOW.
+ # generic_common.test_list.json provides "EnableECWriteProtect" test group
+ # which can be run individually before finalization. Try that out if you're
+ # having trouble enabling RO_NOW flag.
for fw in [crosfw.LoadEcFirmware(), crosfw.LoadPDFirmware()]:
if fw.GetChipId() is None: