Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: Add support for interAptiv cores

The interAptiv is a power-efficient multi-core microprocessor
for use in system-on-chip (SoC) applications. The interAptiv combines
a multi-threading pipeline with a coherence manager to deliver improved
computational throughput and power efficiency. The interAptiv can
contain one to four MIPS32R3 interAptiv cores, system level
coherence manager with L2 cache, optional coherent I/O port,
and optional floating point unit.

Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com>
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Signed-off-by: John Crispin <blogic@openwrt.org>
Patchwork: http://patchwork.linux-mips.org/patch/6163/

authored by

Leonid Yegoshin and committed by
Ralf Baechle
26ab96df 0ce7d58e

+12 -1
+1
arch/mips/include/asm/cpu-type.h
··· 44 44 case CPU_74K: 45 45 case CPU_M14KC: 46 46 case CPU_M14KEC: 47 + case CPU_INTERAPTIV: 47 48 case CPU_PROAPTIV: 48 49 #endif 49 50
+1 -1
arch/mips/include/asm/cpu.h
··· 295 295 CPU_4KC, CPU_4KEC, CPU_4KSC, CPU_24K, CPU_34K, CPU_1004K, CPU_74K, 296 296 CPU_ALCHEMY, CPU_PR4450, CPU_BMIPS32, CPU_BMIPS3300, CPU_BMIPS4350, 297 297 CPU_BMIPS4380, CPU_BMIPS5000, CPU_JZRISC, CPU_LOONGSON1, CPU_M14KC, 298 - CPU_M14KEC, CPU_PROAPTIV, 298 + CPU_M14KEC, CPU_INTERAPTIV, CPU_PROAPTIV, 299 299 300 300 /* 301 301 * MIPS64 class processors
+1
arch/mips/kernel/idle.c
··· 184 184 case CPU_24K: 185 185 case CPU_34K: 186 186 case CPU_1004K: 187 + case CPU_INTERAPTIV: 187 188 case CPU_PROAPTIV: 188 189 cpu_wait = r4k_wait; 189 190 if (read_c0_config7() & MIPS_CONF7_WII)
+1
arch/mips/kernel/spram.c
··· 206 206 case CPU_34K: 207 207 case CPU_74K: 208 208 case CPU_1004K: 209 + case CPU_INTERAPTIV: 209 210 case CPU_PROAPTIV: 210 211 config0 = read_c0_config(); 211 212 /* FIXME: addresses are Malta specific */
+1
arch/mips/kernel/traps.c
··· 1337 1337 case CPU_34K: 1338 1338 case CPU_74K: 1339 1339 case CPU_1004K: 1340 + case CPU_INTERAPTIV: 1340 1341 case CPU_PROAPTIV: 1341 1342 { 1342 1343 #define ERRCTL_PE 0x80000000
+1
arch/mips/mm/c-r4k.c
··· 1106 1106 case CPU_34K: 1107 1107 case CPU_74K: 1108 1108 case CPU_1004K: 1109 + case CPU_INTERAPTIV: 1109 1110 case CPU_PROAPTIV: 1110 1111 if (current_cpu_type() == CPU_74K) 1111 1112 alias_74k_erratum(c);
+1
arch/mips/mm/sc-mips.c
··· 76 76 case CPU_34K: 77 77 case CPU_74K: 78 78 case CPU_1004K: 79 + case CPU_INTERAPTIV: 79 80 case CPU_PROAPTIV: 80 81 case CPU_BMIPS5000: 81 82 if (config2 & (1 << 12))
+1
arch/mips/oprofile/common.c
··· 86 86 case CPU_34K: 87 87 case CPU_1004K: 88 88 case CPU_74K: 89 + case CPU_INTERAPTIV: 89 90 case CPU_PROAPTIV: 90 91 case CPU_LOONGSON1: 91 92 case CPU_SB1:
+4
arch/mips/oprofile/op_model_mipsxx.c
··· 376 376 op_model_mipsxx_ops.cpu_type = "mips/74K"; 377 377 break; 378 378 379 + case CPU_INTERAPTIV: 380 + op_model_mipsxx_ops.cpu_type = "mips/interAptiv"; 381 + break; 382 + 379 383 case CPU_PROAPTIV: 380 384 op_model_mipsxx_ops.cpu_type = "mips/proAptiv"; 381 385 break;