aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-common/cache.S
diff options
context:
space:
mode:
authorRobin Getz <robin.getz@analog.com>2007-06-20 23:34:16 -0400
committerBryan Wu <bryan.wu@analog.com>2007-06-20 23:34:16 -0400
commit4bf3f3cbb6add01d3e6a18c73f594b73113b14f2 (patch)
treea80839f98a64052f4d004a5207da2731fe556908 /arch/blackfin/mach-common/cache.S
parent0864a4e201b1ea442f4c8b887418a29f67e24d30 (diff)
Blackfin arch: update ANOMALY handling
update lists for 533, 537, and add SSYNC workaround into assembly files. Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Diffstat (limited to 'arch/blackfin/mach-common/cache.S')
-rw-r--r--arch/blackfin/mach-common/cache.S20
1 files changed, 10 insertions, 10 deletions
diff --git a/arch/blackfin/mach-common/cache.S b/arch/blackfin/mach-common/cache.S
index 8bd2af1935bd..7063795eb7c0 100644
--- a/arch/blackfin/mach-common/cache.S
+++ b/arch/blackfin/mach-common/cache.S
@@ -123,14 +123,14 @@ ENTRY(_blackfin_icache_flush_range)
123 R2 = R0 & R2; 123 R2 = R0 & R2;
124 P0 = R2; 124 P0 = R2;
125 P1 = R1; 125 P1 = R1;
126 CSYNC; 126 CSYNC(R3);
127 IFLUSH [P0]; 127 IFLUSH [P0];
1281: 1281:
129 IFLUSH [P0++]; 129 IFLUSH [P0++];
130 CC = P0 < P1 (iu); 130 CC = P0 < P1 (iu);
131 IF CC JUMP 1b (bp); 131 IF CC JUMP 1b (bp);
132 IFLUSH [P0]; 132 IFLUSH [P0];
133 SSYNC; 133 SSYNC(R3);
134 RTS; 134 RTS;
135ENDPROC(_blackfin_icache_flush_range) 135ENDPROC(_blackfin_icache_flush_range)
136 136
@@ -148,7 +148,7 @@ ENTRY(_blackfin_icache_dcache_flush_range)
148 R2 = R0 & R2; 148 R2 = R0 & R2;
149 P0 = R2; 149 P0 = R2;
150 P1 = R1; 150 P1 = R1;
151 CSYNC; 151 CSYNC(R3);
152 IFLUSH [P0]; 152 IFLUSH [P0];
1531: 1531:
154 FLUSH [P0]; 154 FLUSH [P0];
@@ -157,7 +157,7 @@ ENTRY(_blackfin_icache_dcache_flush_range)
157 IF CC JUMP 1b (bp); 157 IF CC JUMP 1b (bp);
158 IFLUSH [P0]; 158 IFLUSH [P0];
159 FLUSH [P0]; 159 FLUSH [P0];
160 SSYNC; 160 SSYNC(R3);
161 RTS; 161 RTS;
162ENDPROC(_blackfin_icache_dcache_flush_range) 162ENDPROC(_blackfin_icache_dcache_flush_range)
163 163
@@ -174,7 +174,7 @@ ENTRY(_blackfin_dcache_invalidate_range)
174 R2 = R0 & R2; 174 R2 = R0 & R2;
175 P0 = R2; 175 P0 = R2;
176 P1 = R1; 176 P1 = R1;
177 CSYNC; 177 CSYNC(R3);
178 FLUSHINV[P0]; 178 FLUSHINV[P0];
1791: 1791:
180 FLUSHINV[P0++]; 180 FLUSHINV[P0++];
@@ -186,7 +186,7 @@ ENTRY(_blackfin_dcache_invalidate_range)
186 * so do one more. 186 * so do one more.
187 */ 187 */
188 FLUSHINV[P0]; 188 FLUSHINV[P0];
189 SSYNC; 189 SSYNC(R3);
190 RTS; 190 RTS;
191ENDPROC(_blackfin_dcache_invalidate_range) 191ENDPROC(_blackfin_dcache_invalidate_range)
192 192
@@ -235,7 +235,7 @@ ENTRY(_blackfin_dcache_flush_range)
235 R2 = R0 & R2; 235 R2 = R0 & R2;
236 P0 = R2; 236 P0 = R2;
237 P1 = R1; 237 P1 = R1;
238 CSYNC; 238 CSYNC(R3);
239 FLUSH[P0]; 239 FLUSH[P0];
2401: 2401:
241 FLUSH[P0++]; 241 FLUSH[P0++];
@@ -247,17 +247,17 @@ ENTRY(_blackfin_dcache_flush_range)
247 * one more. 247 * one more.
248 */ 248 */
249 FLUSH[P0]; 249 FLUSH[P0];
250 SSYNC; 250 SSYNC(R3);
251 RTS; 251 RTS;
252ENDPROC(_blackfin_dcache_flush_range) 252ENDPROC(_blackfin_dcache_flush_range)
253 253
254ENTRY(_blackfin_dflush_page) 254ENTRY(_blackfin_dflush_page)
255 P1 = 1 << (PAGE_SHIFT - L1_CACHE_SHIFT); 255 P1 = 1 << (PAGE_SHIFT - L1_CACHE_SHIFT);
256 P0 = R0; 256 P0 = R0;
257 CSYNC; 257 CSYNC(R3);
258 FLUSH[P0]; 258 FLUSH[P0];
259 LSETUP (.Lfl1, .Lfl1) LC0 = P1; 259 LSETUP (.Lfl1, .Lfl1) LC0 = P1;
260.Lfl1: FLUSH [P0++]; 260.Lfl1: FLUSH [P0++];
261 SSYNC; 261 SSYNC(R3);
262 RTS; 262 RTS;
263ENDPROC(_blackfin_dflush_page) 263ENDPROC(_blackfin_dflush_page)