Add a test of EC software sync
This test corrupts EC RW firmware and checks it is restored by EC
software sync.
BUG=chrome-os-partner:11980
TEST=Test passed.
CQ-DEPEND=28790
Change-Id: I16470c5c22f98de67e2727c54d8e3733159480c7
Reviewed-on: https://gerrit.chromium.org/gerrit/28791
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
Tested-by: Vic Yang <victoryang@chromium.org>
Commit-Ready: Vic Yang <victoryang@chromium.org>
diff --git a/client/cros/faft_client.py b/client/cros/faft_client.py
index c5a7832..38e3e53 100644
--- a/client/cros/faft_client.py
+++ b/client/cros/faft_client.py
@@ -254,6 +254,25 @@
return self._bios_handler.get_section_flags(section)
+ def set_firmware_flags(self, section, flags):
+ """Set the preamble flags of a firmware section.
+
+ Args:
+ section: A firmware section, either 'a' or 'b'.
+ flags: An integer of preamble flags.
+ """
+ self._chromeos_interface.log(
+ 'Setting preamble flags of firmware %s to %s' % (section, flags))
+ version = self.get_firmware_version(section)
+ self._bios_handler.set_section_version(section, version, flags,
+ write_through=True)
+
+
+ def get_EC_firmware_sha(self):
+ """Get SHA1 hash of EC RW firmware section. """
+ return self._ec_handler.get_section_sha('rw')
+
+
def reload_firmware(self):
"""Reload the firmware image that may be changed."""
self._bios_handler.reload()
@@ -355,13 +374,18 @@
self._bios_handler.restore_firmware_body(section)
+ def get_firmware_version(self, section):
+ """Retrieve firmware version of a section."""
+ return self._bios_handler.get_section_version(section)
+
+
def _modify_firmware_version(self, section, delta):
"""Modify firmware version for the requested section, by adding delta.
The passed in delta, a positive or a negative number, is added to the
original firmware version.
"""
- original_version = self._bios_handler.get_section_version(section)
+ original_version = self.get_firmware_version(section)
new_version = original_version + delta
flags = self._bios_handler.get_section_flags(section)
self._chromeos_interface.log(