| # 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) |