summaryrefslogtreecommitdiff
path: root/chip/mchp
diff options
context:
space:
mode:
authorBobby Casey <bobbycasey@google.com>2021-02-22 10:42:20 -0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-07-01 00:02:59 +0000
commitb325538a3dedb7b89680e0d9385899638afd529e (patch)
tree7f7fcb615611a7525adb9c2d59c737ebdc90e79b /chip/mchp
parent3bdfeba224ba2f64a77d13fd0079d2f185f9cc87 (diff)
downloadchrome-ec-b325538a3dedb7b89680e0d9385899638afd529e.tar.gz
cortex-m: Don't execute WFI instruction if debugging
Allowing the processor to sleep causes the debugger to stop working. BRANCH=none BUG=b:180144572 TEST=Monitor power per go/cros-fpmcu-source-code-docs#dragonclaw-v0_2 TEST=Icetower (pp3300_dx_mcu_mw) with no debugger connected Idle: ~44 mW Low Power Mode: ~5.5 mW TEST=Icetower (pp3300_dx_mcu_mw) with debugger connected Idle: ~75 mW Low Power Mode: ~70 mW TEST=Dragonclaw (pp3300_dx_mcu_mw) with no debugger connected Idle: ~22 mW Low Power Mode: ~1.5 mW TEST=Dragonclaw (pp3300_dx_mcu_mw) with debugger connected Idle: ~64 mW Low Power Mode: ~19 mW Signed-off-by: Bobby Casey <bobbycasey@google.com> Change-Id: I48d58395b168dc3bb0932348cd8f5ce088fc0ac9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2713754 Commit-Queue: Tom Hughes <tomhughes@chromium.org> Tested-by: Tom Hughes <tomhughes@chromium.org> Reviewed-by: Tom Hughes <tomhughes@chromium.org>
Diffstat (limited to 'chip/mchp')
-rw-r--r--chip/mchp/clock.c4
-rw-r--r--chip/mchp/system.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/chip/mchp/clock.c b/chip/mchp/clock.c
index 0a9a8f219c..3b3cd2d6af 100644
--- a/chip/mchp/clock.c
+++ b/chip/mchp/clock.c
@@ -630,7 +630,7 @@ void __idle(void)
/* Wait for interrupt: goes into deep sleep. */
asm("dsb");
- asm("wfi");
+ cpu_enter_suspend_mode();
asm("isb");
asm("nop");
@@ -671,7 +671,7 @@ void __idle(void)
idle_sleep_cnt++;
- asm("wfi");
+ cpu_enter_suspend_mode();
}
interrupt_enable();
diff --git a/chip/mchp/system.c b/chip/mchp/system.c
index 72c96bef8f..1a9b3f6bc7 100644
--- a/chip/mchp/system.c
+++ b/chip/mchp/system.c
@@ -549,7 +549,7 @@ void system_hibernate(uint32_t seconds, uint32_t microseconds)
MCHP_PCR_SYS_SLP_CTL = MCHP_PCR_SYS_SLP_ALL;
asm("dsb");
- asm("wfi");
+ cpu_enter_suspend_mode();
asm("isb");
asm("nop");