summaryrefslogtreecommitdiff
path: root/common/mock
diff options
context:
space:
mode:
Diffstat (limited to 'common/mock')
-rw-r--r--common/mock/README.md88
-rw-r--r--common/mock/battery_mock.c211
-rw-r--r--common/mock/build.mk23
-rw-r--r--common/mock/charge_manager_mock.c50
-rw-r--r--common/mock/dp_alt_mode_mock.c35
-rw-r--r--common/mock/fp_sensor_mock.c87
-rw-r--r--common/mock/fpsensor_detect_mock.c28
-rw-r--r--common/mock/fpsensor_state_mock.c34
-rw-r--r--common/mock/mkbp_events_mock.c26
-rw-r--r--common/mock/rollback_mock.c41
-rw-r--r--common/mock/tcpc_mock.c227
-rw-r--r--common/mock/tcpci_i2c_mock.c1004
-rw-r--r--common/mock/tcpm_mock.c72
-rw-r--r--common/mock/timer_mock.c22
-rw-r--r--common/mock/usb_mux_mock.c63
-rw-r--r--common/mock/usb_pd_dpm_mock.c72
-rw-r--r--common/mock/usb_pe_sm_mock.c120
-rw-r--r--common/mock/usb_prl_mock.c200
-rw-r--r--common/mock/usb_tc_sm_mock.c214
19 files changed, 0 insertions, 2617 deletions
diff --git a/common/mock/README.md b/common/mock/README.md
deleted file mode 100644
index c7695531b6..0000000000
--- a/common/mock/README.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# Common Mocks
-
-This directory holds mock implementations for use in fuzzers and tests.
-
-Each mock is given some friendly build name, like ROLLBACK or FP_SENSOR. This
-name is defined in [common/mock/build.mk](build.mk) and referenced from unit
-tests and fuzzers' `.mocklist` file.
-
-## Creating a new mock
-
-* Add the mock source to [common/mock](/common/mock) and the optional header
- file to [include/mock](/include/mock). Header files are only necessary if
- you want to expose additional [mock control](#mock-controls)
- functions/variables. See the [Design Patterns](#design-patterns) section for
- more detail on design patterns.
-* Add a new entry in [common/mock/build.mk](build.mk) that is conditioned on
- your mock's name.
-
-If a unit test or fuzzer requests this mock, the build system will set the
-variable `HAS_MOCK_<BUILD_NAME>` to `y` at build time. This variable is used to
-conditionally include the mock source in [common/mock/build.mk](build.mk).
-
-Example line from [common/mock/build.mk](build.mk):
-
-```make
-# Mocks
-mock-$(HAS_MOCK_ROLLBACK) += mock/rollback_mock.o
-```
-
-## Using a mock
-
-Unit tests and fuzzers can request a particular mock by adding an entry to their
-`.mocklist` file. The mocklist file is similar to a `.tasklist` file, where it
-is named according to the test/fuzz's name followed by `.mocklist`, like
-`fpsensor.mocklist`. The mocklist file is optional, so you may need to create
-one.
-
-Example `.mocklist`:
-
-```c
-/* Copyright 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.
- */
-
- #define CONFIG_TEST_MOCK_LIST \
- MOCK(ROLLBACK) \
- MOCK(FP_SENSOR)
-```
-
-If you need additional [mock control](#mock-controls) functionality, you may
-need to include the mock's header file, which is prepended with `mock/` in the
-include line.
-
-For example, to control the return values of the rollback mock:
-
-```c
-#include "mock/rollback_mock.h"
-
-void yourfunction() {
- mock_ctrl_rollback.get_secret_fail = true;
-}
-```
-
-## Mock Controls
-
-Mocks can change their behavior by exposing "mock controls".
-
-We do this, most commonly, by exposing an additional global struct per mock that
-acts as the settings for the mock implementation. The mock user can then modify
-fields of the struct to change the mock's behavior. For example, the
-`fp_sensor_init_return` field may control what value the mocked `fp_sensor_init`
-function returns.
-
-The declaration for these controls are specified in the mock's header file,
-which resides in [include/mock](/include/mock).
-
-## Design Patterns
-
-* When creating mock controls, consider placing all your mock parameters in
- one externally facing struct, like in
- [fp_sensor_mock.h](/include/mock/fp_sensor_mock.h). The primary reason for
- this is to allow the mock to be easily used by a fuzzer (write random bytes
- into the struct with memcpy).
-* When following the above pattern, please provide a macro for resetting
- default values for this struct, like in
- [fp_sensor_mock.h](/include/mock/fp_sensor_mock.h). This allows unit tests
- to quickly reset the mock state/parameters before each unrelated unit test.
diff --git a/common/mock/battery_mock.c b/common/mock/battery_mock.c
deleted file mode 100644
index 63e94c660b..0000000000
--- a/common/mock/battery_mock.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/* Copyright 2021 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.
- */
-
-#include "battery.h"
-#include "string.h"
-
-/*****************************************************************************
- * Battery functions needed to enable CONFIG_BATTERY
- */
-static int battery_soc_value = 100;
-int board_get_battery_soc(void)
-{
- return battery_soc_value;
-}
-void set_battery_soc(int new_value)
-{
- battery_soc_value = new_value;
-}
-
-static int battery_status_value;
-int battery_status(int *status)
-{
- *status = battery_status_value;
- return EC_SUCCESS;
-}
-void set_battery_status(int new_value)
-{
- battery_status_value = new_value;
-}
-
-static int battery_serial_number_value;
-int battery_serial_number(int *serial)
-{
- *serial = battery_serial_number_value;
- return EC_SUCCESS;
-}
-void set_battery_serial_number(int new_value)
-{
- battery_serial_number_value = new_value;
-}
-
-static int battery_design_voltage_value = 5000;
-int battery_design_voltage(int *voltage)
-{
- *voltage = battery_design_voltage_value;
- return EC_SUCCESS;
-}
-void set_battery_design_voltage(int new_value)
-{
- battery_design_voltage_value = new_value;
-}
-
-static int battery_mode_value;
-int battery_get_mode(int *mode)
-{
- *mode = battery_mode_value;
- return EC_SUCCESS;
-}
-void set_battery_mode(int new_value)
-{
- battery_mode_value = new_value;
-}
-
-static int battery_soc_abs_value = 100;
-int battery_state_of_charge_abs(int *percent)
-{
- *percent = battery_soc_abs_value;
- return EC_SUCCESS;
-}
-void set_battery_soc_abs(int new_value)
-{
- battery_soc_abs_value = new_value;
-}
-
-static int battery_remaining_capacity_value = 100;
-int battery_remaining_capacity(int *capacity)
-{
- *capacity = battery_remaining_capacity_value;
- return EC_SUCCESS;
-}
-void set_battery_remaining_capacity(int new_value)
-{
- battery_remaining_capacity_value = new_value;
-}
-
-static int battery_full_charge_capacity_value = 100;
-int battery_full_charge_capacity(int *capacity)
-{
- *capacity = battery_full_charge_capacity_value;
- return EC_SUCCESS;
-}
-void set_battery_full_charge_capacity(int new_value)
-{
- battery_full_charge_capacity_value = new_value;
-}
-
-static int battery_design_capacity_value = 100;
-int battery_design_capacity(int *capacity)
-{
- *capacity = battery_design_capacity_value;
- return EC_SUCCESS;
-}
-void set_battery_design_capacity(int new_value)
-{
- battery_design_capacity_value = new_value;
-}
-
-static int battery_time_to_empty_value = 60;
-int battery_time_to_empty(int *minutes)
-{
- *minutes = battery_time_to_empty_value;
- return EC_SUCCESS;
-}
-void set_battery_time_to_empty(int new_value)
-{
- battery_time_to_empty_value = new_value;
-}
-
-static int battery_run_time_to_empty_value = 60;
-int battery_run_time_to_empty(int *minutes)
-{
- *minutes = battery_run_time_to_empty_value;
- return EC_SUCCESS;
-}
-void set_battery_run_time_to_empty(int new_value)
-{
- battery_run_time_to_empty_value = new_value;
-}
-
-static int battery_time_to_full_value;
-int battery_time_to_full(int *minutes)
-{
- *minutes = battery_time_to_full_value;
- return EC_SUCCESS;
-}
-void set_battery_time_to_full(int new_value)
-{
- battery_time_to_full_value = new_value;
-}
-
-#define MAX_DEVICE_NAME_LENGTH 40
-static char battery_device_name_value[MAX_DEVICE_NAME_LENGTH+1] = "?";
-int battery_device_name(char *dest, int size)
-{
- int i;
-
- for (i = 0; i < size && i < MAX_DEVICE_NAME_LENGTH; ++i)
- dest[i] = battery_device_name_value[i];
- for (; i < size; ++i)
- dest[i] = '\0';
- return EC_SUCCESS;
-}
-void set_battery_device_name(char *new_value)
-{
- int i;
- int size = strlen(new_value);
-
- for (i = 0; i < size && i < MAX_DEVICE_NAME_LENGTH; ++i)
- battery_device_name_value[i] = new_value[i];
- for (; i < MAX_DEVICE_NAME_LENGTH+1; ++i)
- battery_device_name_value[i] = '\0';
-}
-
-#define MAX_DEVICE_CHEMISTRY_LENGTH 40
-static char battery_device_chemistry_value[MAX_DEVICE_CHEMISTRY_LENGTH+1] = "?";
-int battery_device_chemistry(char *dest, int size)
-{
- int i;
-
- for (i = 0; i < size && i < MAX_DEVICE_CHEMISTRY_LENGTH; ++i)
- dest[i] = battery_device_chemistry_value[i];
- for (; i < size; ++i)
- dest[i] = '\0';
- return EC_SUCCESS;
-}
-void set_battery_device_chemistry(char *new_value)
-{
- int i;
- int size = strlen(new_value);
-
- for (i = 0; i < size && i < MAX_DEVICE_CHEMISTRY_LENGTH; ++i)
- battery_device_chemistry_value[i] = new_value[i];
- for (; i < MAX_DEVICE_CHEMISTRY_LENGTH+1; ++i)
- battery_device_chemistry_value[i] = '\0';
-}
-
-static int battery_current_value = 3000;
-static int battery_desired_current_value = 3000;
-static int battery_desired_voltage_value = 5000;
-static int battery_is_present_value = BP_YES;
-static int battery_temperature_value = 20;
-static int battery_voltage_value = 5000;
-void battery_get_params(struct batt_params *batt)
-{
- struct batt_params batt_new = {0};
-
- batt_new.temperature = battery_temperature_value;
- batt_new.state_of_charge = battery_soc_value;
- batt_new.voltage = battery_voltage_value;
- batt_new.current = battery_current_value;
- batt_new.desired_voltage = battery_desired_voltage_value;
- batt_new.desired_current = battery_desired_current_value;
- batt_new.remaining_capacity = battery_remaining_capacity_value;
- batt_new.full_capacity = battery_full_charge_capacity_value;
- batt_new.status = battery_status_value;
- batt_new.is_present = battery_is_present_value;
-
- memcpy(batt, &batt_new, sizeof(*batt));
-}
diff --git a/common/mock/build.mk b/common/mock/build.mk
deleted file mode 100644
index 91607b2b1e..0000000000
--- a/common/mock/build.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 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.
-
-# See common/mock/README.md for more information.
-
-mock-$(HAS_MOCK_BATTERY) += battery_mock.o
-mock-$(HAS_MOCK_CHARGE_MANAGER) += charge_manager_mock.o
-mock-$(HAS_MOCK_FP_SENSOR) += fp_sensor_mock.o
-mock-$(HAS_MOCK_FPSENSOR_DETECT) += fpsensor_detect_mock.o
-mock-$(HAS_MOCK_FPSENSOR_STATE) += fpsensor_state_mock.o
-mock-$(HAS_MOCK_MKBP_EVENTS) += mkbp_events_mock.o
-mock-$(HAS_MOCK_ROLLBACK) += rollback_mock.o
-mock-$(HAS_MOCK_TCPC) += tcpc_mock.o
-mock-$(HAS_MOCK_TCPM) += tcpm_mock.o
-mock-$(HAS_MOCK_TCPCI_I2C) += tcpci_i2c_mock.o
-mock-$(HAS_MOCK_TIMER) += timer_mock.o
-mock-$(HAS_MOCK_USB_MUX) += usb_mux_mock.o
-mock-$(HAS_MOCK_USB_PE_SM) += usb_pe_sm_mock.o
-mock-$(HAS_MOCK_USB_TC_SM) += usb_tc_sm_mock.o
-mock-$(HAS_MOCK_USB_PD_DPM) += usb_pd_dpm_mock.o
-mock-$(HAS_MOCK_DP_ALT_MODE) += dp_alt_mode_mock.o
-mock-$(HAS_MOCK_USB_PRL) += usb_prl_mock.o
diff --git a/common/mock/charge_manager_mock.c b/common/mock/charge_manager_mock.c
deleted file mode 100644
index 11661d2b2e..0000000000
--- a/common/mock/charge_manager_mock.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright 2021 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.
- */
-
-/**
- * @file
- * @brief Mock charge_manager
- */
-
-#include <stdlib.h>
-
-#include "charge_manager.h"
-#include "common.h"
-#include "mock/charge_manager_mock.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-void charge_manager_update_dualrole(int port, enum dualrole_capabilities cap)
-{
-}
-
-void charge_manager_set_ceil(int port, enum ceil_requestor requestor, int ceil)
-{
-}
-
-int charge_manager_get_selected_charge_port(void)
-{
- return 0;
-}
-
-int charge_manager_get_active_charge_port(void)
-{
- return 0;
-}
-
-int charge_manager_get_vbus_voltage(int port)
-{
- return mock_ctrl_charge_manager.vbus_voltage_mv;
-}
-
-void mock_charge_manager_set_vbus_voltage(int voltage_mv)
-{
- mock_ctrl_charge_manager.vbus_voltage_mv = voltage_mv;
-}
-
-struct mock_ctrl_charge_manager mock_ctrl_charge_manager =
-MOCK_CTRL_DEFAULT_CHARGE_MANAGER;
diff --git a/common/mock/dp_alt_mode_mock.c b/common/mock/dp_alt_mode_mock.c
deleted file mode 100644
index c489d39830..0000000000
--- a/common/mock/dp_alt_mode_mock.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 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.
- */
-
-/*
- * Mock for DisplayPort alternate mode support
- * Refer to VESA DisplayPort Alt Mode on USB Type-C Standard, version 2.0,
- * section 5.2
- */
-
-#include "usb_dp_alt_mode.h"
-#include "mock/dp_alt_mode_mock.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-#ifdef CONFIG_COMMON_RUNTIME
-#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
-#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-#else
-#define CPRINTF(format, args...)
-#define CPRINTS(format, args...)
-#endif
-
-void mock_dp_alt_mode_reset(void)
-{
- /* Nothing to do right now, but in the future ... */
-}
-
-void dp_init(int port)
-{
- CPRINTS("C%d: DP init", port);
-}
diff --git a/common/mock/fp_sensor_mock.c b/common/mock/fp_sensor_mock.c
deleted file mode 100644
index 363f092ff1..0000000000
--- a/common/mock/fp_sensor_mock.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright 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.
- */
-
-/**
- * @file
- * @brief Mock fpsensor private driver
- */
-
-#include <stdlib.h>
-
-#include "common.h"
-#include "fpsensor.h"
-#include "mock/fp_sensor_mock.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-struct mock_ctrl_fp_sensor mock_ctrl_fp_sensor = MOCK_CTRL_DEFAULT_FP_SENSOR;
-
-int fp_sensor_init(void)
-{
- return mock_ctrl_fp_sensor.fp_sensor_init_return;
-}
-
-int fp_sensor_deinit(void)
-{
- return mock_ctrl_fp_sensor.fp_sensor_deinit_return;
-}
-
-int fp_sensor_get_info(struct ec_response_fp_info *resp)
-{
- resp->version = 0;
- return mock_ctrl_fp_sensor.fp_sensor_get_info_return;
-}
-
-void fp_sensor_low_power(void)
-{
-}
-
-void fp_sensor_configure_detect(void)
-{
-}
-
-enum finger_state fp_sensor_finger_status(void)
-{
- return mock_ctrl_fp_sensor.fp_sensor_finger_status_return;
-}
-
-int fp_sensor_acquire_image(uint8_t *image_data)
-{
- return mock_ctrl_fp_sensor.fp_sensor_acquire_image_return;
-}
-
-int fp_sensor_acquire_image_with_mode(uint8_t *image_data, int mode)
-{
- return mock_ctrl_fp_sensor.fp_sensor_acquire_image_with_mode_return;
-}
-
-int fp_finger_match(void *templ, uint32_t templ_count,
- uint8_t *image, int32_t *match_index,
- uint32_t *update_bitmap)
-{
- return mock_ctrl_fp_sensor.fp_finger_match_return;
-}
-
-int fp_enrollment_begin(void)
-{
- return mock_ctrl_fp_sensor.fp_enrollment_begin_return;
-}
-
-int fp_enrollment_finish(void *templ)
-{
- return mock_ctrl_fp_sensor.fp_enrollment_finish_return;
-}
-
-int fp_finger_enroll(uint8_t *image, int *completion)
-{
- return mock_ctrl_fp_sensor.fp_finger_enroll_return;
-}
-
-int fp_maintenance(void)
-{
- return mock_ctrl_fp_sensor.fp_maintenance_return;
-}
diff --git a/common/mock/fpsensor_detect_mock.c b/common/mock/fpsensor_detect_mock.c
deleted file mode 100644
index 6e3ca839f1..0000000000
--- a/common/mock/fpsensor_detect_mock.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2020 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.
- */
-
-#include "mock/fpsensor_detect_mock.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-struct mock_ctrl_fpsensor_detect mock_ctrl_fpsensor_detect =
- MOCK_CTRL_DEFAULT_FPSENSOR_DETECT;
-
-enum fp_sensor_type get_fp_sensor_type(void)
-{
- return mock_ctrl_fpsensor_detect.get_fp_sensor_type_return;
-}
-
-enum fp_transport_type get_fp_transport_type(void)
-{
- return mock_ctrl_fpsensor_detect.get_fp_transport_type_return;
-}
-
-enum fp_sensor_spi_select get_fp_sensor_spi_select(void)
-{
- return mock_ctrl_fpsensor_detect.get_fp_sensor_spi_select_return;
-}
diff --git a/common/mock/fpsensor_state_mock.c b/common/mock/fpsensor_state_mock.c
deleted file mode 100644
index c3092fe860..0000000000
--- a/common/mock/fpsensor_state_mock.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2020 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.
- */
-
-#include <stddef.h>
-#include <string.h>
-
-#include "common.h"
-#include "ec_commands.h"
-#include "test_util.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-const uint8_t default_fake_tpm_seed[] = {
- 0xd9, 0x71, 0xaf, 0xc4, 0xcd, 0x36, 0xe3, 0x60, 0xf8, 0x5a, 0xa0,
- 0xa6, 0x2c, 0xb3, 0xf5, 0xe2, 0xeb, 0xb9, 0xd8, 0x2f, 0xb5, 0x78,
- 0x5c, 0x79, 0x82, 0xce, 0x06, 0x3f, 0xcc, 0x23, 0xb9, 0xe7,
-};
-BUILD_ASSERT(sizeof(default_fake_tpm_seed) == FP_CONTEXT_TPM_BYTES);
-
-int fpsensor_state_mock_set_tpm_seed(
- const uint8_t tpm_seed[FP_CONTEXT_TPM_BYTES])
-{
- struct ec_params_fp_seed params;
-
- params.struct_version = FP_TEMPLATE_FORMAT_VERSION;
- memcpy(params.seed, tpm_seed, FP_CONTEXT_TPM_BYTES);
-
- return test_send_host_command(EC_CMD_FP_SEED, 0, &params,
- sizeof(params), NULL, 0);
-}
diff --git a/common/mock/mkbp_events_mock.c b/common/mock/mkbp_events_mock.c
deleted file mode 100644
index d42c06fdec..0000000000
--- a/common/mock/mkbp_events_mock.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 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.
- */
-
-/**
- * @file
- * @brief Mock event handling for MKBP keyboard protocol
- */
-
-#include <stdint.h>
-
-#include "common.h"
-#include "mock/mkbp_events_mock.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-struct mock_ctrl_mkbp_events mock_ctrl_mkbp_events =
- MOCK_CTRL_DEFAULT_MKBP_EVENTS;
-
-int mkbp_send_event(uint8_t event_type)
-{
- return mock_ctrl_mkbp_events.mkbp_send_event_return;
-}
diff --git a/common/mock/rollback_mock.c b/common/mock/rollback_mock.c
deleted file mode 100644
index 2b26d9d8d7..0000000000
--- a/common/mock/rollback_mock.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 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.
- */
-
-/**
- * @file
- * @brief Mock rollback block library
- */
-
-#include <stdint.h>
-#include <string.h>
-
-#include "common.h"
-#include "compile_time_macros.h"
-#include "util.h"
-#include "mock/rollback_mock.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-struct mock_ctrl_rollback mock_ctrl_rollback = MOCK_CTRL_DEFAULT_ROLLBACK;
-
-static const uint8_t fake_rollback_secret[] = {
- 0xcf, 0xe3, 0x23, 0x76, 0x35, 0x04, 0xc2, 0x0f,
- 0x0d, 0xb6, 0x02, 0xa9, 0x68, 0xba, 0x2a, 0x61,
- 0x86, 0x2a, 0x85, 0xd1, 0xca, 0x09, 0x54, 0x8a,
- 0x6b, 0xe2, 0xe3, 0x38, 0xde, 0x5d, 0x59, 0x14,
-};
-
-BUILD_ASSERT(sizeof(fake_rollback_secret) == CONFIG_ROLLBACK_SECRET_SIZE);
-
-/* Mock the rollback for unit or fuzz tests. */
-int rollback_get_secret(uint8_t *secret)
-{
- if (mock_ctrl_rollback.get_secret_fail)
- return EC_ERROR_UNKNOWN;
- memcpy(secret, fake_rollback_secret, sizeof(fake_rollback_secret));
- return EC_SUCCESS;
-}
diff --git a/common/mock/tcpc_mock.c b/common/mock/tcpc_mock.c
deleted file mode 100644
index 7097837268..0000000000
--- a/common/mock/tcpc_mock.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/* Copyright 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.
- */
-/* Mock for the TCPC interface */
-
-#include "common.h"
-#include "console.h"
-#include "memory.h"
-#include "mock/tcpc_mock.h"
-#include "test_util.h"
-#include "tests/enum_strings.h"
-#include "timer.h"
-#include "usb_pd_tcpm.h"
-
-#ifndef CONFIG_COMMON_RUNTIME
-#define cprints(format, args...)
-#endif
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-/* Public API for controlling/inspecting this mock */
-struct mock_tcpc_ctrl mock_tcpc;
-
-void mock_tcpc_reset(void)
-{
- /* Reset all control values to 0. See also build assert below */
- memset(&mock_tcpc, 0, sizeof(mock_tcpc));
-
- /* Reset all last viewed variables to -1 to make them invalid */
- memset(&mock_tcpc.last, 0xff, sizeof(mock_tcpc.last));
-}
-BUILD_ASSERT(TYPEC_CC_VOLT_OPEN == 0, "Ensure Open is 0-value for memset");
-
-static int mock_init(int port)
-{
- return EC_SUCCESS;
-}
-
-static int mock_release(int port)
-{
- return EC_SUCCESS;
-}
-
-static int mock_get_cc(int port, enum tcpc_cc_voltage_status *cc1,
- enum tcpc_cc_voltage_status *cc2)
-{
- *cc1 = mock_tcpc.cc1;
- *cc2 = mock_tcpc.cc2;
- return EC_SUCCESS;
-}
-
-static bool mock_check_vbus_level(int port, enum vbus_level level)
-{
- if (level == VBUS_PRESENT)
- return mock_tcpc.vbus_level;
- else if (level == VBUS_SAFE0V || level == VBUS_REMOVED)
- return !mock_tcpc.vbus_level;
-
- /*
- * Unknown vbus_level was added, force a failure.
- * Note that TCPC drivers and pd_check_vbus_level() implementations
- * should be carefully checked on new level additions in case they
- * need updated.
- */
- ccprints("[TCPC] Unhandled Vbus check %d", level);
- TEST_ASSERT(0);
-}
-
-static int mock_select_rp_value(int port, int rp)
-{
- mock_tcpc.last.rp = rp;
-
- if (!mock_tcpc.should_print_call)
- return EC_SUCCESS;
-
- ccprints("[TCPC] Setting TCPM-side Rp to %s", from_tcpc_rp_value(rp));
-
- return EC_SUCCESS;
-}
-
-static int mock_set_cc(int port, int pull)
-{
- mock_tcpc.last.cc = pull;
-
- if (mock_tcpc.callbacks.set_cc)
- mock_tcpc.callbacks.set_cc(port, pull);
-
- if (!mock_tcpc.should_print_call)
- return EC_SUCCESS;
-
- ccprints("[TCPC] Setting TCPM-side CC to %s", from_tcpc_cc_pull(pull));
-
- return EC_SUCCESS;
-}
-
-static int mock_set_polarity(int port, enum tcpc_cc_polarity polarity)
-{
- mock_tcpc.last.polarity = polarity;
-
- if (!mock_tcpc.should_print_call)
- return EC_SUCCESS;
-
- ccprints("[TCPC] Setting TCPM-side polarity to %s",
- from_tcpc_cc_polarity(polarity));
-
- return EC_SUCCESS;
-}
-
-static int mock_set_vconn(int port, int enable)
-{
- return EC_SUCCESS;
-}
-
-static int mock_set_msg_header(int port, int power_role, int data_role)
-{
- ++mock_tcpc.num_calls_to_set_header;
-
- mock_tcpc.last.power_role = power_role;
- mock_tcpc.last.data_role = data_role;
-
- if (!mock_tcpc.should_print_call)
- return EC_SUCCESS;
-
- ccprints("[TCPC] Setting TCPM-side header to %s %s",
- from_pd_power_role(power_role),
- from_pd_data_role(data_role));
-
- return EC_SUCCESS;
-}
-
-static int mock_set_rx_enable(int port, int enable)
-{
- return EC_SUCCESS;
-}
-
-static int mock_get_message_raw(int port, uint32_t *payload, int *head)
-{
- return EC_SUCCESS;
-}
-
-static int mock_transmit(int port, enum tcpci_msg_type type,
- uint16_t header, const uint32_t *data)
-{
- return EC_SUCCESS;
-}
-
-void mock_tcpc_alert(int port)
-{
-}
-
-void mock_tcpc_discharge_vbus(int port, int enable)
-{
-}
-
-__maybe_unused static int mock_drp_toggle(int port)
-{
- /* Only set the time the first time this is called. */
- if (mock_tcpc.first_call_to_enable_auto_toggle == 0)
- mock_tcpc.first_call_to_enable_auto_toggle = get_time().val;
-
- if (!mock_tcpc.should_print_call)
- return EC_SUCCESS;
-
- ccprints("[TCPC] Enabling Auto Toggle");
-
- return EC_SUCCESS;
-}
-
-static int mock_get_chip_info(int port, int live,
- struct ec_response_pd_chip_info_v1 *info)
-{
- return EC_SUCCESS;
-}
-
-__maybe_unused static int mock_set_snk_ctrl(int port, int enable)
-{
- return EC_SUCCESS;
-}
-
-__maybe_unused static int mock_set_src_ctrl(int port, int enable)
-{
- return EC_SUCCESS;
-}
-
-__maybe_unused static int mock_enter_low_power_mode(int port)
-{
- return EC_SUCCESS;
-}
-
-int mock_set_frs_enable(int port, int enable)
-{
- return EC_SUCCESS;
-}
-
-const struct tcpm_drv mock_tcpc_driver = {
- .init = &mock_init,
- .release = &mock_release,
- .get_cc = &mock_get_cc,
- .check_vbus_level = &mock_check_vbus_level,
- .select_rp_value = &mock_select_rp_value,
- .set_cc = &mock_set_cc,
- .set_polarity = &mock_set_polarity,
- .set_vconn = &mock_set_vconn,
- .set_msg_header = &mock_set_msg_header,
- .set_rx_enable = &mock_set_rx_enable,
- .get_message_raw = &mock_get_message_raw,
- .transmit = &mock_transmit,
- .tcpc_alert = &mock_tcpc_alert,
- .tcpc_discharge_vbus = &mock_tcpc_discharge_vbus,
-#ifdef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
- .drp_toggle = &mock_drp_toggle,
-#endif
- .get_chip_info = &mock_get_chip_info,
-#ifdef CONFIG_USB_PD_PPC
- .set_snk_ctrl = &mock_set_snk_ctrl,
- .set_src_ctrl = &mock_set_src_ctrl,
-#endif
-#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
- .enter_low_power_mode = &mock_enter_low_power_mode,
-#endif
-#ifdef CONFIG_USB_PD_FRS_TCPC
- .set_frs_enable = &mock_set_frs_enable,
-#endif
-};
diff --git a/common/mock/tcpci_i2c_mock.c b/common/mock/tcpci_i2c_mock.c
deleted file mode 100644
index 8ec7556fca..0000000000
--- a/common/mock/tcpci_i2c_mock.c
+++ /dev/null
@@ -1,1004 +0,0 @@
-/* Copyright 2020 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.
- */
-
-#include "mock/tcpci_i2c_mock.h"
-#include "task.h"
-#include "tcpm/tcpci.h"
-#include "test_util.h"
-#include "timer.h"
-#include "usb_pd_tcpm.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-#define BUFFER_SIZE 100
-#define VERIFY_TIMEOUT (5 * SECOND)
-
-struct tcpci_reg {
- uint8_t offset;
- uint8_t size;
- uint16_t value;
- const char *name;
-};
-
-#define TCPCI_REG(reg_name, reg_size) \
- [reg_name] = { .offset = (reg_name), .size = (reg_size), \
- .value = 0, .name = #reg_name, }
-
-static struct tcpci_reg tcpci_regs[] = {
- TCPCI_REG(TCPC_REG_VENDOR_ID, 2),
- TCPCI_REG(TCPC_REG_PRODUCT_ID, 2),
- TCPCI_REG(TCPC_REG_BCD_DEV, 2),
- TCPCI_REG(TCPC_REG_TC_REV, 2),
- TCPCI_REG(TCPC_REG_PD_REV, 2),
- TCPCI_REG(TCPC_REG_PD_INT_REV, 2),
- TCPCI_REG(TCPC_REG_ALERT, 2),
- TCPCI_REG(TCPC_REG_ALERT_MASK, 2),
- TCPCI_REG(TCPC_REG_POWER_STATUS_MASK, 1),
- TCPCI_REG(TCPC_REG_FAULT_STATUS_MASK, 1),
- TCPCI_REG(TCPC_REG_EXT_STATUS_MASK, 1),
- TCPCI_REG(TCPC_REG_ALERT_EXTENDED_MASK, 1),
- TCPCI_REG(TCPC_REG_CONFIG_STD_OUTPUT, 1),
- TCPCI_REG(TCPC_REG_TCPC_CTRL, 1),
- TCPCI_REG(TCPC_REG_ROLE_CTRL, 1),
- TCPCI_REG(TCPC_REG_FAULT_CTRL, 1),
- TCPCI_REG(TCPC_REG_POWER_CTRL, 1),
- TCPCI_REG(TCPC_REG_CC_STATUS, 1),
- TCPCI_REG(TCPC_REG_POWER_STATUS, 1),
- TCPCI_REG(TCPC_REG_FAULT_STATUS, 1),
- TCPCI_REG(TCPC_REG_EXT_STATUS, 1),
- TCPCI_REG(TCPC_REG_ALERT_EXT, 1),
- TCPCI_REG(TCPC_REG_DEV_CAP_1, 2),
- TCPCI_REG(TCPC_REG_DEV_CAP_2, 2),
- TCPCI_REG(TCPC_REG_STD_INPUT_CAP, 1),
- TCPCI_REG(TCPC_REG_STD_OUTPUT_CAP, 1),
- TCPCI_REG(TCPC_REG_CONFIG_EXT_1, 1),
- TCPCI_REG(TCPC_REG_MSG_HDR_INFO, 1),
- TCPCI_REG(TCPC_REG_RX_DETECT, 1),
- TCPCI_REG(TCPC_REG_RX_BUFFER, BUFFER_SIZE),
- TCPCI_REG(TCPC_REG_TRANSMIT, 1),
- TCPCI_REG(TCPC_REG_TX_BUFFER, BUFFER_SIZE),
- TCPCI_REG(TCPC_REG_VBUS_VOLTAGE, 2),
- TCPCI_REG(TCPC_REG_VBUS_SINK_DISCONNECT_THRESH, 2),
- TCPCI_REG(TCPC_REG_VBUS_STOP_DISCHARGE_THRESH, 2),
- TCPCI_REG(TCPC_REG_VBUS_VOLTAGE_ALARM_HI_CFG, 2),
- TCPCI_REG(TCPC_REG_VBUS_VOLTAGE_ALARM_LO_CFG, 2),
- TCPCI_REG(TCPC_REG_COMMAND, 1),
-};
-
-static uint8_t tx_buffer[BUFFER_SIZE];
-static int tx_pos = -1;
-static int tx_msg_cnt;
-static int tx_retry_cnt = -1;
-static uint8_t rx_buffer[BUFFER_SIZE];
-static int rx_pos = -1;
-
-static const char * const ctrl_msg_name[] = {
- [0] = "C-RSVD_0",
- [PD_CTRL_GOOD_CRC] = "C-GOODCRC",
- [PD_CTRL_GOTO_MIN] = "C-GOTOMIN",
- [PD_CTRL_ACCEPT] = "C-ACCEPT",
- [PD_CTRL_REJECT] = "C-REJECT",
- [PD_CTRL_PING] = "C-PING",
- [PD_CTRL_PS_RDY] = "C-PSRDY",
- [PD_CTRL_GET_SOURCE_CAP] = "C-GET_SRC_CAP",
- [PD_CTRL_GET_SINK_CAP] = "C-GET_SNK_CAP",
- [PD_CTRL_DR_SWAP] = "C-DR_SWAP",
- [PD_CTRL_PR_SWAP] = "C-PR_SWAP",
- [PD_CTRL_VCONN_SWAP] = "C-VCONN_SW",
- [PD_CTRL_WAIT] = "C-WAIT",
- [PD_CTRL_SOFT_RESET] = "C-SOFT-RESET",
- [14] = "C-RSVD_14",
- [15] = "C-RSVD_15",
- [PD_CTRL_NOT_SUPPORTED] = "C-NOT_SUPPORTED",
- [PD_CTRL_GET_SOURCE_CAP_EXT] = "C-GET_SRC_CAP-EXT",
- [PD_CTRL_GET_STATUS] = "C-GET-STATUS",
- [PD_CTRL_FR_SWAP] = "C-FR_SWAP",
- [PD_CTRL_GET_PPS_STATUS] = "C-GET_PPS_STATUS",
- [PD_CTRL_GET_COUNTRY_CODES] = "C-GET_COUNTRY_CODES",
-};
-
-static const char * const data_msg_name[] = {
- [0] = "D-RSVD_0",
- [PD_DATA_SOURCE_CAP] = "D-SRC_CAP",
- [PD_DATA_REQUEST] = "D-REQUEST",
- [PD_DATA_BIST] = "D-BIST",
- [PD_DATA_SINK_CAP] = "D-SNK_CAP",
- /* 5-14 Reserved for REV 2.0 */
- [PD_DATA_BATTERY_STATUS] = "D-BATTERY_STATUS",
- [PD_DATA_ALERT] = "D-ALERT",
- [PD_DATA_GET_COUNTRY_INFO] = "D-GET_COUNTRY_CODES",
- /* 8-14 Reserved for REV 3.0 */
- [PD_DATA_ENTER_USB] = "D-ENTER_USB",
- [PD_DATA_VENDOR_DEF] = "D-VDM",
-};
-
-static const char * const ext_msg_name[] = {
- [0] = "X-RSVD_0",
- [PD_EXT_SOURCE_CAP] = "X-SRC_CAP",
- [PD_EXT_STATUS] = "X-STATUS",
- [PD_EXT_GET_BATTERY_CAP] = "X-GET_BATTERY_CAP",
- [PD_EXT_GET_BATTERY_STATUS] = "X-GET_BATTERY_STATUS",
- [PD_EXT_BATTERY_CAP] = "X-BATTERY_CAP",
- [PD_EXT_GET_MANUFACTURER_INFO] = "X-GET_MFR_INFO",
- [PD_EXT_MANUFACTURER_INFO] = "X-MFR_INFO",
- [PD_EXT_SECURITY_REQUEST] = "X-SECURITY_REQ",
- [PD_EXT_SECURITY_RESPONSE] = "X-SECURITY_RESP",
- [PD_EXT_FIRMWARE_UPDATE_REQUEST] = "X-FW_UP_REQ",
- [PD_EXT_FIRMWARE_UPDATE_RESPONSE] = "X-FW_UP_RESP",
- [PD_EXT_PPS_STATUS] = "X-PPS_STATUS",
- [PD_EXT_COUNTRY_INFO] = "X-COUNTRY_INFO",
- [PD_EXT_COUNTRY_CODES] = "X-COUNTRY_CODES",
-};
-
-static const char * const rev_name[] = {
- [PD_REV10] = "1.0",
- [PD_REV20] = "2.0",
- [PD_REV30] = "3.0",
- [3] = "RSVD",
-};
-
-static const char * const drole_name[] = {
- [PD_ROLE_UFP] = "UFP",
- [PD_ROLE_DFP] = "DFP",
-};
-
-static const char * const prole_name[] = {
- [PD_ROLE_SINK] = "SNK",
- [PD_ROLE_SOURCE] = "SRC",
-};
-
-static void print_header(const char *prefix, uint16_t header)
-{
- int type = PD_HEADER_TYPE(header);
- int drole = PD_HEADER_DROLE(header);
- int rev = PD_HEADER_REV(header);
- int prole = PD_HEADER_PROLE(header);
- int id = PD_HEADER_ID(header);
- int cnt = PD_HEADER_CNT(header);
- int ext = PD_HEADER_EXT(header);
- const char *name = ext ? ext_msg_name[type]
- : cnt
- ? data_msg_name[type]
- : ctrl_msg_name[type];
-
- ccprints("%s header=0x%x [%s %s %s %s id=%d cnt=%d ext=%d]",
- prefix, header,
- name, drole_name[drole], rev_name[rev], prole_name[prole],
- id, cnt, ext);
-}
-
-static bool dead_battery(void)
-{
- return false;
-}
-
-static bool debug_accessory_indicator_supported(void)
-{
- return true;
-}
-
-static int verify_transmit(enum tcpci_msg_type want_tx_type,
- int want_tx_retry,
- enum pd_ctrl_msg_type want_ctrl_msg,
- enum pd_data_msg_type want_data_msg,
- int timeout)
-{
- uint64_t end_time = get_time().val + timeout;
-
- /*
- * Check that nothing was already transmitted. This ensures that all
- * transmits are checked, and the test stays in sync with the code
- * being tested.
- */
- TEST_EQ(tcpci_regs[TCPC_REG_TRANSMIT].value, 0, "%d");
-
- /* Now wait for the expected message to be transmitted. */
- while (get_time().val < end_time) {
- if (tcpci_regs[TCPC_REG_TRANSMIT].value != 0) {
- int tx_type = TCPC_REG_TRANSMIT_TYPE(
- tcpci_regs[TCPC_REG_TRANSMIT].value);
- int tx_retry = TCPC_REG_TRANSMIT_RETRY(
- tcpci_regs[TCPC_REG_TRANSMIT].value);
- uint16_t header = UINT16_FROM_BYTE_ARRAY_LE(
- tx_buffer, 1);
- int pd_type = PD_HEADER_TYPE(header);
- int pd_cnt = PD_HEADER_CNT(header);
-
- TEST_EQ(tx_type, want_tx_type, "%d");
- if (want_tx_retry >= 0)
- TEST_EQ(tx_retry, want_tx_retry, "%d");
-
- if (want_ctrl_msg != 0) {
- TEST_EQ(pd_type, want_ctrl_msg, "0x%x");
- TEST_EQ(pd_cnt, 0, "%d");
- }
- if (want_data_msg != 0) {
- TEST_EQ(pd_type, want_data_msg, "0x%x");
- TEST_GE(pd_cnt, 1, "%d");
- }
-
- tcpci_regs[TCPC_REG_TRANSMIT].value = 0;
- return EC_SUCCESS;
- }
- task_wait_event(5 * MSEC);
- }
- TEST_ASSERT(0);
- return EC_ERROR_UNKNOWN;
-}
-
-int verify_tcpci_transmit(enum tcpci_msg_type tx_type,
- enum pd_ctrl_msg_type ctrl_msg,
- enum pd_data_msg_type data_msg)
-{
- return verify_transmit(tx_type, -1,
- ctrl_msg, data_msg,
- VERIFY_TIMEOUT);
-}
-
-int verify_tcpci_tx_timeout(enum tcpci_msg_type tx_type,
- enum pd_ctrl_msg_type ctrl_msg,
- enum pd_data_msg_type data_msg,
- int timeout)
-{
- return verify_transmit(tx_type, -1,
- ctrl_msg, data_msg,
- timeout);
-}
-
-int verify_tcpci_tx_retry_count(enum tcpci_msg_type tx_type,
- enum pd_ctrl_msg_type ctrl_msg,
- enum pd_data_msg_type data_msg,
- int retry_count)
-{
- return verify_transmit(tx_type, retry_count,
- ctrl_msg, data_msg,
- VERIFY_TIMEOUT);
-}
-
-int verify_tcpci_tx_with_data(enum tcpci_msg_type tx_type,
- enum pd_data_msg_type data_msg,
- uint8_t *data,
- int data_bytes,
- int *msg_len,
- int timeout)
-{
- int rv;
-
- if (timeout <= 0)
- timeout = VERIFY_TIMEOUT;
-
- rv = verify_transmit(tx_type, -1,
- 0, data_msg,
- timeout);
- if (!rv) {
- TEST_NE(data, NULL, "%p");
- TEST_GE(data_bytes, tx_msg_cnt, "%d");
- memcpy(data, tx_buffer, tx_msg_cnt);
- if (msg_len)
- *msg_len = tx_msg_cnt;
- }
- return rv;
-}
-
-int verify_tcpci_possible_tx(struct possible_tx possible[],
- int possible_cnt,
- int *found_index,
- uint8_t *data,
- int data_bytes,
- int *msg_len,
- int timeout)
-{
- bool assert_on_timeout = true;
- uint64_t end_time;
-
- *found_index = -1;
-
- if (timeout <= 0) {
- timeout = VERIFY_TIMEOUT;
- assert_on_timeout = false;
- }
- end_time = get_time().val + timeout;
-
- /*
- * Check that nothing was already transmitted. This ensures that all
- * transmits are checked, and the test stays in sync with the code
- * being tested.
- */
- TEST_EQ(tcpci_regs[TCPC_REG_TRANSMIT].value, 0, "%d");
-
- /* Now wait for the expected message to be transmitted. */
- while (get_time().val < end_time) {
- if (tcpci_regs[TCPC_REG_TRANSMIT].value != 0) {
- int i;
- int tx_type = TCPC_REG_TRANSMIT_TYPE(
- tcpci_regs[TCPC_REG_TRANSMIT].value);
- uint16_t header = UINT16_FROM_BYTE_ARRAY_LE(
- tx_buffer, 1);
- int pd_type = PD_HEADER_TYPE(header);
- int pd_cnt = PD_HEADER_CNT(header);
-
- for (i = 0; i < possible_cnt; ++i) {
- int want_tx_type = possible[i].tx_type;
- int want_ctrl_msg = possible[i].ctrl_msg;
- int want_data_msg = possible[i].data_msg;
-
- if (tx_type != want_tx_type)
- continue;
-
- if (want_ctrl_msg != 0) {
- if (pd_type != want_ctrl_msg ||
- pd_cnt != 0)
- continue;
- }
- if (want_data_msg != 0) {
- if (pd_type != want_data_msg ||
- pd_cnt == 0)
- continue;
-
- if (data != NULL) {
- TEST_GE(data_bytes,
- tx_msg_cnt, "%d");
- memcpy(data, tx_buffer,
- tx_msg_cnt);
- }
- if (msg_len != NULL)
- *msg_len = tx_msg_cnt;
- }
- *found_index = i;
- tcpci_regs[TCPC_REG_TRANSMIT].value = 0;
- return EC_SUCCESS;
- }
- return EC_ERROR_UNKNOWN;
- }
- task_wait_event(5 * MSEC);
- }
- if (assert_on_timeout)
- TEST_ASSERT(0);
-
- return EC_ERROR_TIMEOUT;
-}
-
-void mock_tcpci_receive(enum tcpci_msg_type sop, uint16_t header,
- uint32_t *payload)
-{
- int i;
-
- rx_buffer[0] = 3 + (PD_HEADER_CNT(header) * 4);
- rx_buffer[1] = sop;
- rx_buffer[2] = header & 0xFF;
- rx_buffer[3] = (header >> 8) & 0xFF;
-
- if (rx_buffer[0] >= BUFFER_SIZE) {
- ccprints("ERROR: rx too large");
- return;
- }
-
- for (i = 4; i < rx_buffer[0]; i += 4) {
- rx_buffer[i] = *payload & 0xFF;
- rx_buffer[i+1] = (*payload >> 8) & 0xFF;
- rx_buffer[i+2] = (*payload >> 16) & 0xFF;
- rx_buffer[i+3] = (*payload >> 24) & 0xFF;
- payload++;
- }
-
- rx_pos = 0;
-}
-
-/*****************************************************************************
- * TCPCI register reset values
- *
- * These values are from USB Type-C Port Controller Interface Specification
- * Revision 2.0, Version 1.2,
- */
-static void tcpci_reset_register_masks(void)
-{
- /*
- * Using table 4-1 for default mask values
- */
- tcpci_regs[TCPC_REG_ALERT_MASK].value = 0x7FFF;
- tcpci_regs[TCPC_REG_POWER_STATUS_MASK].value = 0xFF;
- tcpci_regs[TCPC_REG_FAULT_STATUS_MASK].value = 0xFF;
- tcpci_regs[TCPC_REG_EXT_STATUS_MASK].value = 0x01;
- tcpci_regs[TCPC_REG_ALERT_EXTENDED_MASK].value = 0x07;
-}
-
-static void tcpci_reset_register_defaults(void)
-{
- int i;
-
- /* Default all registers to 0 and then overwrite if they are not */
- for (i = 0; i < ARRAY_SIZE(tcpci_regs); i++)
- tcpci_regs[i].value = 0;
-
- /* Type-C Release 1,3 */
- tcpci_regs[TCPC_REG_TC_REV].value = 0x0013;
- /* PD Revision 3.0 Version 1.2 */
- tcpci_regs[TCPC_REG_PD_REV].value = 0x3012;
- /* PD Interface Revision 2.0, Version 1.1 */
- tcpci_regs[TCPC_REG_PD_INT_REV].value = 0x2011;
-
- tcpci_reset_register_masks();
-
- tcpci_regs[TCPC_REG_CONFIG_STD_OUTPUT].value =
- TCPC_REG_CONFIG_STD_OUTPUT_AUDIO_CONN_N |
- TCPC_REG_CONFIG_STD_OUTPUT_DBG_ACC_CONN_N;
-
- tcpci_regs[TCPC_REG_POWER_CTRL].value =
- TCPC_REG_POWER_CTRL_VOLT_ALARM_DIS |
- TCPC_REG_POWER_CTRL_VBUS_VOL_MONITOR_DIS;
-
- tcpci_regs[TCPC_REG_FAULT_STATUS].value =
- TCPC_REG_FAULT_STATUS_ALL_REGS_RESET;
-
- tcpci_regs[TCPC_REG_DEV_CAP_1].value =
- TCPC_REG_DEV_CAP_1_SOURCE_VBUS |
- TCPC_REG_DEV_CAP_1_SINK_VBUS |
- TCPC_REG_DEV_CAP_1_PWRROLE_SRC_SNK_DRP |
- TCPC_REG_DEV_CAP_1_SRC_RESISTOR_RP_3P0_1P5_DEF;
-
- /*
- * Using table 4-17 to get the default Role Control and
- * Message Header Info register values.
- */
- switch (mock_tcpci_get_reg(TCPC_REG_DEV_CAP_1) &
- TCPC_REG_DEV_CAP_1_PWRROLE_MASK) {
- case TCPC_REG_DEV_CAP_1_PWRROLE_SRC_OR_SNK:
- case TCPC_REG_DEV_CAP_1_PWRROLE_SNK:
- case TCPC_REG_DEV_CAP_1_PWRROLE_SNK_ACC:
- tcpci_regs[TCPC_REG_ROLE_CTRL].value = 0x0A;
- tcpci_regs[TCPC_REG_MSG_HDR_INFO].value = 0x04;
- break;
-
- case TCPC_REG_DEV_CAP_1_PWRROLE_DRP:
- if (dead_battery())
- tcpci_regs[TCPC_REG_ROLE_CTRL].value = 0x0A;
- else if (debug_accessory_indicator_supported())
- tcpci_regs[TCPC_REG_ROLE_CTRL].value = 0x4A;
- else
- tcpci_regs[TCPC_REG_ROLE_CTRL].value = 0x0F;
- tcpci_regs[TCPC_REG_MSG_HDR_INFO].value = 0x04;
- break;
-
- case TCPC_REG_DEV_CAP_1_PWRROLE_SRC:
- if (!dead_battery())
- tcpci_regs[TCPC_REG_ROLE_CTRL].value = 0x05;
- tcpci_regs[TCPC_REG_MSG_HDR_INFO].value = 0x0D;
- break;
-
- case TCPC_REG_DEV_CAP_1_PWRROLE_SRC_SNK_DRP_ADPT_CBL:
- case TCPC_REG_DEV_CAP_1_PWRROLE_SRC_SNK_DRP:
- if (dead_battery())
- tcpci_regs[TCPC_REG_ROLE_CTRL].value = 0x0A;
- else if (debug_accessory_indicator_supported())
- tcpci_regs[TCPC_REG_ROLE_CTRL].value = 0x4A;
- else
- tcpci_regs[TCPC_REG_ROLE_CTRL].value = 0x0F;
- tcpci_regs[TCPC_REG_MSG_HDR_INFO].value = 0x04;
- break;
- }
-}
-/*****************************************************************************/
-
-void mock_tcpci_reset(void)
-{
- tcpci_reset_register_defaults();
-}
-
-void mock_tcpci_set_reg(int reg_offset, uint16_t value)
-{
- struct tcpci_reg *reg = tcpci_regs + reg_offset;
-
- reg->value = value;
- ccprints("TCPCI mock set %s = 0x%x", reg->name, reg->value);
-}
-
-void mock_tcpci_set_reg_bits(int reg_offset, uint16_t mask)
-{
- struct tcpci_reg *reg = tcpci_regs + reg_offset;
- uint16_t old_value = reg->value;
-
- reg->value |= mask;
- ccprints("TCPCI mock set bits %s (mask=0x%x) = 0x%x -> 0x%x",
- reg->name, mask, old_value, reg->value);
-}
-
-void mock_tcpci_clr_reg_bits(int reg_offset, uint16_t mask)
-{
- struct tcpci_reg *reg = tcpci_regs + reg_offset;
- uint16_t old_value = reg->value;
-
- reg->value &= ~mask;
- ccprints("TCPCI mock clr bits %s (mask=0x%x) = 0x%x -> 0x%x",
- reg->name, mask, old_value, reg->value);
-}
-
-uint16_t mock_tcpci_get_reg(int reg_offset)
-{
- return tcpci_regs[reg_offset].value;
-}
-
-int tcpci_i2c_xfer(int port, uint16_t addr_flags,
- const uint8_t *out, int out_size,
- uint8_t *in, int in_size, int flags)
-{
- struct tcpci_reg *reg;
-
- if (port != I2C_PORT_HOST_TCPC) {
- ccprints("ERROR: wrong I2C port %d", port);
- return EC_ERROR_UNKNOWN;
- }
- if (addr_flags != MOCK_TCPCI_I2C_ADDR_FLAGS) {
- ccprints("ERROR: wrong I2C address 0x%x", addr_flags);
- return EC_ERROR_UNKNOWN;
- }
-
- if (rx_pos > 0) {
- if (rx_pos + in_size > rx_buffer[0] + 1) {
- ccprints("ERROR: rx in_size");
- return EC_ERROR_UNKNOWN;
- }
- memcpy(in, rx_buffer + rx_pos, in_size);
- rx_pos += in_size;
- if (rx_pos == rx_buffer[0] + 1) {
- print_header("RX", UINT16_FROM_BYTE_ARRAY_LE(
- rx_buffer, 2));
- rx_pos = -1;
- }
- return EC_SUCCESS;
- }
-
- if (out_size == 0) {
- ccprints("ERROR: out_size == 0");
- return EC_ERROR_UNKNOWN;
- }
- if (tx_pos != -1) {
- if (tx_pos + out_size > BUFFER_SIZE) {
- ccprints("ERROR: tx out_size");
- return EC_ERROR_UNKNOWN;
- }
- memcpy(tx_buffer + tx_pos, out, out_size);
- tx_pos += out_size;
- tx_msg_cnt = tx_pos;
- if (tx_pos > 0 && tx_pos == tx_buffer[0] + 1) {
- print_header("TX", UINT16_FROM_BYTE_ARRAY_LE(
- tx_buffer, 1));
- tx_pos = -1;
- tx_retry_cnt = -1;
- }
- return EC_SUCCESS;
- }
- reg = tcpci_regs + *out;
- if (*out >= ARRAY_SIZE(tcpci_regs) || reg->size == 0) {
- ccprints("ERROR: unknown reg 0x%x", *out);
- return EC_ERROR_UNKNOWN;
- }
- if (reg->offset == TCPC_REG_TX_BUFFER) {
- if (tx_pos != -1) {
- ccprints("ERROR: TCPC_REG_TX_BUFFER not ready");
- return EC_ERROR_UNKNOWN;
- }
- tx_pos = 0;
- tx_msg_cnt = 0;
- if (out_size != 1) {
- ccprints("ERROR: TCPC_REG_TX_BUFFER out_size != 1");
- return EC_ERROR_UNKNOWN;
- }
- } else if (reg->offset == TCPC_REG_RX_BUFFER) {
- if (rx_pos != 0) {
- ccprints("ERROR: TCPC_REG_RX_BUFFER not ready");
- return EC_ERROR_UNKNOWN;
- }
- if (in_size > BUFFER_SIZE || in_size > rx_buffer[0]) {
- ccprints("ERROR: TCPC_REG_RX_BUFFER in_size");
- return EC_ERROR_UNKNOWN;
- }
- memcpy(in, rx_buffer, in_size);
- rx_pos += in_size;
- } else if (out_size == 1) {
- if (in_size != reg->size) {
- ccprints("ERROR: %s in_size %d != %d", reg->name,
- in_size, reg->size);
- return EC_ERROR_UNKNOWN;
- }
- if (reg->size == 1)
- in[0] = reg->value;
- else if (reg->size == 2) {
- in[0] = reg->value;
- in[1] = reg->value >> 8;
- }
- } else {
- uint16_t value = 0;
-
- if (in_size != 0) {
- ccprints("ERROR: in_size != 0");
- return EC_ERROR_UNKNOWN;
- }
- if (out_size != reg->size + 1) {
- ccprints("ERROR: out_size != %d", reg->size + 1);
- return EC_ERROR_UNKNOWN;
- }
- if (reg->size == 1)
- value = out[1];
- else if (reg->size == 2)
- value = out[1] + (out[2] << 8);
- ccprints("%s TCPCI write %s = 0x%x",
- task_get_name(task_get_current()),
- reg->name, value);
- if (reg->offset == TCPC_REG_ALERT)
- reg->value &= ~value;
- else
- reg->value = value;
- }
- return EC_SUCCESS;
-}
-DECLARE_TEST_I2C_XFER(tcpci_i2c_xfer);
-
-void tcpci_register_dump(void)
-{
- int reg;
- int cc1, cc2;
-
- ccprints("********* TCPCI Register Dump ***********");
- reg = mock_tcpci_get_reg(TCPC_REG_ALERT);
- ccprints("TCPC_REG_ALERT = 0x%08X", reg);
- if (reg) {
- if (reg & BIT(0))
- ccprints("\t0001: CC Status");
- if (reg & BIT(1))
- ccprints("\t0002: Power Status");
- if (reg & BIT(2))
- ccprints("\t0004: Received SOP* Message Status");
- if (reg & BIT(3))
- ccprints("\t0008: Received Hard Reset");
- if (reg & BIT(4))
- ccprints("\t0010: Transmit SOP* Message Failed");
- if (reg & BIT(5))
- ccprints("\t0020: Transmit SOP* Message Discarded");
- if (reg & BIT(6))
- ccprints("\t0040: Transmit SOP* Message Successful");
- if (reg & BIT(7))
- ccprints("\t0080: Vbus Voltage Alarm Hi");
- if (reg & BIT(8))
- ccprints("\t0100: Vbus Voltage Alarm Lo");
- if (reg & BIT(9))
- ccprints("\t0200: Fault");
- if (reg & BIT(10))
- ccprints("\t0400: Rx Buffer Overflow");
- if (reg & BIT(11))
- ccprints("\t0800: Vbus Sink Disconnect Detected");
- if (reg & BIT(12))
- ccprints("\t1000: Beginning SOP* Message Status");
- if (reg & BIT(13))
- ccprints("\t2000: Extended Status");
- if (reg & BIT(14))
- ccprints("\t4000: Alert Extended");
- if (reg & BIT(15))
- ccprints("\t8000: Vendor Defined Alert");
- }
-
- reg = mock_tcpci_get_reg(TCPC_REG_TCPC_CTRL);
- ccprints("TCPC_REG_TCPC_CTRL = 0x%04X", reg);
- if (reg & BIT(0))
- ccprints("\t01: Plug Orientation FLIP");
- if (reg & BIT(1))
- ccprints("\t02: BIST Test Mode");
- if (reg & (BIT(2) | BIT(3))) {
- switch ((reg >> 2) & 3) {
- case 2:
- ccprints("\t08: Enable Clock Stretching");
- break;
- case 3:
- ccprints("\t0C: Enable Clock Stretching if !Alert");
- break;
- }
- }
- if (reg & BIT(4))
- ccprints("\t10: Debug Accessory controlled by TCPM");
- if (reg & BIT(5))
- ccprints("\t20: Watchdog Timer enabled");
- if (reg & BIT(6))
- ccprints("\t40: Looking4Connection Alert enabled");
- if (reg & BIT(7))
- ccprints("\t80: SMBus PEC enabled");
-
- reg = mock_tcpci_get_reg(TCPC_REG_ROLE_CTRL);
- ccprints("TCPC_REG_ROLE_CTRL = 0x%04X", reg);
- cc1 = (reg >> 0) & 3;
- switch (cc1) {
- case 0:
- ccprints("\t00: CC1 == Ra");
- break;
- case 1:
- ccprints("\t01: CC1 == Rp");
- break;
- case 2:
- ccprints("\t02: CC1 == Rd");
- break;
- case 3:
- ccprints("\t03: CC1 == OPEN");
- break;
- }
- cc2 = (reg >> 2) & 3;
- switch (cc2) {
- case 0:
- ccprints("\t00: CC2 == Ra");
- break;
- case 1:
- ccprints("\t04: CC2 == Rp");
- break;
- case 2:
- ccprints("\t08: CC2 == Rd");
- break;
- case 3:
- ccprints("\t0C: CC2 == OPEN");
- break;
- }
- switch ((reg >> 4) & 3) {
- case 0:
- ccprints("\t00: Rp Value == default");
- break;
- case 1:
- ccprints("\t10: Rp Value == 1.5A");
- break;
- case 2:
- ccprints("\t20: Rp Value == 3A");
- break;
- }
- if (reg & BIT(6))
- ccprints("\t40: DRP");
-
- reg = mock_tcpci_get_reg(TCPC_REG_FAULT_CTRL);
- ccprints("TCPC_REG_FAULT_CTRL = 0x%04X", reg);
- if (reg & BIT(0))
- ccprints("\t01: Vconn Over Current Fault");
- if (reg & BIT(1))
- ccprints("\t02: Vbus OVP Fault");
- if (reg & BIT(2))
- ccprints("\t04: Vbus OCP Fault");
- if (reg & BIT(3))
- ccprints("\t08: Vbus Discharge Fault");
- if (reg & BIT(4))
- ccprints("\t10: Force OFF Vbus");
-
- reg = mock_tcpci_get_reg(TCPC_REG_POWER_CTRL);
- ccprints("TCPC_REG_POWER_CTRL = 0x%04X", reg);
- if (reg & BIT(0))
- ccprints("\t01: Enable Vconn");
- if (reg & BIT(1))
- ccprints("\t02: Vconn Power Supported");
- if (reg & BIT(2))
- ccprints("\t04: Force Discharge");
- if (reg & BIT(3))
- ccprints("\t08: Enable Bleed Discharge");
- if (reg & BIT(4))
- ccprints("\t10: Auto Discharge Disconnect");
- if (reg & BIT(5))
- ccprints("\t20: Disable Voltage Alarms");
- if (reg & BIT(6))
- ccprints("\t40: VBUS_VOLTAGE monitor disabled");
- if (reg & BIT(7))
- ccprints("\t80: Fast Role Swap enabled");
-
- reg = mock_tcpci_get_reg(TCPC_REG_CC_STATUS);
- ccprints("TCPC_REG_CC_STATUS = 0x%04X", reg);
- switch ((reg >> 0) & 3) {
- case 0:
- switch (cc1) {
- case 1:
- ccprints("\t00: CC1-Rp SRC.Open");
- break;
- case 2:
- ccprints("\t00: CC1-Rd SNK.Open");
- break;
- }
- break;
- case 1:
- switch (cc1) {
- case 1:
- ccprints("\t01: CC1-Rp SRC.Ra");
- break;
- case 2:
- ccprints("\t01: CC1-Rd SNK.Default");
- break;
- }
- break;
- case 2:
- switch (cc1) {
- case 1:
- ccprints("\t02: CC1-Rp SRC.Rd");
- break;
- case 2:
- ccprints("\t02: CC1-Rd SNK.Power1.5");
- break;
- }
- break;
- case 3:
- switch (cc1) {
- case 2:
- ccprints("\t03: CC1-Rd SNK.Power3.0");
- break;
- }
- break;
- }
- switch ((reg >> 2) & 3) {
- case 0:
- switch (cc2) {
- case 1:
- ccprints("\t00: CC2-Rp SRC.Open");
- break;
- case 2:
- ccprints("\t00: CC2-Rd SNK.Open");
- break;
- }
- break;
- case 1:
- switch (cc2) {
- case 1:
- ccprints("\t04: CC2-Rp SRC.Ra");
- break;
- case 2:
- ccprints("\t04: CC2-Rd SNK.Default");
- break;
- }
- break;
- case 2:
- switch (cc2) {
- case 1:
- ccprints("\t08: CC2-Rp SRC.Rd");
- break;
- case 2:
- ccprints("\t08: CC2-Rd SNK.Power1.5");
- break;
- }
- break;
- case 3:
- switch (cc2) {
- case 2:
- ccprints("\t0C: CC2-Rd SNK.Power3.0");
- break;
- }
- break;
- }
- if (reg & BIT(4))
- ccprints("\t10: Presenting Rd");
- else
- ccprints("\t00: Presenting Rp");
- if (reg & BIT(5))
- ccprints("\t20: Looking4Connection");
-
- reg = mock_tcpci_get_reg(TCPC_REG_POWER_STATUS);
- ccprints("TCPC_REG_POWER_STATUS = 0x%04X", reg);
- if (reg & BIT(0))
- ccprints("\t01: Sinking Vbus");
- if (reg & BIT(1))
- ccprints("\t02: Vconn Present");
- if (reg & BIT(2))
- ccprints("\t04: Vbus Present");
- if (reg & BIT(3))
- ccprints("\t08: Vbus Detect enabled");
- if (reg & BIT(4))
- ccprints("\t10: Sourcing Vbus");
- if (reg & BIT(5))
- ccprints("\t20: Sourcing non-default voltage");
- if (reg & BIT(6))
- ccprints("\t40: TCPC Initialization");
- if (reg & BIT(7))
- ccprints("\t80: Debug Accessory Connected");
-
- reg = mock_tcpci_get_reg(TCPC_REG_FAULT_STATUS);
- ccprints("TCPC_REG_FAULT_STATUS = 0x%04X", reg);
- if (reg & BIT(0))
- ccprints("\t01: I2C Interface Error");
- if (reg & BIT(1))
- ccprints("\t02: Vconn Over Current Fault");
- if (reg & BIT(2))
- ccprints("\t04: Vbus OVP Fault");
- if (reg & BIT(3))
- ccprints("\t08: Vbus OCP Fault");
- if (reg & BIT(4))
- ccprints("\t10: Forced Discharge Failed");
- if (reg & BIT(5))
- ccprints("\t20: Auto Discharge Failed");
- if (reg & BIT(6))
- ccprints("\t40: Force OFF Vbus");
- if (reg & BIT(7))
- ccprints("\t80: TCPCI Registers Reset2Default");
-
- reg = mock_tcpci_get_reg(TCPC_REG_EXT_STATUS);
- ccprints("TCPC_REG_EXT_STATUS = 0x%04X", reg);
- if (reg & BIT(0))
- ccprints("\t01: Vbus is at vSafe0V");
-
- reg = mock_tcpci_get_reg(TCPC_REG_ALERT_EXT);
- ccprints("TCPC_REG_ALERT_EXT = 0x%04X", reg);
- if (reg & BIT(0))
- ccprints("\t01: SNK Fast Role Swap");
- if (reg & BIT(1))
- ccprints("\t02: SRC Fast Role Swap");
- if (reg & BIT(2))
- ccprints("\t04: Timer Expired");
-
- reg = mock_tcpci_get_reg(TCPC_REG_COMMAND);
- ccprints("TCPC_REG_COMMAND = 0x%04X", reg);
- switch (reg) {
- case 0x11:
- ccprints("\t11: WakeI2C");
- break;
- case 0x22:
- ccprints("\t22: DisableVbusDetect");
- break;
- case 0x33:
- ccprints("\t33: EnableVbusDetect");
- break;
- case 0x44:
- ccprints("\t44: DisableSinkVbus");
- break;
- case 0x55:
- ccprints("\t55: SinkVbus");
- break;
- case 0x66:
- ccprints("\t66: DisableSourceVbus");
- break;
- case 0x77:
- ccprints("\t77: SourceVbusDefaultVoltage");
- break;
- case 0x88:
- ccprints("\t88: SourceVbusNondefaultVoltage");
- break;
- case 0x99:
- ccprints("\t99: Looking4Connection");
- break;
- case 0xAA:
- ccprints("\tAA: RxOneMore");
- break;
- case 0xCC:
- ccprints("\tCC: SendFRSwapSignal");
- break;
- case 0xDD:
- ccprints("\tDD: ResetTransmitBuffer");
- break;
- case 0xEE:
- ccprints("\tEE: ResetReceiveBuffer");
- break;
- case 0xFF:
- ccprints("\tFF: I2C Idle");
- break;
- }
-
- reg = mock_tcpci_get_reg(TCPC_REG_MSG_HDR_INFO);
- ccprints("TCPC_REG_MSG_HDR_INFO = 0x%04X", reg);
- if (reg & BIT(0))
- ccprints("\t01: Power Role SRC");
- else
- ccprints("\t00: Power Role SNK");
- switch ((reg >> 1) & 3) {
- case 0:
- ccprints("\t00: PD Revision 1.0");
- break;
- case 1:
- ccprints("\t02: PD Revision 2.0");
- break;
- case 2:
- ccprints("\t04: PD Revision 3.0");
- break;
- }
- if (reg & BIT(3))
- ccprints("\t08: Data Role DFP");
- else
- ccprints("\t00: Data Role UFP");
- if (reg & BIT(4))
- ccprints("\t10: Message originating from Cable Plug");
- else
- ccprints("\t00: Message originating from SRC/SNK/DRP");
-
- reg = mock_tcpci_get_reg(TCPC_REG_RX_BUFFER);
- ccprints("TCPC_REG_RX_BUFFER = 0x%04X", reg);
-
- reg = mock_tcpci_get_reg(TCPC_REG_TRANSMIT);
- ccprints("TCPC_REG_TRANSMIT = 0x%04X", reg);
- ccprints("*****************************************");
-}
diff --git a/common/mock/tcpm_mock.c b/common/mock/tcpm_mock.c
deleted file mode 100644
index 2c212cf8c9..0000000000
--- a/common/mock/tcpm_mock.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2020 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.
- */
-/* Mock for the TCPM interface */
-
-#include "common.h"
-#include "console.h"
-#include "memory.h"
-#include "mock/tcpm_mock.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-struct mock_tcpm_t mock_tcpm[CONFIG_USB_PD_PORT_MAX_COUNT];
-
-/**
- * Gets the next waiting RX message.
- *
- * @param port Type-C port number
- * @param payload Pointer to location to copy payload of PD message
- * @param header The header of PD message
- *
- * @return EC_SUCCESS or error
- */
-int tcpm_dequeue_message(int port, uint32_t *payload, int *header)
-{
- if (!tcpm_has_pending_message(port))
- return EC_ERROR_BUSY;
-
- *header = mock_tcpm[port].mock_header;
- memcpy(payload, mock_tcpm[port].mock_rx_chk_buf,
- sizeof(mock_tcpm[port].mock_rx_chk_buf));
-
- return EC_SUCCESS;
-}
-
-/**
- * Returns true if the tcpm has RX messages waiting to be consumed.
- */
-int tcpm_has_pending_message(int port)
-{
- return mock_tcpm[port].mock_has_pending_message;
-}
-
-/**
- * Resets all mock TCPM ports
- */
-void mock_tcpm_reset(void)
-{
- int port;
-
- for (port = 0 ; port < CONFIG_USB_PD_PORT_MAX_COUNT ; ++port)
- mock_tcpm[port].mock_has_pending_message = 0;
-}
-
-/**
- * Sets up a message to be received, with optional data payload. If cnt==0,
- * then data can be NULL.
- */
-void mock_tcpm_rx_msg(int port, uint16_t header, int cnt, const uint32_t *data)
-{
- mock_tcpm[port].mock_header = header;
- if (cnt > 0) {
- int idx;
-
- for (idx = 0 ; (idx < cnt) && (idx < MOCK_CHK_BUF_SIZE) ; ++idx)
- mock_tcpm[port].mock_rx_chk_buf[idx] = data[idx];
- }
- mock_tcpm[port].mock_has_pending_message = 1;
-}
diff --git a/common/mock/timer_mock.c b/common/mock/timer_mock.c
deleted file mode 100644
index dc83aa24d5..0000000000
--- a/common/mock/timer_mock.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 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.
- */
-
-#include "mock/timer_mock.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-static timestamp_t now;
-
-void set_time(timestamp_t now_)
-{
- now = now_;
-}
-
-timestamp_t get_time(void)
-{
- return now;
-};
diff --git a/common/mock/usb_mux_mock.c b/common/mock/usb_mux_mock.c
deleted file mode 100644
index f2db5cf8bd..0000000000
--- a/common/mock/usb_mux_mock.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright 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.
- */
-/* Mock USB Type-C mux */
-
-#include "common.h"
-#include "console.h"
-#include "usb_mux.h"
-#include "mock/usb_mux_mock.h"
-#include "memory.h"
-
-#ifndef CONFIG_COMMON_RUNTIME
-#define cprints(format, args...)
-#endif
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-/* Public API for controlling/inspecting this mock */
-struct mock_usb_mux_ctrl mock_usb_mux;
-
-void mock_usb_mux_reset(void)
-{
- memset(&mock_usb_mux, 0, sizeof(mock_usb_mux));
-}
-
-static int mock_init(const struct usb_mux *me)
-{
- return EC_SUCCESS;
-}
-
-static int mock_set(const struct usb_mux *me, mux_state_t mux_state,
- bool *ack_required)
-{
- /* Mock does not use host command ACKs */
- *ack_required = false;
-
- mock_usb_mux.state = mux_state;
- ++mock_usb_mux.num_set_calls;
- ccprints("[MUX] Set to 0x%02x", mux_state);
-
- return EC_SUCCESS;
-}
-
-int mock_get(const struct usb_mux *me, mux_state_t *mux_state)
-{
- *mux_state = mock_usb_mux.state;
- return EC_SUCCESS;
-}
-
-static int mock_enter_low_power_mode(const struct usb_mux *me)
-{
- return EC_SUCCESS;
-}
-
-const struct usb_mux_driver mock_usb_mux_driver = {
- .init = &mock_init,
- .set = &mock_set,
- .get = &mock_get,
- .enter_low_power_mode = &mock_enter_low_power_mode,
-};
diff --git a/common/mock/usb_pd_dpm_mock.c b/common/mock/usb_pd_dpm_mock.c
deleted file mode 100644
index 8b6fbaa30e..0000000000
--- a/common/mock/usb_pd_dpm_mock.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2020 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.
- */
-
-/*
- * Mock of Device Policy Manager implementation
- * Refer to USB PD 3.0 spec, version 2.0, sections 8.2 and 8.3
- */
-
-#include "usb_pd.h"
-#include "mock/usb_pd_dpm_mock.h"
-#include "memory.h"
-#include "usb_pd_tcpm.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-struct mock_dpm_port_t dpm[CONFIG_USB_PD_PORT_MAX_COUNT];
-
-void mock_dpm_reset(void)
-{
- /* Reset all values to 0. */
- memset(dpm, 0, sizeof(dpm));
-}
-
-void dpm_init(int port)
-{
- dpm[port].mode_entry_done = false;
- dpm[port].mode_exit_request = false;
-}
-
-void dpm_vdm_acked(int port, enum tcpci_msg_type type, int vdo_count,
- uint32_t *vdm)
-{
-}
-
-void dpm_vdm_naked(int port, enum tcpci_msg_type type, uint16_t svid,
- uint8_t vdm_cmd)
-{
-}
-
-void dpm_set_mode_exit_request(int port)
-{
-}
-
-void dpm_run(int port)
-{
-}
-
-void dpm_evaluate_sink_fixed_pdo(int port, uint32_t vsafe5v_pdo)
-{
-}
-
-void dpm_add_non_pd_sink(int port)
-{
-}
-
-void dpm_remove_sink(int port)
-{
-}
-
-void dpm_remove_source(int port)
-{
-}
-
-int dpm_get_source_pdo(const uint32_t **src_pdo, const int port)
-{
- *src_pdo = pd_src_pdo;
- return pd_src_pdo_cnt;
-}
diff --git a/common/mock/usb_pe_sm_mock.c b/common/mock/usb_pe_sm_mock.c
deleted file mode 100644
index 8d1a25324b..0000000000
--- a/common/mock/usb_pe_sm_mock.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright 2020 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.
- */
-
-/* Mock USB PE state machine */
-
-#include "common.h"
-#include "console.h"
-#include "usb_pd.h"
-#include "usb_pe_sm.h"
-#include "mock/usb_pe_sm_mock.h"
-#include "memory.h"
-#include "usb_pd_tcpm.h"
-
-#ifndef CONFIG_COMMON_RUNTIME
-#define cprints(format, args...)
-#endif
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-struct mock_pe_port_t mock_pe_port[CONFIG_USB_PD_PORT_MAX_COUNT];
-
-
-/**
- * Resets all mock PE ports to initial values
- */
-void mock_pe_port_reset(void)
-{
- int port;
-
- for (port = 0 ; port < CONFIG_USB_PD_PORT_MAX_COUNT ; ++port) {
- mock_pe_port[port].mock_pe_error = -1;
- /* These mock variable only get set to 1 by various functions,
- * so initialize them to 0. Tests can verify they are still 0
- * if that's part of the pass criteria.
- */
- mock_pe_port[port].mock_pe_message_received = 0;
- mock_pe_port[port].mock_pe_message_sent = 0;
- mock_pe_port[port].mock_pe_message_discarded = 0;
- mock_pe_port[port].mock_got_soft_reset = 0;
- mock_pe_port[port].mock_pe_got_hard_reset = 0;
- mock_pe_port[port].mock_pe_hard_reset_sent = 0;
- }
-}
-
-void pe_report_error(int port, enum pe_error e, enum tcpci_msg_type type)
-{
- mock_pe_port[port].mock_pe_error = e;
- mock_pe_port[port].sop = type;
-}
-
-void pe_report_discard(int port)
-{
- mock_pe_port[port].mock_pe_message_discarded = 1;
-}
-
-void pe_got_hard_reset(int port)
-{
- mock_pe_port[port].mock_pe_got_hard_reset = 1;
-}
-
-void pe_message_received(int port)
-{
- mock_pe_port[port].mock_pe_message_received = 1;
-}
-
-void pe_message_sent(int port)
-{
- mock_pe_port[port].mock_pe_message_sent = 1;
-}
-
-void pe_hard_reset_sent(int port)
-{
- mock_pe_port[port].mock_pe_hard_reset_sent = 1;
-}
-
-void pe_got_soft_reset(int port)
-{
- mock_pe_port[port].mock_got_soft_reset = 1;
-}
-
-bool pe_in_frs_mode(int port)
-{
- return false;
-}
-
-bool pe_in_local_ams(int port)
-{
- /* We will probably want to change this in the future */
- return false;
-}
-
-const uint32_t * const pd_get_src_caps(int port)
-{
- return NULL;
-}
-
-uint8_t pd_get_src_cap_cnt(int port)
-{
- return 0;
-}
-
-void pd_set_src_caps(int port, int cnt, uint32_t *src_caps)
-{
-}
-
-void pd_request_power_swap(int port)
-{}
-
-int pd_get_rev(int port, enum tcpci_msg_type type)
-{
- return IS_ENABLED(CONFIG_USB_PD_REV30) ? PD_REV30 : PD_REV20;
-}
-
-void pe_invalidate_explicit_contract(int port)
-{
-}
diff --git a/common/mock/usb_prl_mock.c b/common/mock/usb_prl_mock.c
deleted file mode 100644
index d5f4781829..0000000000
--- a/common/mock/usb_prl_mock.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/* Copyright 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.
- *
- * Mock Protocol Layer module.
- */
-#include <string.h>
-#include "common.h"
-#include "usb_emsg.h"
-#include "usb_pe_sm.h"
-#include "usb_prl_sm.h"
-#include "mock/usb_prl_mock.h"
-#include "task.h"
-#include "test_util.h"
-#include "timer.h"
-#include "usb_pd_tcpm.h"
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-/* Defaults should all be 0 values. */
-struct extended_msg rx_emsg[CONFIG_USB_PD_PORT_MAX_COUNT];
-struct extended_msg tx_emsg[CONFIG_USB_PD_PORT_MAX_COUNT];
-
-struct mock_prl_port_t {
- enum pd_ctrl_msg_type last_ctrl_msg;
- enum pd_data_msg_type last_data_msg;
- enum tcpci_msg_type last_tx_type;
- bool message_sent;
- bool message_received;
- enum pe_error error;
- enum tcpci_msg_type error_tx_type;
-};
-
-struct mock_prl_port_t mock_prl_port[CONFIG_USB_PD_PORT_MAX_COUNT];
-
-void mock_prl_reset(void)
-{
- int port;
-
- /* Reset all values to 0. */
- memset(rx_emsg, 0, sizeof(rx_emsg));
- memset(tx_emsg, 0, sizeof(tx_emsg));
-
- memset(mock_prl_port, 0, sizeof(mock_prl_port));
-
- for (port = 0 ; port < CONFIG_USB_PD_PORT_MAX_COUNT ; ++port) {
- mock_prl_port[port].last_tx_type = TCPCI_MSG_INVALID;
- mock_prl_port[port].error_tx_type = TCPCI_MSG_INVALID;
- }
-}
-
-void prl_end_ams(int port)
-{}
-
-void prl_execute_hard_reset(int port)
-{
- mock_prl_port[port].last_ctrl_msg = 0;
- mock_prl_port[port].last_data_msg = 0;
- mock_prl_port[port].last_tx_type = TCPCI_MSG_TX_HARD_RESET;
-}
-
-enum pd_rev_type prl_get_rev(int port, enum tcpci_msg_type partner)
-{
- return PD_REV30;
-}
-
-void prl_hard_reset_complete(int port)
-{}
-
-int prl_is_running(int port)
-{
- return 1;
-}
-
-__overridable bool prl_is_busy(int port)
-{
- return false;
-}
-
-void prl_reset_soft(int port)
-{}
-
-void prl_send_ctrl_msg(int port, enum tcpci_msg_type type,
- enum pd_ctrl_msg_type msg)
-{
- mock_prl_port[port].last_ctrl_msg = msg;
- mock_prl_port[port].last_data_msg = 0;
- mock_prl_port[port].last_tx_type = type;
-}
-
-void prl_send_data_msg(int port, enum tcpci_msg_type type,
- enum pd_data_msg_type msg)
-{
- mock_prl_port[port].last_data_msg = msg;
- mock_prl_port[port].last_ctrl_msg = 0;
- mock_prl_port[port].last_tx_type = type;
-}
-
-void prl_send_ext_data_msg(int port, enum tcpci_msg_type type,
- enum pd_ext_msg_type msg)
-{}
-
-void prl_set_rev(int port, enum tcpci_msg_type partner,
- enum pd_rev_type rev)
-{}
-
-
-int mock_prl_wait_for_tx_msg(int port,
- enum tcpci_msg_type tx_type,
- enum pd_ctrl_msg_type ctrl_msg,
- enum pd_data_msg_type data_msg,
- int timeout)
-{
- uint64_t end_time = get_time().val + timeout;
-
- while (get_time().val < end_time) {
- if (mock_prl_port[port].last_tx_type != TCPCI_MSG_INVALID) {
- TEST_EQ(mock_prl_port[port].last_tx_type,
- tx_type, "%d");
- TEST_EQ(mock_prl_port[port].last_ctrl_msg,
- ctrl_msg, "%d");
- TEST_EQ(mock_prl_port[port].last_data_msg,
- data_msg, "%d");
- mock_prl_clear_last_sent_msg(port);
- return EC_SUCCESS;
- }
- task_wait_event(5 * MSEC);
- }
- /* A message of the expected type should have been sent by end_time. */
- TEST_ASSERT(0);
- return EC_ERROR_UNKNOWN;
-}
-
-enum pd_ctrl_msg_type mock_prl_get_last_sent_ctrl_msg(int port)
-{
- enum pd_ctrl_msg_type last = mock_prl_port[port].last_ctrl_msg;
-
- mock_prl_clear_last_sent_msg(port);
- return last;
-}
-
-enum pd_data_msg_type mock_prl_get_last_sent_data_msg(int port)
-{
- enum pd_data_msg_type last = mock_prl_port[port].last_data_msg;
-
- mock_prl_clear_last_sent_msg(port);
- return last;
-}
-
-void mock_prl_clear_last_sent_msg(int port)
-{
- mock_prl_port[port].last_data_msg = 0;
- mock_prl_port[port].last_ctrl_msg = 0;
- mock_prl_port[port].last_tx_type = TCPCI_MSG_INVALID;
-}
-
-timestamp_t prl_get_tcpc_tx_success_ts(int port)
-{
- return get_time();
-}
-void mock_prl_message_sent(int port)
-{
- mock_prl_port[port].message_sent = 1;
-}
-
-void mock_prl_message_received(int port)
-{
- mock_prl_port[port].message_received = 1;
-}
-
-void mock_prl_report_error(int port, enum pe_error e,
- enum tcpci_msg_type tx_type)
-{
- mock_prl_port[port].error = e;
- mock_prl_port[port].error_tx_type = tx_type;
-}
-
-void prl_run(int port, int evt, int en)
-{
- if (mock_prl_port[port].message_sent) {
- ccprints("message_sent");
- pe_message_sent(port);
- mock_prl_port[port].message_sent = 0;
- }
- if (mock_prl_port[port].message_received) {
- ccprints("message_received");
- pe_message_received(port);
- mock_prl_port[port].message_received = 0;
- }
- if (mock_prl_port[port].error_tx_type != TCPCI_MSG_INVALID) {
- ccprints("pe_error %d", mock_prl_port[port].error);
- pe_report_error(port,
- mock_prl_port[port].error,
- mock_prl_port[port].error_tx_type);
- mock_prl_port[port].error = 0;
- mock_prl_port[port].error_tx_type = TCPCI_MSG_INVALID;
- }
-}
diff --git a/common/mock/usb_tc_sm_mock.c b/common/mock/usb_tc_sm_mock.c
deleted file mode 100644
index d55def12e2..0000000000
--- a/common/mock/usb_tc_sm_mock.c
+++ /dev/null
@@ -1,214 +0,0 @@
-/* Copyright 2020 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.
- */
-
-/* Mock USB TC state machine */
-
-#include "common.h"
-#include "console.h"
-#include "ec_commands.h"
-#include "usb_tc_sm.h"
-#include "mock/usb_tc_sm_mock.h"
-#include "memory.h"
-
-#ifndef CONFIG_COMMON_RUNTIME
-#define cprints(format, args...)
-#endif
-
-#ifndef TEST_BUILD
-#error "Mocks should only be in the test build."
-#endif
-
-struct mock_tc_port_t mock_tc_port[CONFIG_USB_PD_PORT_MAX_COUNT];
-
-void mock_tc_port_reset(void)
-{
- int port;
-
- for (port = 0 ; port < CONFIG_USB_PD_PORT_MAX_COUNT ; ++port) {
- mock_tc_port[port].rev = PD_REV30;
- mock_tc_port[port].pd_enable = 0;
- mock_tc_port[port].msg_tx_id = 0;
- mock_tc_port[port].msg_rx_id = 0;
- mock_tc_port[port].sop = TCPCI_MSG_INVALID;
- mock_tc_port[port].lcl_rp = TYPEC_RP_RESERVED;
- mock_tc_port[port].attached_snk = 0;
- mock_tc_port[port].attached_src = 0;
- mock_tc_port[port].vconn_src = false;
- mock_tc_port[port].data_role = PD_ROLE_UFP;
- mock_tc_port[port].power_role = PD_ROLE_SINK;
- }
-}
-
-enum pd_cable_plug tc_get_cable_plug(int port)
-{
- return PD_PLUG_FROM_DFP_UFP;
-}
-
-uint8_t tc_get_pd_enabled(int port)
-{
- return mock_tc_port[port].pd_enable;
-}
-
-void typec_select_src_collision_rp(int port, enum tcpc_rp_value rp)
-{
- mock_tc_port[port].lcl_rp = rp;
-}
-
-void typec_select_src_current_limit_rp(int port, enum tcpc_rp_value rp)
-{
-}
-
-int tc_is_attached_src(int port)
-{
- return mock_tc_port[port].attached_src;
-}
-
-int tc_is_attached_snk(int port)
-{
- return mock_tc_port[port].attached_snk;
-}
-
-void tc_prs_snk_src_assert_rp(int port)
-{
- mock_tc_port[port].attached_snk = 0;
- mock_tc_port[port].attached_src = 1;
-}
-
-void tc_prs_src_snk_assert_rd(int port)
-{
- mock_tc_port[port].attached_snk = 1;
- mock_tc_port[port].attached_src = 0;
-}
-
-int typec_update_cc(int port)
-{
- return EC_SUCCESS;
-}
-
-int tc_check_vconn_swap(int port)
-{
- return 0;
-}
-
-void tc_ctvpd_detected(int port)
-{}
-
-int tc_is_vconn_src(int port)
-{
- return mock_tc_port[port].vconn_src;
-}
-
-void tc_hard_reset_request(int port)
-{
- mock_tc_port_reset();
-}
-
-void tc_partner_dr_data(int port, int en)
-{}
-
-void tc_partner_dr_power(int port, int en)
-{}
-
-void tc_partner_unconstrainedpower(int port, int en)
-{}
-
-void tc_partner_usb_comm(int port, int en)
-{}
-
-void tc_pd_connection(int port, int en)
-{}
-
-void tc_pr_swap_complete(int port, bool success)
-{}
-
-void tc_src_power_off(int port)
-{}
-
-void tc_start_error_recovery(int port)
-{}
-
-void tc_snk_power_off(int port)
-{}
-
-void tc_request_power_swap(int port)
-{
-}
-
-enum pd_dual_role_states pd_get_dual_role(int port)
-{
- return PD_DRP_TOGGLE_ON;
-}
-
-enum pd_data_role pd_get_data_role(int port)
-{
- return mock_tc_port[port].data_role;
-}
-
-enum pd_power_role pd_get_power_role(int port)
-{
- return mock_tc_port[port].power_role;
-}
-
-enum pd_cc_states pd_get_task_cc_state(int port)
-{
- return PD_CC_NONE;
-}
-
-int pd_is_connected(int port)
-{
- return 1;
-}
-
-bool pd_is_disconnected(int port)
-{
- return false;
-}
-
-bool pd_get_partner_usb_comm_capable(int port)
-{
- return true;
-}
-
-bool pd_get_partner_dual_role_power(int port)
-{
- return true;
-}
-
-bool pd_capable(int port)
-{
- return true;
-}
-
-bool pd_waiting_on_partner_src_caps(int port)
-{
- return false;
-}
-
-void pd_set_suspend(int port, int suspend)
-{
-}
-
-void pd_set_error_recovery(int port)
-{
-}
-
-enum tcpc_cc_polarity pd_get_polarity(int port)
-{
- return POLARITY_CC1;
-}
-
-void pd_request_data_swap(int port)
-{}
-
-void pd_request_vconn_swap_off(int port)
-{}
-
-void pd_request_vconn_swap_on(int port)
-{}
-
-bool pd_alt_mode_capable(int port)
-{
- return false;
-}