Subject: [PATCH 1/6] ARM: Add inline function smp_cpu() for early init testing

From: [email-masked] (Will Deacon)
Date: Fri, 3 Sep 2010 10:07:20 +0100

> On Fri, Sep 03, 2010 at 09:58:23AM +0100, Will Deacon wrote:
> > Your patches are turning up as attachments here, so I can't comment
> > inline. The only problem I can see is for SMP v6 platforms (ARM11MPCore)
> > where the MPIDR is actually the `CPU ID register' with bits 31:12 set to
> > zero, so we'll say it's a UP core.
> >
> > Since 11MPCore is the only ARM SMP v6 processor and you're checking
> > the implementor ID anyway, it might be easier to check for the 11MPCore
> > explicitly, ((read_cpuid_id() & 0xfff0) == 0xB020) rather than check for v6/v7.
> >
> > Or we could just ignore v6 for now.
> 
> We can't.  We need to get this correct so the head.S code can also get it
> right.

Damn. Then I guess we assume a core is UP unless it's an 11MPCore or a v7
with the relevant mpidr bits set. Actually, special casing the 11MPCore
means that we can use cpu_architecture() to check for v7 rather than masking
out fields from the cpuid ourselves.

Will