From mboxrd@z Thu Jan 1 00:00:00 1970 From: tony@atomide.com (Tony Lindgren) Date: Thu, 2 Sep 2010 18:39:41 -0700 Subject: [PATCH 0/4] Hacks to allow booting ARM SMP kernel on UP ARMv7 In-Reply-To: <20100902133301.GI26319@n2100.arm.linux.org.uk> References: <20100817104414.19061.38999.stgit@baageli.muru.com> <20100817135205.GC20325@n2100.arm.linux.org.uk> <20100817141210.GJ12184@atomide.com> <20100817154035.GD20325@n2100.arm.linux.org.uk> <20100819073810.GR12184@atomide.com> <20100902133301.GI26319@n2100.arm.linux.org.uk> Message-ID: <20100903013940.GH11597@atomide.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org * Russell King - ARM Linux [100902 06:25]: > On Thu, Aug 19, 2010 at 10:38:11AM +0300, Tony Lindgren wrote: > > --- a/arch/arm/kernel/head.S > > +++ b/arch/arm/kernel/head.S > > @@ -346,8 +346,10 @@ __fixup_smp: > > bne smp_on_up @ no, assume UP > > mrc p15, 0, r0, c0, c0, 5 @ read MIDR > > movs r0, r0, lsr #30 > > - teqne r0, #3 @ check top two bits 00 or 11 > > - moveq pc, lr > > + teq r0, #0 @ check two top bits 00 > > + beq smp_on_up @ yes, assume UP > > + teq r0, #3 @ check top two bits 11 > > + movne pc, lr @ no, running on SMP hw > > This should be: > > movs r0, r0, lsr #30 > teqne r0, #3 > movne pc, lr > > so that 0 or 3 avoids the return. Actually should also handle value of 1: 31 30 0 0 Not using new register, assume not SMP 0 1 Not using new register, assume not SMP 1 0 Using new register, SMP 1 1 Using new register, UP So we should return early only if it's 2. Regards, Tony