Skip to content

Commit 65ce619

Browse files
clbrtsbogend
authored andcommitted
Revert "MIPS: Remove unused R4300 CPU support"
This reverts commit f9065b5. 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>
1 parent a2fa4ce commit 65ce619

File tree

9 files changed

+33
-1
lines changed

9 files changed

+33
-1
lines changed

arch/mips/Kconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1660,6 +1660,15 @@ config CPU_VR41XX
16601660
kernel built with this option will not run on any other type of
16611661
processor or vice versa.
16621662

1663+
config CPU_R4300
1664+
bool "R4300"
1665+
depends on SYS_HAS_CPU_R4300
1666+
select CPU_SUPPORTS_32BIT_KERNEL
1667+
select CPU_SUPPORTS_64BIT_KERNEL
1668+
select CPU_HAS_LOAD_STORE_LR
1669+
help
1670+
MIPS Technologies R4300-series processors.
1671+
16631672
config CPU_R4X00
16641673
bool "R4x00"
16651674
depends on SYS_HAS_CPU_R4X00
@@ -1994,6 +2003,9 @@ config SYS_HAS_CPU_TX39XX
19942003
config SYS_HAS_CPU_VR41XX
19952004
bool
19962005

2006+
config SYS_HAS_CPU_R4300
2007+
bool
2008+
19972009
config SYS_HAS_CPU_R4X00
19982010
bool
19992011

arch/mips/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ cflags-y += $(call as-option,-Wa$(comma)-mno-fix-loongson3-llsc,)
160160
#
161161
cflags-$(CONFIG_CPU_R3000) += -march=r3000
162162
cflags-$(CONFIG_CPU_TX39XX) += -march=r3900
163+
cflags-$(CONFIG_CPU_R4300) += -march=r4300 -Wa,--trap
163164
cflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap
164165
cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap
165166
cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap

arch/mips/include/asm/cpu-type.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,11 @@ static inline int __pure __get_cpu_type(const int cpu_type)
122122
case CPU_VR4181A:
123123
#endif
124124

125+
#ifdef CONFIG_SYS_HAS_CPU_R4300
126+
case CPU_R4300:
127+
case CPU_R4310:
128+
#endif
129+
125130
#ifdef CONFIG_SYS_HAS_CPU_R4X00
126131
case CPU_R4000PC:
127132
case CPU_R4000SC:

arch/mips/include/asm/cpu.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ enum cpu_type_enum {
302302
/*
303303
* R4000 class processors
304304
*/
305-
CPU_R4000PC, CPU_R4000SC, CPU_R4000MC, CPU_R4200,
305+
CPU_R4000PC, CPU_R4000SC, CPU_R4000MC, CPU_R4200, CPU_R4300, CPU_R4310,
306306
CPU_R4400PC, CPU_R4400SC, CPU_R4400MC, CPU_R4600, CPU_R4640, CPU_R4650,
307307
CPU_R4700, CPU_R5000, CPU_R5500, CPU_NEVADA, CPU_R10000,
308308
CPU_R12000, CPU_R14000, CPU_R16000, CPU_VR41XX, CPU_VR4111, CPU_VR4121,

arch/mips/include/asm/vermagic.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
#define MODULE_PROC_FAMILY "TX39XX "
2727
#elif defined CONFIG_CPU_VR41XX
2828
#define MODULE_PROC_FAMILY "VR41XX "
29+
#elif defined CONFIG_CPU_R4300
30+
#define MODULE_PROC_FAMILY "R4300 "
2931
#elif defined CONFIG_CPU_R4X00
3032
#define MODULE_PROC_FAMILY "R4X00 "
3133
#elif defined CONFIG_CPU_TX49XX

arch/mips/kernel/cpu-probe.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1154,6 +1154,15 @@ static inline void cpu_probe_legacy(struct cpuinfo_mips *c, unsigned int cpu)
11541154
break;
11551155
}
11561156
break;
1157+
case PRID_IMP_R4300:
1158+
c->cputype = CPU_R4300;
1159+
__cpu_name[cpu] = "R4300";
1160+
set_isa(c, MIPS_CPU_ISA_III);
1161+
c->fpu_msk31 |= FPU_CSR_CONDX;
1162+
c->options = R4K_OPTS | MIPS_CPU_FPU | MIPS_CPU_32FPR |
1163+
MIPS_CPU_LLSC;
1164+
c->tlbsize = 32;
1165+
break;
11571166
case PRID_IMP_R4600:
11581167
c->cputype = CPU_R4600;
11591168
__cpu_name[cpu] = "R4600";

arch/mips/kernel/idle.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ void __init check_wait(void)
151151
cpu_wait = r39xx_wait;
152152
break;
153153
case CPU_R4200:
154+
/* case CPU_R4300: */
154155
case CPU_R4600:
155156
case CPU_R4640:
156157
case CPU_R4650:

arch/mips/mm/c-r4k.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1164,6 +1164,7 @@ static void probe_pcache(void)
11641164
case CPU_R4400PC:
11651165
case CPU_R4400SC:
11661166
case CPU_R4400MC:
1167+
case CPU_R4300:
11671168
icache_size = 1 << (12 + ((config & CONF_IC) >> 9));
11681169
c->icache.linesz = 16 << ((config & CONF_IB) >> 5);
11691170
c->icache.ways = 1;

arch/mips/mm/tlbex.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,7 @@ void build_tlb_write_entry(u32 **p, struct uasm_label **l,
549549
tlbw(p);
550550
break;
551551

552+
case CPU_R4300:
552553
case CPU_5KC:
553554
case CPU_TX49XX:
554555
case CPU_PR4450:

0 commit comments

Comments
 (0)