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