diff options
Diffstat (limited to 'include/asm-sparc64/spitfire.h')
-rw-r--r-- | include/asm-sparc64/spitfire.h | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/include/asm-sparc64/spitfire.h b/include/asm-sparc64/spitfire.h index 1aa932773af8..962638c9d122 100644 --- a/include/asm-sparc64/spitfire.h +++ b/include/asm-sparc64/spitfire.h | |||
@@ -56,52 +56,6 @@ extern void cheetah_enable_pcache(void); | |||
56 | SPITFIRE_HIGHEST_LOCKED_TLBENT : \ | 56 | SPITFIRE_HIGHEST_LOCKED_TLBENT : \ |
57 | CHEETAH_HIGHEST_LOCKED_TLBENT) | 57 | CHEETAH_HIGHEST_LOCKED_TLBENT) |
58 | 58 | ||
59 | static __inline__ unsigned long spitfire_get_isfsr(void) | ||
60 | { | ||
61 | unsigned long ret; | ||
62 | |||
63 | __asm__ __volatile__("ldxa [%1] %2, %0" | ||
64 | : "=r" (ret) | ||
65 | : "r" (TLB_SFSR), "i" (ASI_IMMU)); | ||
66 | return ret; | ||
67 | } | ||
68 | |||
69 | static __inline__ unsigned long spitfire_get_dsfsr(void) | ||
70 | { | ||
71 | unsigned long ret; | ||
72 | |||
73 | __asm__ __volatile__("ldxa [%1] %2, %0" | ||
74 | : "=r" (ret) | ||
75 | : "r" (TLB_SFSR), "i" (ASI_DMMU)); | ||
76 | return ret; | ||
77 | } | ||
78 | |||
79 | static __inline__ unsigned long spitfire_get_sfar(void) | ||
80 | { | ||
81 | unsigned long ret; | ||
82 | |||
83 | __asm__ __volatile__("ldxa [%1] %2, %0" | ||
84 | : "=r" (ret) | ||
85 | : "r" (DMMU_SFAR), "i" (ASI_DMMU)); | ||
86 | return ret; | ||
87 | } | ||
88 | |||
89 | static __inline__ void spitfire_put_isfsr(unsigned long sfsr) | ||
90 | { | ||
91 | __asm__ __volatile__("stxa %0, [%1] %2\n\t" | ||
92 | "membar #Sync" | ||
93 | : /* no outputs */ | ||
94 | : "r" (sfsr), "r" (TLB_SFSR), "i" (ASI_IMMU)); | ||
95 | } | ||
96 | |||
97 | static __inline__ void spitfire_put_dsfsr(unsigned long sfsr) | ||
98 | { | ||
99 | __asm__ __volatile__("stxa %0, [%1] %2\n\t" | ||
100 | "membar #Sync" | ||
101 | : /* no outputs */ | ||
102 | : "r" (sfsr), "r" (TLB_SFSR), "i" (ASI_DMMU)); | ||
103 | } | ||
104 | |||
105 | /* The data cache is write through, so this just invalidates the | 59 | /* The data cache is write through, so this just invalidates the |
106 | * specified line. | 60 | * specified line. |
107 | */ | 61 | */ |
@@ -193,90 +147,6 @@ static __inline__ void spitfire_put_itlb_data(int entry, unsigned long data) | |||
193 | "i" (ASI_ITLB_DATA_ACCESS)); | 147 | "i" (ASI_ITLB_DATA_ACCESS)); |
194 | } | 148 | } |
195 | 149 | ||
196 | /* Spitfire hardware assisted TLB flushes. */ | ||
197 | |||
198 | /* Context level flushes. */ | ||
199 | static __inline__ void spitfire_flush_dtlb_primary_context(void) | ||
200 | { | ||
201 | __asm__ __volatile__("stxa %%g0, [%0] %1\n\t" | ||
202 | "membar #Sync" | ||
203 | : /* No outputs */ | ||
204 | : "r" (0x40), "i" (ASI_DMMU_DEMAP)); | ||
205 | } | ||
206 | |||
207 | static __inline__ void spitfire_flush_itlb_primary_context(void) | ||
208 | { | ||
209 | __asm__ __volatile__("stxa %%g0, [%0] %1\n\t" | ||
210 | "membar #Sync" | ||
211 | : /* No outputs */ | ||
212 | : "r" (0x40), "i" (ASI_IMMU_DEMAP)); | ||
213 | } | ||
214 | |||
215 | static __inline__ void spitfire_flush_dtlb_secondary_context(void) | ||
216 | { | ||
217 | __asm__ __volatile__("stxa %%g0, [%0] %1\n\t" | ||
218 | "membar #Sync" | ||
219 | : /* No outputs */ | ||
220 | : "r" (0x50), "i" (ASI_DMMU_DEMAP)); | ||
221 | } | ||
222 | |||
223 | static __inline__ void spitfire_flush_itlb_secondary_context(void) | ||
224 | { | ||
225 | __asm__ __volatile__("stxa %%g0, [%0] %1\n\t" | ||
226 | "membar #Sync" | ||
227 | : /* No outputs */ | ||
228 | : "r" (0x50), "i" (ASI_IMMU_DEMAP)); | ||
229 | } | ||
230 | |||
231 | static __inline__ void spitfire_flush_dtlb_nucleus_context(void) | ||
232 | { | ||
233 | __asm__ __volatile__("stxa %%g0, [%0] %1\n\t" | ||
234 | "membar #Sync" | ||
235 | : /* No outputs */ | ||
236 | : "r" (0x60), "i" (ASI_DMMU_DEMAP)); | ||
237 | } | ||
238 | |||
239 | static __inline__ void spitfire_flush_itlb_nucleus_context(void) | ||
240 | { | ||
241 | __asm__ __volatile__("stxa %%g0, [%0] %1\n\t" | ||
242 | "membar #Sync" | ||
243 | : /* No outputs */ | ||
244 | : "r" (0x60), "i" (ASI_IMMU_DEMAP)); | ||
245 | } | ||
246 | |||
247 | /* Page level flushes. */ | ||
248 | static __inline__ void spitfire_flush_dtlb_primary_page(unsigned long page) | ||
249 | { | ||
250 | __asm__ __volatile__("stxa %%g0, [%0] %1\n\t" | ||
251 | "membar #Sync" | ||
252 | : /* No outputs */ | ||
253 | : "r" (page), "i" (ASI_DMMU_DEMAP)); | ||
254 | } | ||
255 | |||
256 | static __inline__ void spitfire_flush_itlb_primary_page(unsigned long page) | ||
257 | { | ||
258 | __asm__ __volatile__("stxa %%g0, [%0] %1\n\t" | ||
259 | "membar #Sync" | ||
260 | : /* No outputs */ | ||
261 | : "r" (page), "i" (ASI_IMMU_DEMAP)); | ||
262 | } | ||
263 | |||
264 | static __inline__ void spitfire_flush_dtlb_secondary_page(unsigned long page) | ||
265 | { | ||
266 | __asm__ __volatile__("stxa %%g0, [%0] %1\n\t" | ||
267 | "membar #Sync" | ||
268 | : /* No outputs */ | ||
269 | : "r" (page | 0x10), "i" (ASI_DMMU_DEMAP)); | ||
270 | } | ||
271 | |||
272 | static __inline__ void spitfire_flush_itlb_secondary_page(unsigned long page) | ||
273 | { | ||
274 | __asm__ __volatile__("stxa %%g0, [%0] %1\n\t" | ||
275 | "membar #Sync" | ||
276 | : /* No outputs */ | ||
277 | : "r" (page | 0x10), "i" (ASI_IMMU_DEMAP)); | ||
278 | } | ||
279 | |||
280 | static __inline__ void spitfire_flush_dtlb_nucleus_page(unsigned long page) | 150 | static __inline__ void spitfire_flush_dtlb_nucleus_page(unsigned long page) |
281 | { | 151 | { |
282 | __asm__ __volatile__("stxa %%g0, [%0] %1\n\t" | 152 | __asm__ __volatile__("stxa %%g0, [%0] %1\n\t" |