On Fri, Nov 25, 2011 at 9:44 AM, Marek Vasut <marek.va...@gmail.com> wrote:
>> 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.schwierz...@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.va...@gmail.com>
>

the CPU is stalled with the wait instruction. The loop is actually paranoia ;)

From MIPS32 24KE Processor Core Family Software User's Manual:

The WAIT instruction forces the core into low power mode. The pipeline
is stalled and when all external requests are
completed, the processor’s main clock is stopped. The processor will
restart when reset (SI_Reset) is signaled, or a
non-masked interrupt is taken (SI_NMI, SI_Int, or EJ_DINT). Note that
the core does not use the code field in this
instruction.
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to