[PATCH 1/2] ARM: add cpu_is_pj4() to distinguish PJ4 core

Arnd Bergmann arnd at arndb.de
Mon Apr 14 08:27:04 PDT 2014


On Monday 14 April 2014 14:43:53 Russell King - ARM Linux wrote:
> On Mon, Apr 14, 2014 at 03:12:36PM +0200, Thomas Petazzoni wrote:
> > Dear Chao Xie,
> > 
> > On Fri, 21 Mar 2014 15:01:58 +0800, Chao Xie wrote:
> > 
> > > +/*
> > > + * Marvell's PJ4 core is based on V7 version. It has some modification
> > > + * for coprocessor setting. For this reason, we need a way to distinguish
> > > + * it.
> > > + */
> > > +#ifndef CONFIG_CPU_PJ4
> > > +#define cpu_is_pj4()       0
> > > +#else
> > > +static inline int cpu_is_pj4(void)
> > > +{
> > > +   unsigned int id;
> > > +
> > > +   id = read_cpuid_id();
> > > +   if ((id & 0xfffffff0) == 0x562f5840)
> > > +           return 1;
> > 
> > Unfortunately, this doesn't work correctly, because this cpuid check
> > also matches Armada XP, which uses the PJ4B-MP core, but does not have
> > the iWMMXt extension. Therefore, when you build mach-mvebu with Dove
> > support enabled, it does not boot on Armada XP: it fails with an
> > undefined instruction.
> 
> Grr, that's annoying.  And we can't just revert this because of the
> arm-soc debacle - doing so will break the boot for a whole pile of
> other platforms.

It is very unfortunate that the bug didn't get caught earlier in order
to get fixed before the merge window. Having Marvell Dove enabled in
multi_v7_defconfig in the branch I submitted to Linus was a stupid
mistake of mine, no malicious intentions, and I already apologized
for that before.

> This is a nice illustration of why the arm-soc process - with arm-soc
> effectively *forcing* me to take patches - is rather broken.  I hope
> arm-soc people start behaving more responsibly in the future.

Do you have a better idea?

We could for the moment make Dove mutually exclusive with the other
platforms it breaks in Kconfig for the moment if you think that would
be better. That would at least avoid the regression against 3.14
at the expense of losing the dove multiplatform support.

We can then decide later after we have a proper fix whether we are
confident enough that it works in all cases, or whether it's too
late for 3.15 by then.

	Arnd



More information about the linux-arm-kernel mailing list