static inline void cpu_probe_alchemy(struct cpuinfo_mips *c) { decode_config1(c); switch (c->processor_id & 0xff00) { case PRID_IMP_AU1_REV1: case PRID_IMP_AU1_REV2: switch ((c->processor_id >> 24) & 0xff) { case 0: c->cputype = CPU_AU1000; break; case 1: c->cputype = CPU_AU1500; break; case 2: c->cputype = CPU_AU1100; break; case 3: c->cputype = CPU_AU1550; break; default: panic("Unknown Au Core!"); break; } c->isa_level = MIPS_CPU_ISA_M32; break; } }
static inline void cpu_probe_sandcraft(struct cpuinfo_mips *c) { decode_config1(c); switch (c->processor_id & 0xff00) { case PRID_IMP_SR71000: c->cputype = CPU_SR71000; c->isa_level = MIPS_CPU_ISA_M64; c->options = MIPS_CPU_TLB | MIPS_CPU_4KEX | MIPS_CPU_4KTLB | MIPS_CPU_FPU | MIPS_CPU_COUNTER | MIPS_CPU_MCHECK; c->scache.ways = 8; c->tlbsize = 64; break; } }
static inline void cpu_probe_broadcom(struct cpuinfo_mips *c) { decode_config1(c); switch (c->processor_id & 0xff00) { case PRID_IMP_BCM6338: c->cputype = CPU_BCM6338; break; case PRID_IMP_BCM6345: c->cputype = CPU_BCM6345; break; case PRID_IMP_BCM6348: c->cputype = CPU_BCM6348; break; default: c->cputype = CPU_UNKNOWN; break; } }
static inline void cpu_probe_sibyte(struct cpuinfo_mips *c) { decode_config1(c); switch (c->processor_id & 0xff00) { case PRID_IMP_SB1: c->cputype = CPU_SB1; c->isa_level = MIPS_CPU_ISA_M64; c->options = MIPS_CPU_TLB | MIPS_CPU_4KEX | MIPS_CPU_COUNTER | MIPS_CPU_DIVEC | MIPS_CPU_MCHECK | MIPS_CPU_EJTAG | MIPS_CPU_WATCH | MIPS_CPU_LLSC; #ifndef CONFIG_SB1_PASS_1_WORKAROUNDS /* FPU in pass1 is known to have issues. */ c->options |= MIPS_CPU_FPU | MIPS_CPU_32FPR; #endif break; } }
static inline void cpu_probe_mips(struct cpuinfo_mips *c) { decode_config1(c); switch (c->processor_id & 0xff00) { case PRID_IMP_4KC: c->cputype = CPU_4KC; c->isa_level = MIPS_CPU_ISA_M32; break; case PRID_IMP_4KEC: c->cputype = CPU_4KEC; c->isa_level = MIPS_CPU_ISA_M32; break; case PRID_IMP_4KSC: c->cputype = CPU_4KSC; c->isa_level = MIPS_CPU_ISA_M32; break; case PRID_IMP_5KC: c->cputype = CPU_5KC; c->isa_level = MIPS_CPU_ISA_M64; break; case PRID_IMP_20KC: c->cputype = CPU_20KC; c->isa_level = MIPS_CPU_ISA_M64; break; case PRID_IMP_24K: c->cputype = CPU_24K; c->isa_level = MIPS_CPU_ISA_M32; break; case PRID_IMP_25KF: c->cputype = CPU_25KF; c->isa_level = MIPS_CPU_ISA_M64; /* Probe for L2 cache */ c->scache.flags &= ~MIPS_CACHE_NOT_PRESENT; break; default: c->cputype = CPU_UNKNOWN; break; } }