aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/include/asm/cpu-features.h3
-rw-r--r--arch/mips/include/asm/cpu.h3
-rw-r--r--arch/mips/include/asm/mipsregs.h1
-rw-r--r--arch/mips/kernel/cpu-probe.c7
-rw-r--r--arch/mips/kernel/proc.c1
-rw-r--r--arch/mips/mm/c-r4k.c1
-rw-r--r--arch/mips/mm/tlbex.c1
-rw-r--r--arch/mips/oprofile/common.c1
-rw-r--r--arch/mips/oprofile/op_model_mipsxx.c4
9 files changed, 22 insertions, 0 deletions
diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h
index c507b931b484..00171cddb6d5 100644
--- a/arch/mips/include/asm/cpu-features.h
+++ b/arch/mips/include/asm/cpu-features.h
@@ -98,6 +98,9 @@
98#ifndef cpu_has_rixi 98#ifndef cpu_has_rixi
99#define cpu_has_rixi (cpu_data[0].options & MIPS_CPU_RIXI) 99#define cpu_has_rixi (cpu_data[0].options & MIPS_CPU_RIXI)
100#endif 100#endif
101#ifndef cpu_has_mmips
102#define cpu_has_mmips (cpu_data[0].options & MIPS_CPU_MICROMIPS)
103#endif
101#ifndef cpu_has_vtag_icache 104#ifndef cpu_has_vtag_icache
102#define cpu_has_vtag_icache (cpu_data[0].icache.flags & MIPS_CACHE_VTAG) 105#define cpu_has_vtag_icache (cpu_data[0].icache.flags & MIPS_CACHE_VTAG)
103#endif 106#endif
diff --git a/arch/mips/include/asm/cpu.h b/arch/mips/include/asm/cpu.h
index 90112adb1940..2de2fee16cc4 100644
--- a/arch/mips/include/asm/cpu.h
+++ b/arch/mips/include/asm/cpu.h
@@ -96,6 +96,7 @@
96#define PRID_IMP_1004K 0x9900 96#define PRID_IMP_1004K 0x9900
97#define PRID_IMP_1074K 0x9a00 97#define PRID_IMP_1074K 0x9a00
98#define PRID_IMP_M14KC 0x9c00 98#define PRID_IMP_M14KC 0x9c00
99#define PRID_IMP_M14KEC 0x9e00
99 100
100/* 101/*
101 * These are the PRID's for when 23:16 == PRID_COMP_SIBYTE 102 * These are the PRID's for when 23:16 == PRID_COMP_SIBYTE
@@ -264,6 +265,7 @@ enum cpu_type_enum {
264 CPU_4KC, CPU_4KEC, CPU_4KSC, CPU_24K, CPU_34K, CPU_1004K, CPU_74K, 265 CPU_4KC, CPU_4KEC, CPU_4KSC, CPU_24K, CPU_34K, CPU_1004K, CPU_74K,
265 CPU_ALCHEMY, CPU_PR4450, CPU_BMIPS32, CPU_BMIPS3300, CPU_BMIPS4350, 266 CPU_ALCHEMY, CPU_PR4450, CPU_BMIPS32, CPU_BMIPS3300, CPU_BMIPS4350,
266 CPU_BMIPS4380, CPU_BMIPS5000, CPU_JZRISC, CPU_LOONGSON1, CPU_M14KC, 267 CPU_BMIPS4380, CPU_BMIPS5000, CPU_JZRISC, CPU_LOONGSON1, CPU_M14KC,
268 CPU_M14KEC,
267 269
268 /* 270 /*
269 * MIPS64 class processors 271 * MIPS64 class processors
@@ -322,6 +324,7 @@ enum cpu_type_enum {
322#define MIPS_CPU_ULRI 0x00200000 /* CPU has ULRI feature */ 324#define MIPS_CPU_ULRI 0x00200000 /* CPU has ULRI feature */
323#define MIPS_CPU_PCI 0x00400000 /* CPU has Perf Ctr Int indicator */ 325#define MIPS_CPU_PCI 0x00400000 /* CPU has Perf Ctr Int indicator */
324#define MIPS_CPU_RIXI 0x00800000 /* CPU has TLB Read/eXec Inhibit */ 326#define MIPS_CPU_RIXI 0x00800000 /* CPU has TLB Read/eXec Inhibit */
327#define MIPS_CPU_MICROMIPS 0x01000000 /* CPU has microMIPS capability */
325 328
326/* 329/*
327 * CPU ASE encodings 330 * CPU ASE encodings
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h
index 7e4e6f8fab37..3e36745670b2 100644
--- a/arch/mips/include/asm/mipsregs.h
+++ b/arch/mips/include/asm/mipsregs.h
@@ -595,6 +595,7 @@
595#define MIPS_CONF3_DSP2P (_ULCAST_(1) << 11) 595#define MIPS_CONF3_DSP2P (_ULCAST_(1) << 11)
596#define MIPS_CONF3_RXI (_ULCAST_(1) << 12) 596#define MIPS_CONF3_RXI (_ULCAST_(1) << 12)
597#define MIPS_CONF3_ULRI (_ULCAST_(1) << 13) 597#define MIPS_CONF3_ULRI (_ULCAST_(1) << 13)
598#define MIPS_CONF3_ISA (_ULCAST_(3) << 14)
598 599
599#define MIPS_CONF4_MMUSIZEEXT (_ULCAST_(255) << 0) 600#define MIPS_CONF4_MMUSIZEEXT (_ULCAST_(255) << 0)
600#define MIPS_CONF4_MMUEXTDEF (_ULCAST_(3) << 14) 601#define MIPS_CONF4_MMUEXTDEF (_ULCAST_(3) << 14)
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index 9f31334ed1de..ba169022fe1d 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -201,6 +201,7 @@ void __init check_wait(void)
201 break; 201 break;
202 202
203 case CPU_M14KC: 203 case CPU_M14KC:
204 case CPU_M14KEC:
204 case CPU_24K: 205 case CPU_24K:
205 case CPU_34K: 206 case CPU_34K:
206 case CPU_1004K: 207 case CPU_1004K:
@@ -439,6 +440,8 @@ static inline unsigned int decode_config3(struct cpuinfo_mips *c)
439 c->ases |= MIPS_ASE_MIPSMT; 440 c->ases |= MIPS_ASE_MIPSMT;
440 if (config3 & MIPS_CONF3_ULRI) 441 if (config3 & MIPS_CONF3_ULRI)
441 c->options |= MIPS_CPU_ULRI; 442 c->options |= MIPS_CPU_ULRI;
443 if (config3 & MIPS_CONF3_ISA)
444 c->options |= MIPS_CPU_MICROMIPS;
442 445
443 return config3 & MIPS_CONF_M; 446 return config3 & MIPS_CONF_M;
444} 447}
@@ -861,6 +864,10 @@ static inline void cpu_probe_mips(struct cpuinfo_mips *c, unsigned int cpu)
861 c->cputype = CPU_M14KC; 864 c->cputype = CPU_M14KC;
862 __cpu_name[cpu] = "MIPS M14Kc"; 865 __cpu_name[cpu] = "MIPS M14Kc";
863 break; 866 break;
867 case PRID_IMP_M14KEC:
868 c->cputype = CPU_M14KEC;
869 __cpu_name[cpu] = "MIPS M14KEc";
870 break;
864 case PRID_IMP_1004K: 871 case PRID_IMP_1004K:
865 c->cputype = CPU_1004K; 872 c->cputype = CPU_1004K;
866 __cpu_name[cpu] = "MIPS 1004Kc"; 873 __cpu_name[cpu] = "MIPS 1004Kc";
diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c
index 07dff54f2ce8..239ae03f3330 100644
--- a/arch/mips/kernel/proc.c
+++ b/arch/mips/kernel/proc.c
@@ -73,6 +73,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
73 if (cpu_has_dsp) seq_printf(m, "%s", " dsp"); 73 if (cpu_has_dsp) seq_printf(m, "%s", " dsp");
74 if (cpu_has_dsp2) seq_printf(m, "%s", " dsp2"); 74 if (cpu_has_dsp2) seq_printf(m, "%s", " dsp2");
75 if (cpu_has_mipsmt) seq_printf(m, "%s", " mt"); 75 if (cpu_has_mipsmt) seq_printf(m, "%s", " mt");
76 if (cpu_has_mmips) seq_printf(m, "%s", " micromips");
76 seq_printf(m, "\n"); 77 seq_printf(m, "\n");
77 78
78 seq_printf(m, "shadow register sets\t: %d\n", 79 seq_printf(m, "shadow register sets\t: %d\n",
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 0f7d788e8810..606e8286970c 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -1057,6 +1057,7 @@ static void __cpuinit probe_pcache(void)
1057 break; 1057 break;
1058 1058
1059 case CPU_M14KC: 1059 case CPU_M14KC:
1060 case CPU_M14KEC:
1060 case CPU_24K: 1061 case CPU_24K:
1061 case CPU_34K: 1062 case CPU_34K:
1062 case CPU_74K: 1063 case CPU_74K:
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index 1c8ac49ec72c..074d6595e7b3 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -581,6 +581,7 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l,
581 case CPU_4KC: 581 case CPU_4KC:
582 case CPU_4KEC: 582 case CPU_4KEC:
583 case CPU_M14KC: 583 case CPU_M14KC:
584 case CPU_M14KEC:
584 case CPU_SB1: 585 case CPU_SB1:
585 case CPU_SB1A: 586 case CPU_SB1A:
586 case CPU_4KSC: 587 case CPU_4KSC:
diff --git a/arch/mips/oprofile/common.c b/arch/mips/oprofile/common.c
index e32db1ff02c7..fc41aa997f1a 100644
--- a/arch/mips/oprofile/common.c
+++ b/arch/mips/oprofile/common.c
@@ -78,6 +78,7 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
78 switch (current_cpu_type()) { 78 switch (current_cpu_type()) {
79 case CPU_5KC: 79 case CPU_5KC:
80 case CPU_M14KC: 80 case CPU_M14KC:
81 case CPU_M14KEC:
81 case CPU_20KC: 82 case CPU_20KC:
82 case CPU_24K: 83 case CPU_24K:
83 case CPU_25KF: 84 case CPU_25KF:
diff --git a/arch/mips/oprofile/op_model_mipsxx.c b/arch/mips/oprofile/op_model_mipsxx.c
index 786254630403..18c3afefa67d 100644
--- a/arch/mips/oprofile/op_model_mipsxx.c
+++ b/arch/mips/oprofile/op_model_mipsxx.c
@@ -351,6 +351,10 @@ static int __init mipsxx_init(void)
351 op_model_mipsxx_ops.cpu_type = "mips/M14Kc"; 351 op_model_mipsxx_ops.cpu_type = "mips/M14Kc";
352 break; 352 break;
353 353
354 case CPU_M14KEC:
355 op_model_mipsxx_ops.cpu_type = "mips/M14KEc";
356 break;
357
354 case CPU_20KC: 358 case CPU_20KC:
355 op_model_mipsxx_ops.cpu_type = "mips/20K"; 359 op_model_mipsxx_ops.cpu_type = "mips/20K";
356 break; 360 break;