Revert "MIPS: Remove unused R4300 CPU support"

This reverts commit f9065b54d4.

We're adding Nintendo 64 support, so the VR4300 is no longer unused.

Signed-off-by: Lauri Kasanen <cand@gmx.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
This commit is contained in:
Lauri Kasanen 2021-01-13 17:10:07 +02:00 committed by Thomas Bogendoerfer
parent a2fa4cede9
commit 65ce6197ed
9 changed files with 33 additions and 1 deletions

View file

@ -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
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

View file

@ -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

View file

@ -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:

View file

@ -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,

View file

@ -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

View file

@ -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";

View file

@ -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:

View file

@ -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;

View file

@ -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: