[PATCH 2/2] cros_ec: Increase command timeout for flash erase

Simon Glass sjg at chromium.org
Mon Nov 9 15:14:44 CET 2020


Erasing the flash can take over a second on some devices and the EC is
not responsive during this time. Update the timeout to 5 seconds to cope
with this.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 drivers/misc/cros_ec_lpc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/cros_ec_lpc.c b/drivers/misc/cros_ec_lpc.c
index 63702f90fbc..e0002b9753f 100644
--- a/drivers/misc/cros_ec_lpc.c
+++ b/drivers/misc/cros_ec_lpc.c
@@ -25,13 +25,16 @@
 #define debug_trace(fmt, b...)
 #endif
 
+/* Timeout waiting for a flash erase command to complete */
+static const int CROS_EC_CMD_TIMEOUT_MS = 5000;
+
 static int wait_for_sync(struct cros_ec_dev *dev)
 {
 	unsigned long start;
 
 	start = get_timer(0);
 	while (inb(EC_LPC_ADDR_HOST_CMD) & EC_LPC_STATUS_BUSY_MASK) {
-		if (get_timer(start) > 1000) {
+		if (get_timer(start) > CROS_EC_CMD_TIMEOUT_MS) {
 			debug("%s: Timeout waiting for CROS_EC sync\n",
 			      __func__);
 			return -1;
-- 
2.29.2.222.g5d2a92d10f8-goog



More information about the U-Boot mailing list