[U-Boot] [PATCH 05/11] MIPS: add sleep handler for slave CPUs in multi-processor systems
Daniel Schwierzeck
daniel.schwierzeck at googlemail.com
Thu Nov 24 14:57:50 CET 2011
This handler can be activated on multi-processor systems to boot only
the master CPU. All slave CPUs are halted by executing the WAIT
instruction. This is also useful to reduce the power consumption at
boot time.
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck at googlemail.com>
---
arch/mips/cpu/mips32/start.S | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/arch/mips/cpu/mips32/start.S b/arch/mips/cpu/mips32/start.S
index 9c1b2f7..b6cb4be 100644
--- a/arch/mips/cpu/mips32/start.S
+++ b/arch/mips/cpu/mips32/start.S
@@ -224,6 +224,14 @@ reset:
setup_c0_status_reset
+ /* Set all slave CPUs in sleep mode */
+#ifdef CONFIG_SYS_MPS_SLAVE_CPU_SLEEP
+ mfc0 k0, CP0_EBASE
+ and k0, EBASEF_CPUNUM
+ bne k0, zero, slave_cpu_sleep
+ nop
+#endif
+
/* Init Timer */
mtc0 zero, CP0_COUNT
mtc0 zero, CP0_COMPARE
@@ -383,3 +391,11 @@ romReserved:
romExcHandle:
b romExcHandle
+
+ /* Additional handlers */
+#ifdef CONFIG_SYS_MPS_SLAVE_CPU_SLEEP
+slave_cpu_sleep:
+ wait
+ b slave_cpu_sleep
+ nop
+#endif
--
1.7.7.2
More information about the U-Boot
mailing list