diff --git a/server/site_tests/firmware_ECPeci/control b/server/site_tests/firmware_ECPeci/control
deleted file mode 100644
index b640c21..0000000
--- a/server/site_tests/firmware_ECPeci/control
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2012 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_ECPeci"
-PURPOSE = "Servo based EC PECI test"
-CRITERIA = "This test will fail if EC PECI misbehalved."
-ATTRIBUTES = "suite:faft_ec, suite:faft_ec_fw_qual, suite:faft_ec3po, suite:faft_ec_tot"
-TIME = "SHORT"
-TEST_CATEGORY = "Functional"
-TEST_CLASS = "firmware"
-TEST_TYPE = "server"
-DEPENDENCIES = "ec:cros, servo_state:WORKING"
-JOB_RETRIES = 4
-
-DOC = """
-This is a stress test for EC PECI. We keep polling CPU temperature through
-PECI and check there should be no error.
-"""
-
-args_dict = utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
-def run_ecpeci(machine):
-    host = hosts.create_host(machine, servo_args=servo_args)
-    job.run_test("firmware_ECPeci", host=host, cmdline_args=args,
-                 disable_sysinfo=True)
-
-parallel_simple(run_ecpeci, machines)
diff --git a/server/site_tests/firmware_ECPeci/firmware_ECPeci.py b/server/site_tests/firmware_ECPeci/firmware_ECPeci.py
deleted file mode 100644
index 4202db1..0000000
--- a/server/site_tests/firmware_ECPeci/firmware_ECPeci.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright (c) 2012 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.
-
-import logging
-
-from autotest_lib.client.common_lib import error
-from autotest_lib.server.cros.faft.firmware_test import FirmwareTest
-
-
-class firmware_ECPeci(FirmwareTest):
-    """
-    Servo based EC PECI test.
-    """
-    version = 1
-
-    # Repeat read count
-    READ_COUNT = 200
-
-    def initialize(self, host, cmdline_args):
-        super(firmware_ECPeci, self).initialize(host, cmdline_args)
-        # Don't bother if there is no Chrome EC.
-        if not self.check_ec_capability(['peci']):
-            raise error.TestNAError("Nothing needs to be tested on this device")
-        self.ec.send_command("chan 0")
-
-    def cleanup(self):
-        try:
-            self.ec.send_command("chan 0xffffffff")
-        except Exception as e:
-            logging.error("Caught exception: %s", str(e))
-        super(firmware_ECPeci, self).cleanup()
-
-    def _check_read(self):
-        """Read CPU temperature through PECI.
-
-        Raises:
-          error.TestFail: Raised when read fails.
-        """
-        t = int(self.ec.send_command_get_output("pecitemp",
-                ["CPU temp = (\d+) K"])[0][1])
-        if t < 273 or t > 400:
-            raise error.TestFail("Abnormal CPU temperature %d K" % t)
-
-    def run_once(self):
-        """Execute the main body of the test.
-        """
-        if not self.check_ec_capability(['peci']):
-            raise error.TestNAError("Nothing needs to be tested on this device")
-        logging.info("Reading PECI CPU temperature for %d times.",
-                     self.READ_COUNT)
-        for _ in xrange(self.READ_COUNT):
-            self._check_read()
