From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Fri, 25 Nov 2011 09:44:29 +0100 Subject: [U-Boot] [PATCH 05/11] MIPS: add sleep handler for slave CPUs in multi-processor systems In-Reply-To: <1322143076-20349-6-git-send-email-daniel.schwierzeck@googlemail.com> References: <1322143076-20349-1-git-send-email-daniel.schwierzeck@googlemail.com> <1322143076-20349-6-git-send-email-daniel.schwierzeck@googlemail.com> Message-ID: <201111250944.30188.marek.vasut@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de > 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 > --- > 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