blob: 5f8170d0c42bb967e5043f945858cd39a80d7789 [file] [log] [blame]
# Copyright (c) 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from autotest_lib.server import utils
AUTHOR = "Chrome OS Team"
NAME = "firmware_SetSerialNumber"
PURPOSE = "Servo based test to set serial number in firmware."
CRITERIA = """
This test will fail if after setting the serial number in firmware:
* The device is not in normal mode
* The serial number is not set in VPD
* Flash write protect is not enabled
"""
ATTRIBUTES = ""
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "firmware"
TEST_TYPE = "server"
JOB_RETRIES = 1
DOC = """
Test that setting the serial number in firmware during an onsite RMA works.
Mainboards for onsite RMA will have WP# asserted, flash WP bit cleared,
the serial_number in VPD set to all spaces, and be in dev mode. After the
serial number is set in firmware flash write protect will be enabled and
the device will be in normal mode.
"""
args_dict = utils.args_to_dict(args)
servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
def run_SetSerialNumber(machine):
host = hosts.create_host(machine, servo_args=servo_args)
job.run_test("firmware_SetSerialNumber", host=host, cmdline_args=args,
disable_sysinfo=True, tag="dev")
parallel_simple(run_SetSerialNumber, machines)