summaryrefslogtreecommitdiff
path: root/test/usb_tcpmv2_td_pd_src3_e8.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/usb_tcpmv2_td_pd_src3_e8.c')
-rw-r--r--test/usb_tcpmv2_td_pd_src3_e8.c251
1 files changed, 0 insertions, 251 deletions
diff --git a/test/usb_tcpmv2_td_pd_src3_e8.c b/test/usb_tcpmv2_td_pd_src3_e8.c
deleted file mode 100644
index dee52f1753..0000000000
--- a/test/usb_tcpmv2_td_pd_src3_e8.c
+++ /dev/null
@@ -1,251 +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 "mock/tcpci_i2c_mock.h"
-#include "task.h"
-#include "driver/tcpm/tcpci.h"
-#include "test_util.h"
-#include "timer.h"
-#include "usb_tcpmv2_compliance.h"
-#include "usb_tc_sm.h"
-
-#define BUFFER_SIZE 100
-
-#define EXT_MSG_CHUNKED BIT(15)
-#define EXT_MSG_DATA_SIZE_1 1
-
-#define HEADER_BYTE_OFFSET 1
-#define HEADER_NUM_BYTES 2
-
-#define SCEDB_NUM_BATTERY_OFFSET 22
-#define SCEDB_NUM_BYTES 24
-
-#define BSDO_NUM_BYTES 4
-#define BSDO_INV_BATTERY_REF(bsdo) (((bsdo) >> 8) & 1)
-#define BSDO_BATTERY_PRESENT(bsdo) (((bsdo) >> 9) & 1)
-#define BSDO_BATTERY_CHRG_STS(bsdo) (((bsdo) >> 10) & 3)
-#define BSDO_BATTERY_INFO(bsdo) (((bsdo) >> 8) & 0xFF)
-
-static int number_of_fixed_batteries(void)
-{
- return CONFIG_NUM_FIXED_BATTERIES;
-}
-
-static int number_of_swappable_batteries(void)
-{
- return 0;
-}
-
-/*****************************************************************************
- * TD.PD.SRC3.E8 Battery Status Field Checks
- *
- * Description:
- * As Consumer (UFP), the Tester sends a Get_Battery_Status message to
- * the UUT, verifies the UUT respond with a Battery_Status or
- * Not_Supported message. If a Battery_Status message is received, the
- * Tester verifies correct field values.
- */
-int test_td_pd_src3_e8(void)
-{
- int msg_len;
- uint8_t data[BUFFER_SIZE];
- uint32_t ext_msg;
- int num_fixed_batteries;
- int num_swappable_battery_slots;
-
- int ref;
- int found_index;
- struct possible_tx possible[2];
-
- TEST_EQ(tcpci_startup(), EC_SUCCESS, "%d");
-
- /*
- * a) Run PROC.PD.E1 Bring-up according to the UUT role.
- */
- TEST_EQ(proc_pd_e1(PD_ROLE_DFP, INITIAL_AND_ALREADY_ATTACHED),
- EC_SUCCESS, "%d");
-
- /*
- * b) The Tester waits until it can start an AMS (Run PROC.PD.E3) and
- * sends a Get_Source_Cap_Extended message to the UUT.
- */
- TEST_EQ(proc_pd_e3(), EC_SUCCESS, "%d");
-
- partner_send_msg(TCPCI_MSG_SOP, PD_CTRL_GET_SOURCE_CAP_EXT, 0, 0, NULL);
-
- /*
- * c) If a Source_Capabilities_Extended message is received, the
- * Tester record the Number of Batteries/Battery Slots field.
- */
- possible[0].tx_type = TCPCI_MSG_SOP;
- possible[0].ctrl_msg = PD_CTRL_NOT_SUPPORTED;
- possible[0].data_msg = 0;
-
- possible[1].tx_type = TCPCI_MSG_SOP;
- possible[1].ctrl_msg = 0;
- possible[1].data_msg = PD_EXT_SOURCE_CAP;
-
- TEST_EQ(verify_tcpci_possible_tx(possible,
- 2,
- &found_index,
- data,
- sizeof(data),
- &msg_len,
- 0),
- EC_SUCCESS, "%d");
- if (found_index == 1) {
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
- task_wait_event(10 * MSEC);
-
- TEST_EQ(msg_len, HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES +
- SCEDB_NUM_BYTES,
- "%d");
-
- num_fixed_batteries =
- data[HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES +
- SCEDB_NUM_BATTERY_OFFSET] &
- 0x0F;
- num_swappable_battery_slots =
- (data[HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES +
- SCEDB_NUM_BATTERY_OFFSET] >> 4) &
- 0x0F;
- }
- /*
- * If a Not_Supported message is received, the Tester reads the
- * Number of Batteries/Battery Slots field (combine
- * Num_Fixed_Batteries and Num_Swappable_Battery_Slots) from the
- * VIF.
- */
- else {
- TEST_EQ(found_index, 0, "%d");
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
- task_wait_event(10 * MSEC);
-
- num_fixed_batteries = number_of_fixed_batteries();
- num_swappable_battery_slots = number_of_swappable_batteries();
- }
-
- /*
- * d) The Tester waits until it can start an AMS (Run PROC.PD.E3) and
- * sends a Get_Battery_Status message to the UUT, with Battery
- * Status Ref set to 0 (step g includes doing d-f with Battery
- * Status Ref set to 1 - 7).
- */
- for (ref = 0; ref <= 7; ++ref) {
- uint16_t header;
- uint32_t bsdo;
-
- ext_msg = EXT_MSG_CHUNKED | EXT_MSG_DATA_SIZE_1 |
- (ref << 16);
- partner_send_msg(TCPCI_MSG_SOP, PD_EXT_GET_BATTERY_STATUS, 1, 1,
- &ext_msg);
-
- /*
- * e) If a Battery_Status message is received, the Tester
- * verifies:
- */
- TEST_EQ(verify_tcpci_tx_with_data(TCPCI_MSG_SOP,
- PD_DATA_BATTERY_STATUS,
- data,
- sizeof(data),
- &msg_len,
- 0),
- EC_SUCCESS, "%d");
- mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
- task_wait_event(10 * MSEC);
- TEST_EQ(msg_len, HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES +
- BSDO_NUM_BYTES,
- "%d");
-
- /*
- * 1. Number of Data Objects field = 001b
- */
- header = UINT16_FROM_BYTE_ARRAY_LE(data, HEADER_BYTE_OFFSET);
- TEST_EQ(PD_HEADER_CNT(header), 1, "%d");
-
- /*
- * 2. Port Power Role field = 1b (Source)
- */
- TEST_EQ(PD_HEADER_PROLE(header), 1, "%d");
-
- /*
- * 3. Specification Revision field = 10b (Rev 3.0)
- */
- TEST_EQ(PD_HEADER_REV(header), PD_REV30, "%d");
-
- /*
- * 4. Port Data Role field = 1b (DFP)
- */
- TEST_EQ(PD_HEADER_DROLE(header), PD_ROLE_DFP, "%d");
-
- /*
- * 5. Extended = 0b
- */
- TEST_EQ(PD_HEADER_EXT(header), 0, "%d");
-
- /*
- * 6. Invalid Battery Reference field (Bit 0) of the
- * Battery Info field in the BSDO matches with the
- * recorded Number of Batteries/Battery Slots field
- * 7. If Battery Status Ref referred to a fixed battery
- * and Invalid Battery Reference field is 0, the Battery
- * is present field (Bit 1) shall be 1
- * 8. If Invalid Battery Reference field is 1, Battery is
- * present field shall be 0
- */
- bsdo = UINT32_FROM_BYTE_ARRAY_LE(data, HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES);
-
- /* FIXED BATTERY */
- if (ref < 4) {
- if (ref < num_fixed_batteries) {
- TEST_EQ(BSDO_INV_BATTERY_REF(bsdo),
- 0, "%d");
- TEST_EQ(BSDO_BATTERY_PRESENT(bsdo),
- 1, "%d");
- } else {
- TEST_EQ(BSDO_INV_BATTERY_REF(bsdo),
- 1, "%d");
- TEST_EQ(BSDO_BATTERY_PRESENT(bsdo),
- 0, "%d");
- }
- }
- /* BATTERY SLOT */
- else {
- if ((ref - 4) < num_swappable_battery_slots) {
- TEST_EQ(BSDO_INV_BATTERY_REF(bsdo),
- 0, "%d");
- } else {
- TEST_EQ(BSDO_INV_BATTERY_REF(bsdo),
- 1, "%d");
- TEST_EQ(BSDO_BATTERY_PRESENT(bsdo),
- 0, "%d");
- }
- }
-
- /*
- * 9. If Battery is present, Battery charging status
- * (Bits 3..2) of Battery Info field is not 11b
- * 10. If Battery is not present, Bits 3..2 of Battery Info
- * field is 00b
- * 11. Bits 7..4 of Battery Info field are 0
- * 12. Bits 7..0 of the BSDO are 0
- */
- if (BSDO_BATTERY_PRESENT(bsdo))
- TEST_NE(BSDO_BATTERY_CHRG_STS(bsdo), 3, "%d");
- else
- TEST_EQ(BSDO_BATTERY_CHRG_STS(bsdo), 0, "%d");
-
- TEST_EQ(BSDO_BATTERY_INFO(bsdo) & GENMASK(7, 4), 0, "%d");
- TEST_EQ(bsdo & GENMASK(7, 0), 0, "%d");
- }
-
- return EC_SUCCESS;
-}