[MIPS] Alchemy: Au1210/Au1250 CPU support
authorManuel Lauss <mano@roarinelk.homelinux.net>
Thu, 6 Dec 2007 08:07:55 +0000 (09:07 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Tue, 29 Jan 2008 10:14:59 +0000 (10:14 +0000)
This patch adds IDs for new Au1200 variants: Au1210 and Au1250.
They are essentially identical to the Au1200 except for the Au1210
which has a different SoC-ID in the PRId register [bits 31:24].
The Au1250 is a "Au1200 V0.2".

Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/cpu-probe.c
arch/mips/mm/c-r4k.c
arch/mips/mm/tlbex.c
include/asm-mips/cpu.h

index 5c2794391bf53423d8cd4a1282e17603701023f8..5861a432a52f93bb2feeb76724311922f6b57c76 100644 (file)
@@ -188,6 +188,8 @@ static inline void check_wait(void)
        case CPU_AU1500:
        case CPU_AU1550:
        case CPU_AU1200:
+       case CPU_AU1210:
+       case CPU_AU1250:
                if (allow_au1k_wait)
                        cpu_wait = au1k_wait;
                break;
@@ -733,6 +735,11 @@ static inline void cpu_probe_alchemy(struct cpuinfo_mips *c)
                        break;
                case 4:
                        c->cputype = CPU_AU1200;
+                       if (2 == (c->processor_id & 0xff))
+                               c->cputype = CPU_AU1250;
+                       break;
+               case 5:
+                       c->cputype = CPU_AU1210;
                        break;
                default:
                        panic("Unknown Au Core!");
@@ -858,6 +865,8 @@ static __init const char *cpu_to_name(struct cpuinfo_mips *c)
        case CPU_AU1100:        name = "Au1100"; break;
        case CPU_AU1550:        name = "Au1550"; break;
        case CPU_AU1200:        name = "Au1200"; break;
+       case CPU_AU1210:        name = "Au1210"; break;
+       case CPU_AU1250:        name = "Au1250"; break;
        case CPU_4KEC:          name = "MIPS 4KEc"; break;
        case CPU_4KSC:          name = "MIPS 4KSc"; break;
        case CPU_VR41XX:        name = "NEC Vr41xx"; break;
index 06074948450dd9ba656366cc08a5af66bb6f668e..02bd180f0e02748354383af23352900da6d1b02b 100644 (file)
@@ -980,6 +980,8 @@ static void __init probe_pcache(void)
        case CPU_AU1100:
        case CPU_AU1550:
        case CPU_AU1200:
+       case CPU_AU1210:
+       case CPU_AU1250:
                c->icache.flags |= MIPS_CACHE_IC_F_DC;
                break;
        }
index c298344fcb71b02ed5433d7ef395a816e4b1fbc1..d026302e0ecc6b8b49c4c95c847f4de79fddadec 100644 (file)
@@ -917,6 +917,8 @@ static void __init build_tlb_write_entry(u32 **p, struct label **l,
        case CPU_AU1500:
        case CPU_AU1550:
        case CPU_AU1200:
+       case CPU_AU1210:
+       case CPU_AU1250:
        case CPU_PR4450:
                i_nop(p);
                tlbw(p);
index 54fc18a4e5a86481d90e6b23bb2a90ca3b0dfff1..bf5bbc78a9f7d85ae6a94e929a6b40f27f46e617 100644 (file)
@@ -195,8 +195,8 @@ enum cpu_type_enum {
         * MIPS32 class processors
         */
        CPU_4KC, CPU_4KEC, CPU_4KSC, CPU_24K, CPU_34K, CPU_74K, CPU_AU1000,
-       CPU_AU1100, CPU_AU1200, CPU_AU1500, CPU_AU1550, CPU_PR4450,
-       CPU_BCM3302, CPU_BCM4710,
+       CPU_AU1100, CPU_AU1200, CPU_AU1210, CPU_AU1250, CPU_AU1500, CPU_AU1550,
+       CPU_PR4450, CPU_BCM3302, CPU_BCM4710,
 
        /*
         * MIPS64 class processors