aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2005-06-15 09:00:12 -0400
committerRalf Baechle <ralf@linux-mips.org>2005-10-29 14:31:23 -0400
commit02416dcf5a94af34bcd28b4baf25bbbf399d8136 (patch)
tree1906c4266d4e28ef0b13d0579a145603dcbcff1b /include
parentaac8aa7717a23a9bf8740dbfb59755b1d62f04bf (diff)
Redo RM9000 workaround which along with other DSP ASE changes was
causing some headache for debuggers knowing about signal frames. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-mips/cpu-features.h11
-rw-r--r--include/asm-mips/mach-ja/cpu-feature-overrides.h6
-rw-r--r--include/asm-mips/mach-ocelot3/cpu-feature-overrides.h6
-rw-r--r--include/asm-mips/mach-yosemite/cpu-feature-overrides.h6
-rw-r--r--include/asm-mips/war.h14
5 files changed, 14 insertions, 29 deletions
diff --git a/include/asm-mips/cpu-features.h b/include/asm-mips/cpu-features.h
index 4930824a43aa..bb2212cf460a 100644
--- a/include/asm-mips/cpu-features.h
+++ b/include/asm-mips/cpu-features.h
@@ -109,17 +109,6 @@
109#define cpu_has_dsp (cpu_data[0].ases & MIPS_ASE_DSP) 109#define cpu_has_dsp (cpu_data[0].ases & MIPS_ASE_DSP)
110#endif 110#endif
111 111
112/*
113 * Certain CPUs may throw bizarre exceptions if not the whole cacheline
114 * contains valid instructions. For these we ensure proper alignment of
115 * signal trampolines and pad them to the size of a full cache lines with
116 * nops. This is also used in structure definitions so can't be a test macro
117 * like the others.
118 */
119#ifndef PLAT_TRAMPOLINE_STUFF_LINE
120#define PLAT_TRAMPOLINE_STUFF_LINE 0UL
121#endif
122
123#ifdef CONFIG_32BIT 112#ifdef CONFIG_32BIT
124# ifndef cpu_has_nofpuex 113# ifndef cpu_has_nofpuex
125# define cpu_has_nofpuex (cpu_data[0].options & MIPS_CPU_NOFPUEX) 114# define cpu_has_nofpuex (cpu_data[0].options & MIPS_CPU_NOFPUEX)
diff --git a/include/asm-mips/mach-ja/cpu-feature-overrides.h b/include/asm-mips/mach-ja/cpu-feature-overrides.h
index 310609c0f4ad..a0fde405d4c4 100644
--- a/include/asm-mips/mach-ja/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-ja/cpu-feature-overrides.h
@@ -37,10 +37,4 @@
37#define cpu_icache_line_size() 32 37#define cpu_icache_line_size() 32
38#define cpu_scache_line_size() 32 38#define cpu_scache_line_size() 32
39 39
40/*
41 * On the RM9000 we need to ensure that I-cache lines being fetches only
42 * contain valid instructions are funny things will happen.
43 */
44#define PLAT_TRAMPOLINE_STUFF_LINE 32UL
45
46#endif /* __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H */ 40#endif /* __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H */
diff --git a/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h b/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h
index 1812fc0408d3..825c5f674dfc 100644
--- a/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h
@@ -40,10 +40,4 @@
40#define cpu_icache_line_size() 32 40#define cpu_icache_line_size() 32
41#define cpu_scache_line_size() 32 41#define cpu_scache_line_size() 32
42 42
43/*
44 * On the RM9000 we need to ensure that I-cache lines being fetches only
45 * contain valid instructions are funny things will happen.
46 */
47#define PLAT_TRAMPOLINE_STUFF_LINE 32UL
48
49#endif /* __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H */ 43#endif /* __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H */
diff --git a/include/asm-mips/mach-yosemite/cpu-feature-overrides.h b/include/asm-mips/mach-yosemite/cpu-feature-overrides.h
index 63e94342e087..463d051f4683 100644
--- a/include/asm-mips/mach-yosemite/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-yosemite/cpu-feature-overrides.h
@@ -37,10 +37,4 @@
37#define cpu_icache_line_size() 32 37#define cpu_icache_line_size() 32
38#define cpu_scache_line_size() 32 38#define cpu_scache_line_size() 32
39 39
40/*
41 * On the RM9000 we need to ensure that I-cache lines being fetches only
42 * contain valid instructions are funny things will happen.
43 */
44#define PLAT_TRAMPOLINE_STUFF_LINE 32UL
45
46#endif /* __ASM_MACH_YOSEMITE_CPU_FEATURE_OVERRIDES_H */ 40#endif /* __ASM_MACH_YOSEMITE_CPU_FEATURE_OVERRIDES_H */
diff --git a/include/asm-mips/war.h b/include/asm-mips/war.h
index 04ee53b34c2e..ad374bd3f130 100644
--- a/include/asm-mips/war.h
+++ b/include/asm-mips/war.h
@@ -177,6 +177,17 @@
177#endif 177#endif
178 178
179/* 179/*
180 * The RM9000 has a bug (though PMC-Sierra opposes it being called that)
181 * where invalid instructions in the same I-cache line worth of instructions
182 * being fetched may case spurious exceptions.
183 */
184#if defined(CONFIG_MOMENCO_JAGUAR_ATX) || defined(CONFIG_MOMENCO_OCELOT_3) || \
185 defined(CONFIG_PMC_YOSEMITE)
186#define ICACHE_REFILLS_WORKAROUND_WAR 1
187#endif
188
189
190/*
180 * ON the R10000 upto version 2.6 (not sure about 2.7) there is a bug that 191 * ON the R10000 upto version 2.6 (not sure about 2.7) there is a bug that
181 * may cause ll / sc and lld / scd sequences to execute non-atomically. 192 * may cause ll / sc and lld / scd sequences to execute non-atomically.
182 */ 193 */
@@ -187,6 +198,9 @@
187/* 198/*
188 * Workarounds default to off 199 * Workarounds default to off
189 */ 200 */
201#ifndef ICACHE_REFILLS_WORKAROUND_WAR
202#define ICACHE_REFILLS_WORKAROUND_WAR 0
203#endif
190#ifndef R4600_V1_INDEX_ICACHEOP_WAR 204#ifndef R4600_V1_INDEX_ICACHEOP_WAR
191#define R4600_V1_INDEX_ICACHEOP_WAR 0 205#define R4600_V1_INDEX_ICACHEOP_WAR 0
192#endif 206#endif