Commit 8553cb67 authored by Catalin Marinas's avatar Catalin Marinas

Modern processors may need to drain the WB before WFI

Since WFI may cause the processor to enter a low-power mode, data may
still be in the write buffer. This patch adds a DSB (or DWB) to the
cpu_(v6|v7)_do_idle functions before the WFI.
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>



parent 73b63efa
...@@ -71,6 +71,8 @@ ENTRY(cpu_v6_reset) ...@@ -71,6 +71,8 @@ ENTRY(cpu_v6_reset)
* IRQs are already disabled. * IRQs are already disabled.
*/ */
ENTRY(cpu_v6_do_idle) ENTRY(cpu_v6_do_idle)
mov r1, #0
mcr p15, 0, r1, c7, c10, 4 @ DWB - WFI may enter a low-power mode
mcr p15, 0, r1, c7, c0, 4 @ wait for interrupt mcr p15, 0, r1, c7, c0, 4 @ wait for interrupt
mov pc, lr mov pc, lr
......
...@@ -63,6 +63,7 @@ ENDPROC(cpu_v7_reset) ...@@ -63,6 +63,7 @@ ENDPROC(cpu_v7_reset)
* IRQs are already disabled. * IRQs are already disabled.
*/ */
ENTRY(cpu_v7_do_idle) ENTRY(cpu_v7_do_idle)
dsb @ WFI may enter a low-power mode
wfi wfi
mov pc, lr mov pc, lr
ENDPROC(cpu_v7_do_idle) ENDPROC(cpu_v7_do_idle)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment