aboutsummaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorVitaly Andrianov <vitalya@ti.com>2015-07-08 11:40:14 -0400
committerTom Rini <trini@konsulko.com>2015-07-27 15:01:57 -0400
commit17c5bda2a91cf902e0897bd8178f96aa5e3adf78 (patch)
treec62277f1f728bd1d6c2d72c5ed36c66b6d07b79f /arch/arm
parentf5df36d0c80eafee94d14e33a01f0f693f041a3c (diff)
downloadu-boot-17c5bda2a91cf902e0897bd8178f96aa5e3adf78.zip
u-boot-17c5bda2a91cf902e0897bd8178f96aa5e3adf78.tar.gz
u-boot-17c5bda2a91cf902e0897bd8178f96aa5e3adf78.tar.bz2
keystone2: add wfi in to the core_spin loop
When core A turning of core B, via tetris DPSC it places the core B DPSC into transitional state. The core B has to execute wfi instruction to move its DPSC to the OFF state. This patch add such instruction. Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-keystone/cmd_mon.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/arm/mach-keystone/cmd_mon.c b/arch/arm/mach-keystone/cmd_mon.c
index f9f58a3..73ceb83 100644
--- a/arch/arm/mach-keystone/cmd_mon.c
+++ b/arch/arm/mach-keystone/cmd_mon.c
@@ -55,8 +55,13 @@ U_BOOT_CMD(mon_install, 2, 0, do_mon_install,
static void core_spin(void)
{
- while (1)
- ; /* forever */;
+ while (1) {
+ asm volatile (
+ "dsb\n"
+ "isb\n"
+ "wfi\n"
+ );
+ }
}
int mon_power_on(int core_id, void *ep)