faft: Move the code of clearing the GBB flags into a method
To make this code reusable in other places.
BUG=chromium-os:32973
TEST=DUT in normal mode, run firmware_TryFwB/control.dev passed.
Change-Id: I94d8935eed00e70fbc369bb68f84a3d47ce4379b
Reviewed-on: https://gerrit.chromium.org/gerrit/28474
Reviewed-by: Vic Yang <victoryang@chromium.org>
Commit-Ready: Tom Wai-Hong Tam <waihong@chromium.org>
Tested-by: Tom Wai-Hong Tam <waihong@chromium.org>
diff --git a/server/cros/faftsequence.py b/server/cros/faftsequence.py
index 856ae5d..e954bae 100644
--- a/server/cros/faftsequence.py
+++ b/server/cros/faftsequence.py
@@ -242,14 +242,7 @@
super(FAFTSequence, self).setup()
if not self._remote_infos['faft']['used']:
raise error.TestError('The use_faft flag should be enabled.')
-
- gbb_flags = self.faft_client.get_gbb_flags()
- if (gbb_flags & self.GBB_FLAG_FORCE_DEV_SWITCH_ON):
- logging.info('Disable the GBB_FLAG_FORCE_DEV_SWITCH.')
- self.faft_client.run_shell_command(
- '/usr/share/vboot/bin/set_gbb_flags.sh 0x%x' %
- (gbb_flags ^ self.GBB_FLAG_FORCE_DEV_SWITCH_ON))
-
+ self.clear_gbb_flags(self.GBB_FLAG_FORCE_DEV_SWITCH_ON)
self.register_faft_template({
'state_checker': (None),
'userspace_action': (None),
@@ -326,6 +319,21 @@
})
+ def clear_gbb_flags(self, mask):
+ """Clear the GBB flags in the current flashrom.
+
+ Args:
+ mask: A mask of flags to be cleared.
+ """
+ gbb_flags = self.faft_client.get_gbb_flags()
+ if (gbb_flags & mask):
+ logging.info('Clear the GBB flags of 0x%x, from 0x%x to 0x%x.' %
+ (mask, gbb_flags, gbb_flags ^ mask))
+ self.faft_client.run_shell_command(
+ '/usr/share/vboot/bin/set_gbb_flags.sh 0x%x' %
+ (gbb_flags ^ mask))
+
+
def _open_uart_pty(self):
"""Open UART pty and spawn pexpect object.