summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJayachandran C2013-01-14 16:11:56 +0100
committerJohn Crispin2013-02-17 00:15:20 +0100
commita69ba6293d11b7dfd395a742f3449d6ddda8ecad (patch)
tree3a075124416c51c5548e93fa6e2803e22682d021
parentMIPS: PCI: Byteswap not needed in little-endian mode (diff)
downloadkernel-qcow2-linux-a69ba6293d11b7dfd395a742f3449d6ddda8ecad.tar.gz
kernel-qcow2-linux-a69ba6293d11b7dfd395a742f3449d6ddda8ecad.tar.xz
kernel-qcow2-linux-a69ba6293d11b7dfd395a742f3449d6ddda8ecad.zip
MIPS: Netlogic: Split XLP L1 i-cache among threads
Since we now use r4k cache code for Netlogic XLP, it is better to split L1 icache among the active threads, so that threads won't step on each other while flushing icache. The L1 dcache is already split among the threads in the core. Signed-off-by: Jayachandran C <jchandra@broadcom.com> Patchwork: http://patchwork.linux-mips.org/patch/4787/ Signed-off-by: John Crispin <blogic@openwrt.org>
-rw-r--r--arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h2
-rw-r--r--arch/mips/netlogic/common/smpboot.S6
2 files changed, 8 insertions, 0 deletions
diff --git a/arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h b/arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h
index 7b63a6b722a0..6d2e58a9a542 100644
--- a/arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h
+++ b/arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h
@@ -46,6 +46,8 @@
#define CPU_BLOCKID_FPU 9
#define CPU_BLOCKID_MAP 10
+#define ICU_DEFEATURE 0x100
+
#define LSU_DEFEATURE 0x304
#define LSU_DEBUG_ADDR 0x305
#define LSU_DEBUG_DATA0 0x306
diff --git a/arch/mips/netlogic/common/smpboot.S b/arch/mips/netlogic/common/smpboot.S
index a0b74874bebe..d772a87fe846 100644
--- a/arch/mips/netlogic/common/smpboot.S
+++ b/arch/mips/netlogic/common/smpboot.S
@@ -69,6 +69,12 @@
#endif
mtcr t1, t0
+ li t0, ICU_DEFEATURE
+ mfcr t1, t0
+ ori t1, 0x1000 /* Enable Icache partitioning */
+ mtcr t1, t0
+
+
#ifdef XLP_AX_WORKAROUND
li t0, SCHED_DEFEATURE
lui t1, 0x0100 /* Disable BRU accepting ALU ops */