Home | History | Annotate | Download | only in firmware_ECWriteProtect
      1 # Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 from autotest_lib.server import utils
      6 
      7 AUTHOR = "Chrome OS Team"
      8 NAME = "firmware_ECWriteProtect"
      9 PURPOSE = "Servo based EC write protect test"
     10 CRITERIA = "This test will fail if EC write protect misbehaved"
     11 ATTRIBUTES = "suite:faft, suite:faft_ec, suite:faft_ec_ryu, suite:faft_ec3po"
     12 SUITE = "faft,faft_ec,faft_ec_ryu,faft_ec3po"
     13 TIME = "SHORT"
     14 TEST_CATEGORY = "Functional"
     15 TEST_CLASS = "firmware"
     16 TEST_TYPE = "server"
     17 JOB_RETRIES = 4
     18 
     19 DOC = """
     20 This test starts with RO normal mode and enables EC write protect. Software sync
     21 supposed to write protect the entire EC flash, so we expect the following
     22 write protect flags:
     23   - wp_gpio_asserted
     24   - ro_at_boot
     25   - ro_now
     26   - all_now
     27 These flags are checked under following situations:
     28   - Cold reset. RO normal.
     29   - Cold reset. Two stop.
     30   - Cold reset by ectool. Two stop.
     31 At the end of the test, write protect is deactivated and firmware is restored to
     32 RO normal mode.
     33 """
     34 
     35 args_dict = utils.args_to_dict(args)
     36 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
     37 
     38 def run_ecwriteprotect(machine):
     39     host = hosts.create_host(machine, servo_args=servo_args)
     40     job.run_test("firmware_ECWriteProtect", host=host, cmdline_args=args,
     41                  disable_sysinfo=True, dev_mode=False, tag="normal")
     42 
     43 parallel_simple(run_ecwriteprotect, machines)
     44