summaryrefslogtreecommitdiff
path: root/util/ectool.cc
diff options
context:
space:
mode:
authorYH Lin <yueherngl@chromium.org>2022-12-03 00:17:55 +0000
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-12-05 17:43:18 +0000
commitdd732876495ed4942d00b9f9ca8dd3b01bad7120 (patch)
treebdff671e5ad3e71e30ab56f4f084f34a2fd72e28 /util/ectool.cc
parent184d13e77614be3be5374d3fef9d1edf66ec8687 (diff)
downloadchrome-ec-factory-brya-14909.124.B-main.tar.gz
Revert "Merge remote-tracking branch cros/main into factory-brya-14909.124.B-main"factory-brya-14909.124.B-main
This reverts commit 184d13e77614be3be5374d3fef9d1edf66ec8687. Reason for revert: broken build due to ec-utils. Original change's description: > Merge remote-tracking branch cros/main into factory-brya-14909.124.B-main > > Generated by: util/update_release_branch.py --baseboard brya --relevant_paths_file > baseboard/brya/relevant-paths.txt factory-brya-14909.124.B-main > > Relevant changes: > > git log --oneline 19d4d68ffa..aa40b859b3 -- baseboard/brya board/agah > board/anahera board/banshee board/brya board/crota board/felwinter > board/gimble board/kano board/mithrax board/osiris board/primus > board/redrix board/taeko board/taniks board/vell board/volmar > driver/bc12/pi3usb9201_public.* driver/charger/bq25710.* > driver/ppc/nx20p348x.* driver/ppc/syv682x_public.* > driver/retimer/bb_retimer_public.* driver/tcpm/nct38xx.* > driver/tcpm/ps8xxx_public.* driver/tcpm/tcpci.* include/power/alderlake* > include/intel_x86.h power/alderlake* power/intel_x86.c > util/getversion.sh > > e6da633c38 driver: Sort header files > 234a87ae2d tcpci: Add FRS enable to driver structure > a56be59ccd tcpm_header: add test for tcpm_dump_registers > 57b3256963 Rename CONFIG_CHARGER_INPUT_CURRENT to _CHARGER_DEFAULT_CURRENT_LIMIT > e420c8ff9a marasov: Modify TypeC and TypeA configuration. > 43b53e0045 Add default implementation of board_set_charge_limit > b75dc90677 Add CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT > f1b563c350 baseboard: Sort header files > 7d01b1e58d driver/retimer/ps8818.h: Add I2C ADDR FLAGS 0x30, 0x58, 0x70 > ec31407993 Add CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT > 8f89f69a5b crota: disable lid angle sensor for clamshell > > BRANCH=None > BUG=b:260630630 b:163093572 b:259002141 b:255184961 b:259354679 > BUG=b:247100970 b:254328661 > TEST=`emerge-brya chromeos-ec` > > Force-Relevant-Builds: all > Change-Id: I0ecfa0e6af68631283c7a9e8f1afb9d827176c62 > Signed-off-by: YH Lin <yueherngl@google.com> Bug: b:260630630 b:163093572 b:259002141 b:255184961 b:259354679 Bug: b:247100970 b:254328661 Change-Id: Ia14942d1bd6a502062399d77cb59d1f4b549b2c9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4077247 Auto-Submit: YH Lin <yueherngl@chromium.org> Tested-by: YH Lin <yueherngl@chromium.org> Reviewed-by: Boris Mittelberg <bmbm@google.com> Commit-Queue: YH Lin <yueherngl@chromium.org>
Diffstat (limited to 'util/ectool.cc')
-rw-r--r--util/ectool.cc114
1 files changed, 30 insertions, 84 deletions
diff --git a/util/ectool.cc b/util/ectool.cc
index fd27105d1f..61c0e85301 100644
--- a/util/ectool.cc
+++ b/util/ectool.cc
@@ -33,11 +33,8 @@
#include "lock/gec_lock.h"
#include "misc_util.h"
#include "panic.h"
-#include "tablet_mode.h"
#include "usb_pd.h"
-#include <libec/add_entropy_command.h>
-
/* Maximum flash size (16 MB, conservative) */
#define MAX_FLASH_SIZE 0x1000000
@@ -316,8 +313,6 @@ const char help_str[] =
" Display system info.\n"
" switches\n"
" Prints current EC switch positions\n"
- " tabletmode [on | off | reset]\n"
- " Manually force tablet mode to on, off or reset.\n"
" temps <sensorid>\n"
" Print temperature and temperature ratio between fan_off and\n"
" fan_max values, which could be a fan speed if it's controlled\n"
@@ -569,24 +564,39 @@ int cmd_adc_read(int argc, char *argv[])
int cmd_add_entropy(int argc, char *argv[])
{
- bool reset = false;
+ struct ec_params_rollback_add_entropy p;
+ int rv;
+ int tries = 100; /* Wait for 10 seconds at most */
+
if (argc >= 2 && !strcmp(argv[1], "reset"))
- reset = true;
+ p.action = ADD_ENTROPY_RESET_ASYNC;
+ else
+ p.action = ADD_ENTROPY_ASYNC;
- ec::AddEntropyCommand add_entropy_command(reset);
- if (!add_entropy_command.Run(comm_get_fd())) {
- fprintf(stderr, "Failed to run addentropy command\n");
- return -1;
- }
+ rv = ec_command(EC_CMD_ADD_ENTROPY, 0, &p, sizeof(p), NULL, 0);
- int rv = add_entropy_command.Result();
- if (rv != EC_RES_SUCCESS) {
- rv = -EECRESULT - add_entropy_command.Result();
- fprintf(stderr, "Failed to add entropy: %d\n", rv);
- return rv;
+ if (rv != EC_RES_SUCCESS)
+ goto out;
+
+ while (tries--) {
+ usleep(100000);
+
+ p.action = ADD_ENTROPY_GET_RESULT;
+ rv = ec_command(EC_CMD_ADD_ENTROPY, 0, &p, sizeof(p), NULL, 0);
+
+ if (rv == EC_RES_SUCCESS) {
+ printf("Entropy added successfully\n");
+ return EC_RES_SUCCESS;
+ }
+
+ /* Abort if EC returns an error other than EC_RES_BUSY. */
+ if (rv <= -EECRESULT && rv != -EECRESULT - EC_RES_BUSY)
+ goto out;
}
- printf("Entropy added successfully\n");
+ rv = -EECRESULT - EC_RES_TIMEOUT;
+out:
+ fprintf(stderr, "Failed to add entropy: %d\n", rv);
return rv;
}
@@ -874,7 +884,7 @@ int cmd_test(int argc, char *argv[])
int cmd_s5(int argc, char *argv[])
{
struct ec_params_get_set_value p;
- struct ec_response_get_set_value r;
+ struct ec_params_get_set_value r;
int rv, param;
p.flags = 0;
@@ -7261,37 +7271,6 @@ int cmd_switches(int argc, char *argv[])
return 0;
}
-int cmd_tabletmode(int argc, char *argv[])
-{
- struct ec_params_set_tablet_mode p;
-
- if (argc != 2)
- return EC_ERROR_PARAM_COUNT;
-
- memset(&p, 0, sizeof(p));
- if (argv[1][0] == 'o' && argv[1][1] == 'n') {
- p.tablet_mode = TABLET_MODE_FORCE_TABLET;
- } else if (argv[1][0] == 'o' && argv[1][1] == 'f') {
- p.tablet_mode = TABLET_MODE_FORCE_CLAMSHELL;
- } else if (argv[1][0] == 'r') {
- // Match tablet mode to the current HW orientation.
- p.tablet_mode = TABLET_MODE_DEFAULT;
- } else {
- return EC_ERROR_PARAM1;
- }
-
- int rv = ec_command(EC_CMD_SET_TABLET_MODE, 0, &p, sizeof(p), NULL, 0);
- rv = (rv < 0 ? rv : 0);
-
- if (rv < 0) {
- fprintf(stderr, "Failed to set tablet mode, rv=%d\n", rv);
- } else {
- printf("\n");
- printf("SUCCESS. The tablet mode has been set.\n");
- }
- return rv;
-}
-
int cmd_wireless(int argc, char *argv[])
{
char *e;
@@ -10170,10 +10149,7 @@ int cmd_typec_control(int argc, char *argv[])
" <mux_mode> is one of: dp, dock, usb, tbt,\n"
" usb4, none, safe\n"
" 5: Enable bist share mode\n"
- " args: <0: DISABLE, 1: ENABLE>\n"
- " 6: Send VDM REQ\n"
- " args: <tx_type vdm_hdr [vdo...]>\n"
- " <tx_type> is 0 - SOP, 1 - SOP', 2 - SOP''\n",
+ " args: <0: DISABLE, 1: ENABLE>\n",
argv[0]);
return -1;
}
@@ -10277,35 +10253,6 @@ int cmd_typec_control(int argc, char *argv[])
}
p.bist_share_mode = conversion_result;
break;
- case TYPEC_CONTROL_COMMAND_SEND_VDM_REQ:
- if (argc < 5) {
- fprintf(stderr, "Missing VDM header and type\n");
- return -1;
- }
- if (argc > 4 + VDO_MAX_SIZE) {
- fprintf(stderr, "Too many VDOs\n");
- return -1;
- }
-
- conversion_result = strtol(argv[3], &endptr, 0);
- if ((endptr && *endptr) || conversion_result > UINT8_MAX ||
- conversion_result < 0) {
- fprintf(stderr, "Bad SOP* type\n");
- return -1;
- }
- p.vdm_req_params.partner_type = conversion_result;
-
- int vdm_index;
- for (vdm_index = 0; vdm_index < argc - 4; vdm_index++) {
- uint32_t vdm_entry =
- strtoul(argv[vdm_index + 4], &endptr, 0);
- if (endptr && *endptr) {
- fprintf(stderr, "Bad VDO\n");
- return -1;
- }
- p.vdm_req_params.vdm_data[vdm_index] = vdm_entry;
- }
- p.vdm_req_params.vdm_data_objects = vdm_index;
}
rv = ec_command(EC_CMD_TYPEC_CONTROL, 0, &p, sizeof(p), ec_inbuf,
@@ -11044,7 +10991,6 @@ const struct command commands[] = {
{ "sysinfo", cmd_sysinfo },
{ "port80flood", cmd_port_80_flood },
{ "switches", cmd_switches },
- { "tabletmode", cmd_tabletmode },
{ "temps", cmd_temperature },
{ "tempsinfo", cmd_temp_sensor_info },
{ "test", cmd_test },