diff options
Diffstat (limited to 'arch/blackfin/mach-common/cache.S')
-rw-r--r-- | arch/blackfin/mach-common/cache.S | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/arch/blackfin/mach-common/cache.S b/arch/blackfin/mach-common/cache.S index 0521b1588204..85f8c79b3c37 100644 --- a/arch/blackfin/mach-common/cache.S +++ b/arch/blackfin/mach-common/cache.S | |||
@@ -34,81 +34,6 @@ | |||
34 | #include <asm/cache.h> | 34 | #include <asm/cache.h> |
35 | 35 | ||
36 | .text | 36 | .text |
37 | .align 2 | ||
38 | ENTRY(_cache_invalidate) | ||
39 | |||
40 | /* | ||
41 | * Icache or DcacheA or DcacheB Invalidation | ||
42 | * or any combination thereof | ||
43 | * R0 has bits | ||
44 | * CPLB_ENABLE_ICACHE_P,CPLB_ENABLE_DCACHE_P,CPLB_ENABLE_DCACHE2_P | ||
45 | * set as required | ||
46 | */ | ||
47 | [--SP] = R7; | ||
48 | |||
49 | R7 = R0; | ||
50 | CC = BITTST(R7,CPLB_ENABLE_ICACHE_P); | ||
51 | IF !CC JUMP .Lno_icache; | ||
52 | [--SP] = RETS; | ||
53 | CALL _icache_invalidate; | ||
54 | RETS = [SP++]; | ||
55 | .Lno_icache: | ||
56 | CC = BITTST(R7,CPLB_ENABLE_DCACHE_P); | ||
57 | IF !CC JUMP .Lno_dcache_a; | ||
58 | R0 = 0; /* specifies bank A */ | ||
59 | [--SP] = RETS; | ||
60 | CALL _dcache_invalidate; | ||
61 | RETS = [SP++]; | ||
62 | .Lno_dcache_a: | ||
63 | CC = BITTST(R7,CPLB_ENABLE_DCACHE2_P); | ||
64 | IF !CC JUMP .Lno_dcache_b; | ||
65 | R0 = 0; | ||
66 | BITSET(R0, 23); /* specifies bank B */ | ||
67 | [--SP] = RETS; | ||
68 | CALL _dcache_invalidate; | ||
69 | RETS = [SP++]; | ||
70 | .Lno_dcache_b: | ||
71 | R7 = [SP++]; | ||
72 | RTS; | ||
73 | ENDPROC(_cache_invalidate) | ||
74 | |||
75 | /* Invalidate the Entire Instruction cache by | ||
76 | * disabling IMC bit | ||
77 | */ | ||
78 | ENTRY(_icache_invalidate) | ||
79 | ENTRY(_invalidate_entire_icache) | ||
80 | [--SP] = ( R7:5); | ||
81 | |||
82 | P0.L = LO(IMEM_CONTROL); | ||
83 | P0.H = HI(IMEM_CONTROL); | ||
84 | R7 = [P0]; | ||
85 | |||
86 | /* Clear the IMC bit , All valid bits in the instruction | ||
87 | * cache are set to the invalid state | ||
88 | */ | ||
89 | BITCLR(R7,IMC_P); | ||
90 | CLI R6; | ||
91 | SSYNC; /* SSYNC required before invalidating cache. */ | ||
92 | .align 8; | ||
93 | [P0] = R7; | ||
94 | SSYNC; | ||
95 | STI R6; | ||
96 | |||
97 | /* Configures the instruction cache agian */ | ||
98 | R6 = (IMC | ENICPLB); | ||
99 | R7 = R7 | R6; | ||
100 | |||
101 | CLI R6; | ||
102 | SSYNC; /* SSYNC required before writing to IMEM_CONTROL. */ | ||
103 | .align 8; | ||
104 | [P0] = R7; | ||
105 | SSYNC; | ||
106 | STI R6; | ||
107 | |||
108 | ( R7:5) = [SP++]; | ||
109 | RTS; | ||
110 | ENDPROC(_invalidate_entire_icache) | ||
111 | ENDPROC(_icache_invalidate) | ||
112 | 37 | ||
113 | /* | 38 | /* |
114 | * blackfin_cache_flush_range(start, end) | 39 | * blackfin_cache_flush_range(start, end) |
@@ -190,46 +115,6 @@ ENTRY(_blackfin_dcache_invalidate_range) | |||
190 | RTS; | 115 | RTS; |
191 | ENDPROC(_blackfin_dcache_invalidate_range) | 116 | ENDPROC(_blackfin_dcache_invalidate_range) |
192 | 117 | ||
193 | /* Invalidate the Entire Data cache by | ||
194 | * clearing DMC[1:0] bits | ||
195 | */ | ||
196 | ENTRY(_invalidate_entire_dcache) | ||
197 | ENTRY(_dcache_invalidate) | ||
198 | [--SP] = ( R7:6); | ||
199 | |||
200 | P0.L = LO(DMEM_CONTROL); | ||
201 | P0.H = HI(DMEM_CONTROL); | ||
202 | R7 = [P0]; | ||
203 | |||
204 | /* Clear the DMC[1:0] bits, All valid bits in the data | ||
205 | * cache are set to the invalid state | ||
206 | */ | ||
207 | BITCLR(R7,DMC0_P); | ||
208 | BITCLR(R7,DMC1_P); | ||
209 | CLI R6; | ||
210 | SSYNC; /* SSYNC required before writing to DMEM_CONTROL. */ | ||
211 | .align 8; | ||
212 | [P0] = R7; | ||
213 | SSYNC; | ||
214 | STI R6; | ||
215 | |||
216 | /* Configures the data cache again */ | ||
217 | |||
218 | R6 = DMEM_CNTR; | ||
219 | R7 = R7 | R6; | ||
220 | |||
221 | CLI R6; | ||
222 | SSYNC; /* SSYNC required before writing to DMEM_CONTROL. */ | ||
223 | .align 8; | ||
224 | [P0] = R7; | ||
225 | SSYNC; | ||
226 | STI R6; | ||
227 | |||
228 | ( R7:6) = [SP++]; | ||
229 | RTS; | ||
230 | ENDPROC(_dcache_invalidate) | ||
231 | ENDPROC(_invalidate_entire_dcache) | ||
232 | |||
233 | ENTRY(_blackfin_dcache_flush_range) | 118 | ENTRY(_blackfin_dcache_flush_range) |
234 | R2 = -L1_CACHE_BYTES; | 119 | R2 = -L1_CACHE_BYTES; |
235 | R2 = R0 & R2; | 120 | R2 = R0 & R2; |