blob: d27f338dbbdf5b6d6b09e9474e654d953fe2f46d [file] [log] [blame]
# Copyright 2019 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# The test setup enables RDP level 1 by enabling hardware write protect and then
# enabling software write protect (with reboot of the EC); the test setup then
# disables hardware write protect, so that we can perform reads and change RDP
# levels through the bootloader (only accessible when HW write protect is
# disabled).
#
# When the test script starts, a read through the bootloader is done without
# disabling flash protection (changing RDP state). We verify that we are unable
# to read any data.
#
# Next a read through the bootloader is done, while also disabling flash
# protection (changing to RDP level 0), which triggers a mass erase. We verify
# that the bytes in the output are all 0xFF and that the firmware is no longer
# functional.
from autotest_lib.server import utils
NAME = "firmware_Fingerprint.RDP1"
METADATA = {
"contacts": ["chromeos-fingerprint@google.com"],
"bug_component": "b:782045",
"criteria": "Fails if transitioning from RDP level 1 to RDP level 0 does not trigger a mass erase.",
}
ATTRIBUTES = "suite:fingerprint"
TEST_TYPE = "server"
DEPENDENCIES = "servo_state:WORKING, fingerprint"
HW_DEPS = ['biod']
JOB_RETRIES = 0
test_images = ["TEST_IMAGE_ORIGINAL"]
args_dict = utils.args_to_dict(args)
servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
def run(machine):
host = hosts.create_host(machine, servo_args=servo_args)
job.run_test(
"firmware_Fingerprint",
host=host,
test_exe="rdp1.sh",
test_exe_args=test_images,
enable_hardware_write_protect=False,
enable_software_write_protect=True,
tag="RDP1",
)
parallel_simple(run, machines)