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