[U-Boot] [PATCH 05/11] MIPS: add sleep handler for slave CPUs in multi-processor systems
Marek Vasut
marek.vasut at gmail.com
Fri Nov 25 09:44:29 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
Can't you stall the CPU instead of letting it run in an empty loop? If not:
Acked-by: Marek Vasut <marek.vasut at gmail.com>
More information about the U-Boot
mailing list