Re: [PATCH V16 02/12] MIPS: Loongson: Add basic Loongson-3 CPU support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Sun, Jan 12, 2014 at 10:57:52AM +0100, Aurelien Jarno wrote:
> On Sun, Jan 12, 2014 at 05:03:51PM +0800, Huacai Chen wrote:
> > On Fri, Jan 10, 2014 at 5:36 AM, Aurelien Jarno <aurelien@xxxxxxxxxxx> wrote:
> > > On Thu, Jan 09, 2014 at 04:30:54PM +0800, Huacai Chen wrote:
> > >> On Thu, Jan 9, 2014 at 3:58 AM, Aurelien Jarno <aurelien@xxxxxxxxxxx> wrote:
> > >>
> > >> > On Wed, Jan 08, 2014 at 10:44:18AM +0800, Huacai Chen wrote:
> > >> > > Basic Loongson-3 CPU support include CPU probing and TLB/cache
> > >> > > initializing.
> > >> > >
> > >> > > Signed-off-by: Huacai Chen <chenhc@xxxxxxxxxx>
> > >> > > Signed-off-by: Hongliang Tao <taohl@xxxxxxxxxx>
> > >> > > Signed-off-by: Hua Yan <yanh@xxxxxxxxxx>
> > >> > > ---
> > >> > >  arch/mips/include/asm/cpu-type.h |    4 ++
> > >> > >  arch/mips/kernel/cpu-probe.c     |   14 ++++++--
> > >> > >  arch/mips/mm/c-r4k.c             |   59
> > >> > ++++++++++++++++++++++++++++++++++++++
> > >> > >  arch/mips/mm/tlb-r4k.c           |    5 ++-
> > >> > >  arch/mips/mm/tlbex.c             |    1 +
> > >> > >  5 files changed, 77 insertions(+), 6 deletions(-)
> > >> > >
> > >> > > diff --git a/arch/mips/include/asm/cpu-type.h
> > >> > b/arch/mips/include/asm/cpu-type.h
> > >> > > index 4a402cc..a591e63 100644
> > >> > > --- a/arch/mips/include/asm/cpu-type.h
> > >> > > +++ b/arch/mips/include/asm/cpu-type.h
> > >> > > @@ -20,6 +20,10 @@ static inline int __pure __get_cpu_type(const int
> > >> > cpu_type)
> > >> > >       case CPU_LOONGSON2:
> > >> > >  #endif
> > >> > >
> > >> > > +#ifdef CONFIG_SYS_HAS_CPU_LOONGSON3
> > >> > > +     case CPU_LOONGSON3:
> > >> > > +#endif
> > >> > > +
> > >> > >  #ifdef CONFIG_SYS_HAS_CPU_LOONGSON1B
> > >> > >       case CPU_LOONGSON1:
> > >> > >  #endif
> > >> > > diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
> > >> > > index c814287..4bc81b2 100644
> > >> > > --- a/arch/mips/kernel/cpu-probe.c
> > >> > > +++ b/arch/mips/kernel/cpu-probe.c
> > >> > > @@ -639,17 +639,23 @@ static inline void cpu_probe_legacy(struct
> > >> > cpuinfo_mips *c, unsigned int cpu)
> > >> > >                            MIPS_CPU_LLSC;
> > >> > >               c->tlbsize = 64;
> > >> > >               break;
> > >> > > -     case PRID_IMP_LOONGSON2:
> > >> > > -             c->cputype = CPU_LOONGSON2;
> > >> > > -             __cpu_name[cpu] = "ICT Loongson-2";
> > >> > > -
> > >> > > +     case PRID_IMP_LOONGSON2: /* Loongson-2/3 have the same PRID_IMP
> > >> > field */
> > >> >
> > >> > What about renaming that as something like PRID_IMP_LOONGSON23 given
> > >> > it is for both Loongson 2 and 3?
> > >> >
> > >> Since Loongson-1 is 32-bit CPU and Loongson-2/3 are 64 bit, can I use
> > >> PRID_IMP_LOONGSON_32 and PRID_IMP_LOONGSON_64?
> > >> In my opinion these names are better.
> > >
> > > That would be the best I agree.
> > >
> > >> >
> > >> > >               switch (c->processor_id & PRID_REV_MASK) {
> > >> > >               case PRID_REV_LOONGSON2E:
> > >> > > +                     c->cputype = CPU_LOONGSON2;
> > >> > > +                     __cpu_name[cpu] = "ICT Loongson-2E";
> > >> > >                       set_elf_platform(cpu, "loongson2e");
> > >> > >                       break;
> > >> > >               case PRID_REV_LOONGSON2F:
> > >> > > +                     c->cputype = CPU_LOONGSON2;
> > >> > > +                     __cpu_name[cpu] = "ICT Loongson-2F";
> > >> > >                       set_elf_platform(cpu, "loongson2f");
> > >> > >                       break;
> > >> >
> > >> > As remarked by Aaro Koskinen, changing the names of the Loongson 2 CPUs
> > >> > (which is displayedd in /proc/cpuinfo) will break at least
> > >> > GCC -march=native option. The name should be left unchanged.
> > >> >
> > >> Can I keep it as is and then submit a patch to GCC? I think it is important
> > >> to distinguish 2E/2F/3A in cpuinfo.
> > >
> > > I think first the patch has to be integrated to GCC, and then you have
> > > to wait at least a few months so that people start using the new
> > > version. Then it should be possible to modify this.
> > >
> > > That said, other programs than GCC might use this information from
> > > /proc/cpuinfo and might also break with this change.
> > The GCC patch has been accepted yesterday, and the coming V17 patchset
> > won't be accept at least in kernel-3.14,
> > So, I'll keep the name in V17.
> 
> Kernel 3.15 is expected in roughly 6 months, it might still be a bit
> tight for the change to propagate, even if I have seen it has been added
> to the 4.8 branch. What the others things? Aaro?

It doesn't really matter if some future version of GCC supports the
new name. Most people will continue to use older toolchains for years,
and we shouldn't change the behaviour of those.

A.


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux