summaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2001-04-01 02:54:21 +0000
committerRalf Baechle <ralf@linux-mips.org>2001-04-01 02:54:21 +0000
commit1eb1d8f4cf7668cf937ad74824c985b88aa62cf3 (patch)
treea058dba9a0943c3294ce7cefe116f715caf8c964 /arch/mips/kernel
parent5f858d94183211ab76f7f1a1e372433c6b8d5e36 (diff)
Eleminate CONFIG_CPU_R3912; detect TX39 / R3000 at runtime.
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r--arch/mips/kernel/Makefile4
-rw-r--r--arch/mips/kernel/proc.c4
-rw-r--r--arch/mips/kernel/setup.c22
-rw-r--r--arch/mips/kernel/traps.c4
4 files changed, 24 insertions, 10 deletions
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile
index 10b8240aa..97479b75f 100644
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
@@ -26,9 +26,6 @@ obj-$(CONFIG_MODULES) += mips_ksyms.o
ifdef CONFIG_CPU_R3000
obj-y += r2300_misc.o r2300_fpu.o r2300_switch.o
else
-ifdef CONFIG_CPU_R3912
-obj-y += r2300_misc.o r2300_fpu.o r2300_switch.o
-else
obj-y += r4k_misc.o r4k_switch.o
ifdef CONFIG_CPU_R6000
obj-y += r6000_fpu.o
@@ -36,7 +33,6 @@ else
obj-y += r4k_fpu.o
endif
endif
-endif
obj-$(CONFIG_SMP) += smp.o
obj-$(CONFIG_MIPS_FPE_MODULE) += fpe.o
diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c
index 2255f2008..008db22f4 100644
--- a/arch/mips/kernel/proc.c
+++ b/arch/mips/kernel/proc.c
@@ -40,13 +40,13 @@ int get_cpuinfo(char *buffer)
const char *mach_galileo_names[] = GROUP_GALILEO_NAMES;
const char *mach_momenco_names[] = GROUP_MOMENCO_NAMES;
const char *mach_ite_names[] = GROUP_ITE_NAMES;
- const char *mach_phillips_names[] = GROUP_PHILIPS_NAMES;
+ const char *mach_philips_names[] = GROUP_PHILIPS_NAMES;
const char **mach_group_to_name[] = { mach_unknown_names,
mach_jazz_names, mach_dec_names, mach_arc_names,
mach_sni_rm_names, mach_acn_names, mach_sgi_names,
mach_cobalt_names, mach_nec_ddb_names, mach_baget_names,
mach_cosine_names, mach_galileo_names, mach_momenco_names,
- mach_ite_names, mach_phillips_names};
+ mach_ite_names, mach_philips_names};
unsigned int version = read_32bit_cp0_register(CP0_PRID);
int len;
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index d9af83707..bffbd67cf 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -218,11 +218,27 @@ static inline void cpu_probe(void)
mips_cpu.tlbsize = 48;
break;
*/
- case PRID_IMP_R3912:
- mips_cpu.cputype = CPU_R3912;
+ case PRID_IMP_TX39:
mips_cpu.isa_level = MIPS_CPU_ISA_I;
mips_cpu.options = MIPS_CPU_TLB;
- mips_cpu.tlbsize = 32;
+
+ switch (mips_cpu.processor_id & 0xff) {
+ case PRID_REV_TX3912:
+ mips_cpu.cputype = CPU_TX3912;
+ mips_cpu.tlbsize = 32;
+ break;
+ case PRID_REV_TX3922:
+ mips_cpu.cputype = CPU_TX3922;
+ mips_cpu.tlbsize = 64;
+ break;
+ case PRID_REV_TX3927:
+ mips_cpu.cputype = CPU_TX3927;
+ mips_cpu.tlbsize = 64;
+ break;
+ default:
+ mips_cpu.cputype = CPU_UNKNOWN;
+ break;
+ }
break;
case PRID_IMP_R4700:
mips_cpu.cputype = CPU_R4700;
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 85767362e..c49755fe2 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -918,7 +918,9 @@ void __init trap_init(void)
case CPU_R3052:
case CPU_R3081:
case CPU_R3081E:
- case CPU_R3912:
+ case CPU_TX3912:
+ case CPU_TX3922:
+ case CPU_TX3927:
save_fp_context = _save_fp_context;
restore_fp_context = _restore_fp_context;
memcpy((void *)KSEG0, &except_vec0_r2300, 0x80);