diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2005-06-15 09:00:12 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2005-10-29 14:31:23 -0400 |
commit | 02416dcf5a94af34bcd28b4baf25bbbf399d8136 (patch) | |
tree | 1906c4266d4e28ef0b13d0579a145603dcbcff1b /include/asm-mips | |
parent | aac8aa7717a23a9bf8740dbfb59755b1d62f04bf (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/asm-mips')
-rw-r--r-- | include/asm-mips/cpu-features.h | 11 | ||||
-rw-r--r-- | include/asm-mips/mach-ja/cpu-feature-overrides.h | 6 | ||||
-rw-r--r-- | include/asm-mips/mach-ocelot3/cpu-feature-overrides.h | 6 | ||||
-rw-r--r-- | include/asm-mips/mach-yosemite/cpu-feature-overrides.h | 6 | ||||
-rw-r--r-- | include/asm-mips/war.h | 14 |
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 |