This source file includes following definitions.
- ldb_sun4m_bypass
- ldw_sun4m_bypass
- stb_sun4m_bypass
- stw_sun4m_bypass
1 #ifndef _SPARC_ASI_H
2 #define _SPARC_ASI_H
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <linux/config.h>
17
18 #define ASI_NULL1 0x0
19 #define ASI_NULL2 0x1
20
21
22 #define ASI_CONTROL 0x2
23 #define ASI_SEGMAP 0x3
24 #define ASI_PTE 0x4
25 #define ASI_HWFLUSHSEG 0x5
26 #define ASI_HWFLUSHPAGE 0x6
27 #define ASI_REGMAP 0x6
28 #define ASI_HWFLUSHCONTEXT 0x7
29
30
31 #define ASI_USERTXT 0x8
32 #define ASI_KERNELTXT 0x9
33 #define ASI_USERDATA 0xa
34 #define ASI_KERNELDATA 0xb
35
36
37
38 #define ASI_FLUSHSEG 0xc
39 #define ASI_FLUSHPG 0xd
40 #define ASI_FLUSHCTX 0xe
41
42
43
44
45
46
47
48
49
50
51 #define ASI_M_RES00 0x00
52 #define ASI_M_UNA01 0x01
53 #define ASI_M_MXCC 0x02
54 #define ASI_M_FLUSH_PROBE 0x03
55 #define ASI_M_MMUREGS 0x04
56 #define ASI_M_TLBDIAG 0x05
57 #define ASI_M_DIAGS 0x06
58 #define ASI_M_IODIAG 0x07
59 #define ASI_M_USERTXT 0x08
60 #define ASI_M_KERNELTXT 0x09
61 #define ASI_M_USERDATA 0x0A
62 #define ASI_M_KERNELDATA 0x0B
63 #define ASI_M_TXTC_TAG 0x0C
64 #define ASI_M_TXTC_DATA 0x0D
65 #define ASI_M_DATAC_TAG 0x0E
66 #define ASI_M_DATAC_DATA 0x0F
67
68
69
70
71
72
73
74 #define ASI_M_FLUSH_PAGE 0x10
75 #define ASI_M_FLUSH_SEG 0x11
76 #define ASI_M_FLUSH_REGION 0x12
77 #define ASI_M_FLUSH_CTX 0x13
78 #define ASI_M_FLUSH_USER 0x14
79
80
81 #define ASI_M_BCOPY 0x17
82
83
84 #define ASI_M_IFLUSH_PAGE 0x18
85 #define ASI_M_IFLUSH_SEG 0x19
86 #define ASI_M_IFLUSH_REGION 0x1A
87 #define ASI_M_IFLUSH_CTX 0x1B
88 #define ASI_M_IFLUSH_USER 0x1C
89
90
91 #define ASI_M_BFILL 0x1F
92
93
94
95
96
97
98 #define ASI_M_BYPASS 0x20
99 #define ASI_M_FBMEM 0x29
100 #define ASI_M_VMEUS 0x2A
101 #define ASI_M_VMEPS 0x2B
102 #define ASI_M_VMEUT 0x2C
103 #define ASI_M_VMEPT 0x2D
104 #define ASI_M_SBUS 0x2E
105 #define ASI_M_CTL 0x2F
106
107
108
109 #define ASI_M_FLUSH_IWHOLE 0x31
110
111 #define ASI_M_DCDR 0x39
112
113
114
115
116
117
118
119
120
121 #define ASI_V9_RESV0 0x00
122 #define ASI_V9_RESV1 0x01
123 #define ASI_V9_RESV2 0x02
124 #define ASI_V9_RESV3 0x03
125 #define ASI_V9_NUCLEUS 0x04
126 #define ASI_V9_NUCLEUSL 0x0C
127 #define ASI_V9_USER_PRIM 0x10
128 #define ASI_V9_USER_SEC 0x11
129
130 #define ASI_V9_MMUPASS 0x14
131 #define ASI_V9_IOPASS 0x15
132 #define ASI_V9_USER_PRIML 0x18
133 #define ASI_V9_USER_SECL 0x19
134 #define ASI_V9_MMUPASSL 0x1C
135 #define ASI_V9_IOPASSL 0x1D
136 #define ASI_V9_ATOMICQ 0x24
137 #define ASI_V9_ATOMICQL 0x2C
138 #define ASI_V9_LSTORECTL 0x45
139 #define ASI_V9_DCACHE_ENT 0x46
140 #define ASI_V9_DCACHE_TAG 0x47
141 #define ASI_V9_IRQDISPS 0x48
142 #define ASI_V9_IRQRECVS 0x49
143 #define ASI_V9_MMUREGS 0x4A
144 #define ASI_V9_ESTATE 0x4B
145 #define ASI_V9_ASYNC_FSR 0x4C
146 #define ASI_V9_ASYNC_FAR 0x4D
147
148 #define ASI_V9_ECACHE_DIAG 0x4E
149
150 #define ASI_V9_TXTMMU 0x50
151 #define ASI_V9_TXTMMU_D1 0x51
152 #define ASI_V9_TXTMMU_D2 0x52
153 #define ASI_V9_TXTMMU_TDI 0x54
154 #define ASI_V9_TXTMMU_TDA 0x55
155 #define ASI_V9_TXTMMU_TTR 0x56
156 #define ASI_V9_TXTMMU_TDM 0x57
157
158 #define ASI_V9_DATAMMU 0x58
159 #define ASI_V9_DATAMMU_D1 0x59
160 #define ASI_V9_DATAMMU_D2 0x5A
161 #define ASI_V9_DATAMMU_DD 0x5B
162 #define ASI_V9_DATAMMU_TDI 0x5C
163 #define ASI_V9_DATAMMU_TDA 0x5D
164 #define ASI_V9_DATAMMU_TTR 0x5E
165 #define ASI_V9_DATAMMU_TDM 0x5F
166
167 #define ASI_V9_ICACHE_D 0x66
168 #define ASI_V9_ICACHE_T 0x67
169 #define ASI_V9_ICACHE_DEC 0x6E
170 #define ASI_V9_ICACHE_NXT 0x6F
171
172 #define ASI_V9_HUH1 0x70
173 #define ASI_V9_HUH2 0x71
174
175 #define ASI_V9_ECACHE_ACC 0x76
176
177 #define ASI_V9_INTR_DISP 0x77
178 #define ASI_V9_HUH1L 0x78
179 #define ASI_V9_HUH2L 0x79
180 #define ASI_V9_INTR_RECV 0x7f
181
182 #define ASI_V9_PRIMARY 0x80
183 #define ASI_V9_SECONDARY 0x81
184 #define ASI_V9_PRIMARY_NF 0x82
185 #define ASI_V9_SECONDARY_NF 0x83
186
187 #define ASI_V9_PRIMARYL 0x80
188 #define ASI_V9_SECONDARYL 0x81
189 #define ASI_V9_PRIMARY_NFL 0x82
190 #define ASI_V9_SECONDARY_NFL 0x83
191
192 #define ASI_V9_XXX1 0xC0
193 #define ASI_V9_XXX2 0xC1
194 #define ASI_V9_XXX3 0xC2
195 #define ASI_V9_XXX4 0xC3
196 #define ASI_V9_XXX5 0xC4
197 #define ASI_V9_XXX6 0xC5
198 #define ASI_V9_XXX7 0xC8
199 #define ASI_V9_XXX8 0xC9
200 #define ASI_V9_XXX9 0xCA
201 #define ASI_V9_XXX10 0xCB
202 #define ASI_V9_XXX11 0xCC
203 #define ASI_V9_XXX12 0xCD
204
205 #define ASI_V9_XXX13 0xD0
206 #define ASI_V9_XXX14 0xD1
207 #define ASI_V9_XXX15 0xD2
208 #define ASI_V9_XXX16 0xD3
209 #define ASI_V9_XXX17 0xD8
210 #define ASI_V9_XXX18 0xD9
211 #define ASI_V9_XXX19 0xDA
212 #define ASI_V9_XXX20 0xDB
213
214 #define ASI_V9_XXX21 0xE0
215 #define ASI_V9_XXX22 0xE1
216 #define ASI_V9_XXX23 0xF0
217 #define ASI_V9_XXX24 0xF1
218 #define ASI_V9_XXX25 0xF8
219 #define ASI_V9_XXX26 0xF9
220
221 #ifndef __ASSEMBLY__
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238 extern __inline__ unsigned int
239 ldb_sun4m_bypass(unsigned int addr)
240 {
241 unsigned int retval;
242
243 __asm__("lduba [%2] %1, %0\n\t" :
244 "=r" (retval) :
245 "i" (ASI_M_BYPASS), "r" (addr));
246
247 return retval;
248 }
249
250 extern __inline__ unsigned int
251 ldw_sun4m_bypass(unsigned int addr)
252 {
253 unsigned int retval;
254
255 __asm__("lda [%2] %1, %0\n\t" :
256 "=r" (retval) :
257 "i" (ASI_M_BYPASS), "r" (addr));
258
259 return retval;
260 }
261
262 extern __inline__ void
263 stb_sun4m_bypass(unsigned char value, unsigned int addr)
264 {
265 __asm__("stba %0, [%2] %1\n\t" : :
266 "r" (value), "i" (ASI_M_BYPASS), "r" (addr) :
267 "memory");
268 }
269
270 extern __inline__ void
271 stw_sun4m_bypass(unsigned int value, unsigned int addr)
272 {
273 __asm__("sta %0, [%2] %1\n\t" : :
274 "r" (value), "i" (ASI_M_BYPASS), "r" (addr) :
275 "memory");
276 }
277
278 #endif
279
280
281 #endif