Commit 65ce6197 authored by Lauri Kasanen's avatar Lauri Kasanen Committed by Thomas Bogendoerfer

Revert "MIPS: Remove unused R4300 CPU support"

This reverts commit f9065b54.

We're adding Nintendo 64 support, so the VR4300 is no longer unused.
Signed-off-by: default avatarLauri Kasanen <cand@gmx.com>
Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
parent a2fa4ced
...@@ -1660,6 +1660,15 @@ config CPU_VR41XX ...@@ -1660,6 +1660,15 @@ config CPU_VR41XX
kernel built with this option will not run on any other type of kernel built with this option will not run on any other type of
processor or vice versa. processor or vice versa.
config CPU_R4300
bool "R4300"
depends on SYS_HAS_CPU_R4300
select CPU_SUPPORTS_32BIT_KERNEL
select CPU_SUPPORTS_64BIT_KERNEL
select CPU_HAS_LOAD_STORE_LR
help
MIPS Technologies R4300-series processors.
config CPU_R4X00 config CPU_R4X00
bool "R4x00" bool "R4x00"
depends on SYS_HAS_CPU_R4X00 depends on SYS_HAS_CPU_R4X00
...@@ -1994,6 +2003,9 @@ config SYS_HAS_CPU_TX39XX ...@@ -1994,6 +2003,9 @@ config SYS_HAS_CPU_TX39XX
config SYS_HAS_CPU_VR41XX config SYS_HAS_CPU_VR41XX
bool bool
config SYS_HAS_CPU_R4300
bool
config SYS_HAS_CPU_R4X00 config SYS_HAS_CPU_R4X00
bool bool
......
...@@ -160,6 +160,7 @@ cflags-y += $(call as-option,-Wa$(comma)-mno-fix-loongson3-llsc,) ...@@ -160,6 +160,7 @@ cflags-y += $(call as-option,-Wa$(comma)-mno-fix-loongson3-llsc,)
# #
cflags-$(CONFIG_CPU_R3000) += -march=r3000 cflags-$(CONFIG_CPU_R3000) += -march=r3000
cflags-$(CONFIG_CPU_TX39XX) += -march=r3900 cflags-$(CONFIG_CPU_TX39XX) += -march=r3900
cflags-$(CONFIG_CPU_R4300) += -march=r4300 -Wa,--trap
cflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap cflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap
cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap
cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap
......
...@@ -122,6 +122,11 @@ static inline int __pure __get_cpu_type(const int cpu_type) ...@@ -122,6 +122,11 @@ static inline int __pure __get_cpu_type(const int cpu_type)
case CPU_VR4181A: case CPU_VR4181A:
#endif #endif
#ifdef CONFIG_SYS_HAS_CPU_R4300
case CPU_R4300:
case CPU_R4310:
#endif
#ifdef CONFIG_SYS_HAS_CPU_R4X00 #ifdef CONFIG_SYS_HAS_CPU_R4X00
case CPU_R4000PC: case CPU_R4000PC:
case CPU_R4000SC: case CPU_R4000SC:
......
...@@ -302,7 +302,7 @@ enum cpu_type_enum { ...@@ -302,7 +302,7 @@ enum cpu_type_enum {
/* /*
* R4000 class processors * R4000 class processors
*/ */
CPU_R4000PC, CPU_R4000SC, CPU_R4000MC, CPU_R4200, CPU_R4000PC, CPU_R4000SC, CPU_R4000MC, CPU_R4200, CPU_R4300, CPU_R4310,
CPU_R4400PC, CPU_R4400SC, CPU_R4400MC, CPU_R4600, CPU_R4640, CPU_R4650, CPU_R4400PC, CPU_R4400SC, CPU_R4400MC, CPU_R4600, CPU_R4640, CPU_R4650,
CPU_R4700, CPU_R5000, CPU_R5500, CPU_NEVADA, CPU_R10000, CPU_R4700, CPU_R5000, CPU_R5500, CPU_NEVADA, CPU_R10000,
CPU_R12000, CPU_R14000, CPU_R16000, CPU_VR41XX, CPU_VR4111, CPU_VR4121, CPU_R12000, CPU_R14000, CPU_R16000, CPU_VR41XX, CPU_VR4111, CPU_VR4121,
......
...@@ -26,6 +26,8 @@ ...@@ -26,6 +26,8 @@
#define MODULE_PROC_FAMILY "TX39XX " #define MODULE_PROC_FAMILY "TX39XX "
#elif defined CONFIG_CPU_VR41XX #elif defined CONFIG_CPU_VR41XX
#define MODULE_PROC_FAMILY "VR41XX " #define MODULE_PROC_FAMILY "VR41XX "
#elif defined CONFIG_CPU_R4300
#define MODULE_PROC_FAMILY "R4300 "
#elif defined CONFIG_CPU_R4X00 #elif defined CONFIG_CPU_R4X00
#define MODULE_PROC_FAMILY "R4X00 " #define MODULE_PROC_FAMILY "R4X00 "
#elif defined CONFIG_CPU_TX49XX #elif defined CONFIG_CPU_TX49XX
......
...@@ -1154,6 +1154,15 @@ static inline void cpu_probe_legacy(struct cpuinfo_mips *c, unsigned int cpu) ...@@ -1154,6 +1154,15 @@ static inline void cpu_probe_legacy(struct cpuinfo_mips *c, unsigned int cpu)
break; break;
} }
break; break;
case PRID_IMP_R4300:
c->cputype = CPU_R4300;
__cpu_name[cpu] = "R4300";
set_isa(c, MIPS_CPU_ISA_III);
c->fpu_msk31 |= FPU_CSR_CONDX;
c->options = R4K_OPTS | MIPS_CPU_FPU | MIPS_CPU_32FPR |
MIPS_CPU_LLSC;
c->tlbsize = 32;
break;
case PRID_IMP_R4600: case PRID_IMP_R4600:
c->cputype = CPU_R4600; c->cputype = CPU_R4600;
__cpu_name[cpu] = "R4600"; __cpu_name[cpu] = "R4600";
......
...@@ -151,6 +151,7 @@ void __init check_wait(void) ...@@ -151,6 +151,7 @@ void __init check_wait(void)
cpu_wait = r39xx_wait; cpu_wait = r39xx_wait;
break; break;
case CPU_R4200: case CPU_R4200:
/* case CPU_R4300: */
case CPU_R4600: case CPU_R4600:
case CPU_R4640: case CPU_R4640:
case CPU_R4650: case CPU_R4650:
......
...@@ -1164,6 +1164,7 @@ static void probe_pcache(void) ...@@ -1164,6 +1164,7 @@ static void probe_pcache(void)
case CPU_R4400PC: case CPU_R4400PC:
case CPU_R4400SC: case CPU_R4400SC:
case CPU_R4400MC: case CPU_R4400MC:
case CPU_R4300:
icache_size = 1 << (12 + ((config & CONF_IC) >> 9)); icache_size = 1 << (12 + ((config & CONF_IC) >> 9));
c->icache.linesz = 16 << ((config & CONF_IB) >> 5); c->icache.linesz = 16 << ((config & CONF_IB) >> 5);
c->icache.ways = 1; c->icache.ways = 1;
......
...@@ -549,6 +549,7 @@ void build_tlb_write_entry(u32 **p, struct uasm_label **l, ...@@ -549,6 +549,7 @@ void build_tlb_write_entry(u32 **p, struct uasm_label **l,
tlbw(p); tlbw(p);
break; break;
case CPU_R4300:
case CPU_5KC: case CPU_5KC:
case CPU_TX49XX: case CPU_TX49XX:
case CPU_PR4450: case CPU_PR4450:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment