linux-mips
[Top] [All Lists]

Re: [PATCH] malta4kec hang in calibrate_delay fix

To: "Kevin D. Kissell" <kevink@mips.com>
Subject: Re: [PATCH] malta4kec hang in calibrate_delay fix
From: Thiemo Seufer <ths@networkno.de>
Date: Tue, 4 Sep 2007 13:42:31 +0100
Cc: Nigel Stephens <nigel@mips.com>, yshi <yang.shi@windriver.com>, linux-mips@linux-mips.org
In-reply-to: <00a601c7eeed$d8095aa0$10eca8c0@grendel>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <46DD1CD1.5040306@windriver.com> <006901c7eeda$d8049a50$10eca8c0@grendel> <1188901951.4106.16.camel@yshi.CORP> <006f01c7eee5$bbe77c60$10eca8c0@grendel> <20070904115527.GA848@networkno.de> <46DD49B9.2090306@mips.com> <00a601c7eeed$d8095aa0$10eca8c0@grendel>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.16 (2007-06-11)
Kevin D. Kissell wrote:
> > >> In that case, your core is a 4Kc and not a 4KEc.    
> > >
> > > Not quite true, early revisions of the 4KEc were only release 1. This
> > > seems to be a bug in arch/mips/cpu-probe.c:
> > >
> > > static inline void cpu_probe_mips(struct cpuinfo_mips *c)
> > > {
> > >         decode_configs(c);
> > >         switch (c->processor_id & 0xff00) {
> > >         case PRID_IMP_4KC:
> > >                 c->cputype = CPU_4KC;
> > >                 break;
> > >         case PRID_IMP_4KEC:
> > >                 c->cputype = CPU_4KEC;
> > >                 break;
> > >         case PRID_IMP_4KECR2:
> > >                 c->cputype = CPU_4KEC;
> > >                 break;
> > > ...
> > >
> > > The type for PRID_IMP_4KEC should be CPU_4KC.
> > >
> > >   
> > 
> > Maybe the probing code should read the ISA revision level from the AR 
> > bits (12:10) of the Config0 register to figure out which revision of the 
> > ISA is implemented.
> 
> It does.

Indeed.

> c->cputype isn't what needs to be modulated here, it's c->isa_level,
> which gets decoded as part of decode_configs(), as near as I can tell 
> correctly
> in the most recent source tree I've got. And it's isa_level that's being 
> tested
> by the cpu_has_mips32r2 et. al. macros.

Unless it got hardcoded in include/asm-mips/mach-foo/cpu-features-override.h.
Maybe Windriver has a local patch which does that by accident.


Thiemo

<Prev in Thread] Current Thread [Next in Thread>