summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorJae Hoon Kim <kimjae@chromium.org>2022-05-23 16:21:33 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-05-26 15:48:16 +0000
commit6dba972b6ab1246864d3af0eaa3effcda29407d1 (patch)
tree9e189ab7e3ff1d922dcdf22ad92178ab5fd16133 /scripts
parentff1f3b91c31706d1e73a82ec928fd9bdd080f96f (diff)
downloadvboot-6dba972b6ab1246864d3af0eaa3effcda29407d1.tar.gz
futility: [deferredupdates] Defer setting firmware cookies
This is the firmware part of go/deferredupdates. During autoupdates, it's required to defer firmware cookies (a.k.a. slot switching) to not try the updated RW firmware. Instead it is deferred for the values to be updated at a later time, when the actual update should be applied. Since there is not a clear communication method between futility and postinstall+autoupdater, it'll be the case that STATUS will be used as the IPC for postinstall+autoupdater to determine when to update firmware cookies w/ a UUID. ``` // autoupdate localhost ~ # chromeos-firmwareupdate --mode=autoupdate --wp=1 Machine Model: gimble Write Protect: HW=0 SW=0 Last Boot Version: RO=Google_Gimble.14498.0.0 ACT/B=Google_Gimble.14498.0.0 Firmware Updater: RO=Google_Gimble.14505.93.0 RW=Google_Gimble.14505.93.0 >> Starting firmware updater. >> Target image: images/bios-gimble.ro-14505-93-0.rw-14505-93-0.bin (RO:Google_Gimble.14505.93.0, RW/A:Google_Gimble.14505.93.0, RW/B:Google_Gimble.14505.93.0). >> Current system: <sys-flash> (RO:Google_Gimble.14498.0.0, RW/A:Google_Gimble.14505.93.0, RW/B:Google_Gimble.14498.0.0). >> Write protection: 1 (enabled; HW=1, SW=1). >> TRY-RW UPDATE: Updating RW_SECTION_A to try on reboot. >> DONE: Firmware updater exits successfully. fw_prev_result = trying # [RO/str] Firmware result of previous boot fw_prev_tried = B # [RO/str] Firmware tried on previous boot (A or B) fw_result = success # [RW/str] Firmware result this boot fw_tried = B # [RO/str] Firmware tried this boot (A or B) fw_try_count = 10 # [RW/int] Number of times to try fw_try_next fw_try_next = A # [RW/str] Firmware to try next (A or B) fw_vboot2 = 1 # [RO/int] 1 if firmware was selected by vboot2 or 0 otherwise fwb_tries = 10 # [RW/int] Try firmware B count fwid = Google_Gimble.14498.0.0 # [RO/str] Active firmware ID fwupdate_tries = 0 # [RW/int] Times to try OS firmware update (inside kern_nv) mainfw_act = B # [RO/str] Active main firmware // deferupdate HOLD localhost ~ # chromeos-firmwareupdate --mode=deferupdate_hold --wp=1 Machine Model: gimble Write Protect: HW=0 SW=0 Last Boot Version: RO=Google_Gimble.14498.0.0 ACT/B=Google_Gimble.14498.0.0 Firmware Updater: RO=Google_Gimble.14505.93.0 RW=Google_Gimble.14505.93.0 >> Starting firmware updater. >> Target image: images/bios-gimble.ro-14505-93-0.rw-14505-93-0.bin (RO:Google_Gimble.14505.93.0, RW/A:Google_Gimble.14505.93.0, RW/B:Google_Gimble.14505.93.0). >> Current system: <sys-flash> (RO:Google_Gimble.14498.0.0, RW/A:Google_Gimble.14505.93.0, RW/B:Google_Gimble.14498.0.0). >> Write protection: 1 (enabled; HW=1, SW=1). >> TRY-RW UPDATE: Updating RW_SECTION_A to try on reboot. >> DEFER UPDATE: Defer setting cookies for RW_SECTION_A. >> DONE: Firmware updater exits successfully. fw_prev_result = trying # [RO/str] Firmware result of previous boot fw_prev_tried = B # [RO/str] Firmware tried on previous boot (A or B) fw_result = success # [RW/str] Firmware result this boot fw_tried = B # [RO/str] Firmware tried this boot (A or B) fw_try_count = 0 # [RW/int] Number of times to try fw_try_next fw_try_next = B # [RW/str] Firmware to try next (A or B) fw_vboot2 = 1 # [RO/int] 1 if firmware was selected by vboot2 or 0 otherwise fwb_tries = 0 # [RW/int] Try firmware B count fwid = Google_Gimble.14498.0.0 # [RO/str] Active firmware ID fwupdate_tries = 0 # [RW/int] Times to try OS firmware update (inside kern_nv) mainfw_act = B # [RO/str] Active main firmware // deferupdate APPLY localhost ~ # chromeos-firmwareupdate --mode=deferupdate_apply --wp=1 Machine Model: gimble Write Protect: HW=0 SW=1 Last Boot Version: RO=Google_Gimble.14498.0.0 ACT/B=Google_Gimble.14498.0.0 Firmware Updater: RO=Google_Gimble.14505.106.0 RW=Google_Gimble.14505.106.0 >> Starting firmware updater. INFO: update_firmware: Apply defer updates, only setting cookies for the next boot slot. >> DONE: Firmware updater exits successfully. fw_prev_result = trying # [RO/str] Firmware result of previous boot fw_prev_tried = B # [RO/str] Firmware tried on previous boot (A or B) fw_result = success # [RW/str] Firmware result this boot fw_tried = B # [RO/str] Firmware tried this boot (A or B) fw_try_count = 10 # [RW/int] Number of times to try fw_try_next fw_try_next = A # [RW/str] Firmware to try next (A or B) fw_vboot2 = 1 # [RO/int] 1 if firmware was selected by vboot2 or 0 otherwise fwb_tries = 10 # [RW/int] Try firmware B count fwid = Google_Gimble.14498.0.0 # [RO/str] Active firmware ID fwupdate_tries = 0 # [RW/int] Times to try OS firmware update (inside kern_nv) mainfw_act = B # [RO/str] Active main firmware ``` BUG=b:232304971 TEST=chromeos-firmwareupdate w/ comment above BRANCH=None Signed-off-by: Jae Hoon Kim <kimjae@chromium.org> Change-Id: Idcfc5864a2cfc2b46a8b936bbab61e3da7c62596 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/3661357 Commit-Queue: Yu-Ping Wu <yupingso@chromium.org> Reviewed-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions