diff options
author | Mary Ruthven <mruthven@chromium.org> | 2019-04-24 11:20:51 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-04-27 01:36:40 -0700 |
commit | 0f25f85e44362e7feb15ce59974f0423abab0b5f (patch) | |
tree | f353615b1486127e9e83adac0725b28ec9474fef /common/factory_mode.c | |
parent | b9bf62a7aea6e71e3faec26894e9f75c3d435afa (diff) | |
download | chrome-ec-0f25f85e44362e7feb15ce59974f0423abab0b5f.tar.gz |
ccd: delay sleep while opening ccd
Cr50 may enter deep sleep while wiping the TPM. This change adds a sleep
delay before opening ccd.
BUG=b:130646257
BRANCH=cr50
TEST=manual
dut-control cold_reset:on
run ccd open
make sure ccd is open even after entering deep sleep
Change-Id: Id44b608702b664621bd2441f62a03ba6428135cf
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1585606
Reviewed-by: Namyoon Woo <namyoon@chromium.org>
Diffstat (limited to 'common/factory_mode.c')
-rw-r--r-- | common/factory_mode.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/common/factory_mode.c b/common/factory_mode.c index be6c532304..9198cc936c 100644 --- a/common/factory_mode.c +++ b/common/factory_mode.c @@ -48,21 +48,6 @@ static void force_system_reset(void) } DECLARE_DEFERRED(force_system_reset); -/* The below time constants are way longer than should be required in practice: - * - * Time it takes to finish processing TPM command - */ -#define TPM_PROCESSING_TIME (1 * SECOND) - -/* - * Time it takse TPM reset function to wipe out the NVMEM and reboot the - * device. - */ -#define TPM_RESET_TIME (10 * SECOND) - -/* Total time deep sleep should not be allowed. */ -#define DISABLE_SLEEP_TIME (TPM_PROCESSING_TIME + TPM_RESET_TIME) - static void factory_enable_deferred(void) { int rv; @@ -90,7 +75,11 @@ DECLARE_DEFERRED(factory_enable_deferred); void enable_ccd_factory_mode(int reset_required) { - delay_sleep_by(DISABLE_SLEEP_TIME); + /* + * Wiping the TPM may take a while. Delay sleep long enough for the + * factory enable process to finish. + */ + delay_sleep_by(DISABLE_SLEEP_TIME_TPM_WIPE); reset_required_ |= !!reset_required; hook_call_deferred(&factory_enable_deferred_data, |