1
2
3
4
5
6
7#include <linux/linkage.h>
8#include <asm/hypervisor.h>
9
10
11
12
13
14
15
16
17
18
19ENTRY(pci_sun4v_iommu_map)
20 mov %o5, %g1
21 mov HV_FAST_PCI_IOMMU_MAP, %o5
22 ta HV_FAST_TRAP
23 brnz,pn %o0, 1f
24 sub %g0, %o0, %o0
25 mov %o1, %o0
261: retl
27 nop
28ENDPROC(pci_sun4v_iommu_map)
29
30
31
32
33
34
35
36ENTRY(pci_sun4v_iommu_demap)
37 mov HV_FAST_PCI_IOMMU_DEMAP, %o5
38 ta HV_FAST_TRAP
39 retl
40 mov %o1, %o0
41ENDPROC(pci_sun4v_iommu_demap)
42
43
44
45
46
47
48
49
50ENTRY(pci_sun4v_iommu_getmap)
51 mov %o2, %o4
52 mov HV_FAST_PCI_IOMMU_GETMAP, %o5
53 ta HV_FAST_TRAP
54 stx %o1, [%o4]
55 stx %o2, [%o3]
56 retl
57 mov %o0, %o0
58ENDPROC(pci_sun4v_iommu_getmap)
59
60
61
62
63
64
65
66
67
68
69
70ENTRY(pci_sun4v_config_get)
71 mov HV_FAST_PCI_CONFIG_GET, %o5
72 ta HV_FAST_TRAP
73 brnz,a,pn %o1, 1f
74 mov -1, %o2
751: retl
76 mov %o2, %o0
77ENDPROC(pci_sun4v_config_get)
78
79
80
81
82
83
84
85
86
87
88
89
90ENTRY(pci_sun4v_config_put)
91 mov HV_FAST_PCI_CONFIG_PUT, %o5
92 ta HV_FAST_TRAP
93 brnz,a,pn %o1, 1f
94 mov -1, %o1
951: retl
96 mov %o1, %o0
97ENDPROC(pci_sun4v_config_put)
98
99
100
101
102
103
104
105
106
107
108
109ENTRY(pci_sun4v_msiq_conf)
110 mov HV_FAST_PCI_MSIQ_CONF, %o5
111 ta HV_FAST_TRAP
112 retl
113 mov %o0, %o0
114ENDPROC(pci_sun4v_msiq_conf)
115
116
117
118
119
120
121
122
123ENTRY(pci_sun4v_msiq_info)
124 mov %o2, %o4
125 mov HV_FAST_PCI_MSIQ_INFO, %o5
126 ta HV_FAST_TRAP
127 stx %o1, [%o4]
128 stx %o2, [%o3]
129 retl
130 mov %o0, %o0
131ENDPROC(pci_sun4v_msiq_info)
132
133
134
135
136
137
138
139ENTRY(pci_sun4v_msiq_getvalid)
140 mov HV_FAST_PCI_MSIQ_GETVALID, %o5
141 ta HV_FAST_TRAP
142 stx %o1, [%o2]
143 retl
144 mov %o0, %o0
145ENDPROC(pci_sun4v_msiq_getvalid)
146
147
148
149
150
151
152
153ENTRY(pci_sun4v_msiq_setvalid)
154 mov HV_FAST_PCI_MSIQ_SETVALID, %o5
155 ta HV_FAST_TRAP
156 retl
157 mov %o0, %o0
158ENDPROC(pci_sun4v_msiq_setvalid)
159
160
161
162
163
164
165
166ENTRY(pci_sun4v_msiq_getstate)
167 mov HV_FAST_PCI_MSIQ_GETSTATE, %o5
168 ta HV_FAST_TRAP
169 stx %o1, [%o2]
170 retl
171 mov %o0, %o0
172ENDPROC(pci_sun4v_msiq_getstate)
173
174
175
176
177
178
179
180ENTRY(pci_sun4v_msiq_setstate)
181 mov HV_FAST_PCI_MSIQ_SETSTATE, %o5
182 ta HV_FAST_TRAP
183 retl
184 mov %o0, %o0
185ENDPROC(pci_sun4v_msiq_setstate)
186
187
188
189
190
191
192
193ENTRY(pci_sun4v_msiq_gethead)
194 mov HV_FAST_PCI_MSIQ_GETHEAD, %o5
195 ta HV_FAST_TRAP
196 stx %o1, [%o2]
197 retl
198 mov %o0, %o0
199ENDPROC(pci_sun4v_msiq_gethead)
200
201
202
203
204
205
206
207ENTRY(pci_sun4v_msiq_sethead)
208 mov HV_FAST_PCI_MSIQ_SETHEAD, %o5
209 ta HV_FAST_TRAP
210 retl
211 mov %o0, %o0
212ENDPROC(pci_sun4v_msiq_sethead)
213
214
215
216
217
218
219
220ENTRY(pci_sun4v_msiq_gettail)
221 mov HV_FAST_PCI_MSIQ_GETTAIL, %o5
222 ta HV_FAST_TRAP
223 stx %o1, [%o2]
224 retl
225 mov %o0, %o0
226ENDPROC(pci_sun4v_msiq_gettail)
227
228
229
230
231
232
233
234ENTRY(pci_sun4v_msi_getvalid)
235 mov HV_FAST_PCI_MSI_GETVALID, %o5
236 ta HV_FAST_TRAP
237 stx %o1, [%o2]
238 retl
239 mov %o0, %o0
240ENDPROC(pci_sun4v_msi_getvalid)
241
242
243
244
245
246
247
248ENTRY(pci_sun4v_msi_setvalid)
249 mov HV_FAST_PCI_MSI_SETVALID, %o5
250 ta HV_FAST_TRAP
251 retl
252 mov %o0, %o0
253ENDPROC(pci_sun4v_msi_setvalid)
254
255
256
257
258
259
260
261ENTRY(pci_sun4v_msi_getmsiq)
262 mov HV_FAST_PCI_MSI_GETMSIQ, %o5
263 ta HV_FAST_TRAP
264 stx %o1, [%o2]
265 retl
266 mov %o0, %o0
267ENDPROC(pci_sun4v_msi_getmsiq)
268
269
270
271
272
273
274
275
276ENTRY(pci_sun4v_msi_setmsiq)
277 mov HV_FAST_PCI_MSI_SETMSIQ, %o5
278 ta HV_FAST_TRAP
279 retl
280 mov %o0, %o0
281ENDPROC(pci_sun4v_msi_setmsiq)
282
283
284
285
286
287
288
289ENTRY(pci_sun4v_msi_getstate)
290 mov HV_FAST_PCI_MSI_GETSTATE, %o5
291 ta HV_FAST_TRAP
292 stx %o1, [%o2]
293 retl
294 mov %o0, %o0
295ENDPROC(pci_sun4v_msi_getstate)
296
297
298
299
300
301
302
303ENTRY(pci_sun4v_msi_setstate)
304 mov HV_FAST_PCI_MSI_SETSTATE, %o5
305 ta HV_FAST_TRAP
306 retl
307 mov %o0, %o0
308ENDPROC(pci_sun4v_msi_setstate)
309
310
311
312
313
314
315
316ENTRY(pci_sun4v_msg_getmsiq)
317 mov HV_FAST_PCI_MSG_GETMSIQ, %o5
318 ta HV_FAST_TRAP
319 stx %o1, [%o2]
320 retl
321 mov %o0, %o0
322ENDPROC(pci_sun4v_msg_getmsiq)
323
324
325
326
327
328
329
330ENTRY(pci_sun4v_msg_setmsiq)
331 mov HV_FAST_PCI_MSG_SETMSIQ, %o5
332 ta HV_FAST_TRAP
333 retl
334 mov %o0, %o0
335ENDPROC(pci_sun4v_msg_setmsiq)
336
337
338
339
340
341
342
343ENTRY(pci_sun4v_msg_getvalid)
344 mov HV_FAST_PCI_MSG_GETVALID, %o5
345 ta HV_FAST_TRAP
346 stx %o1, [%o2]
347 retl
348 mov %o0, %o0
349ENDPROC(pci_sun4v_msg_getvalid)
350
351
352
353
354
355
356
357ENTRY(pci_sun4v_msg_setvalid)
358 mov HV_FAST_PCI_MSG_SETVALID, %o5
359 ta HV_FAST_TRAP
360 retl
361 mov %o0, %o0
362ENDPROC(pci_sun4v_msg_setvalid)
363
364
365
366
367
368
369
370
371
372
373
374
375ENTRY(pci_sun4v_iotsb_conf)
376 mov %o5, %g1
377 mov HV_FAST_PCI_IOTSB_CONF, %o5
378 ta HV_FAST_TRAP
379 retl
380 stx %o1, [%g1]
381ENDPROC(pci_sun4v_iotsb_conf)
382
383
384
385
386
387
388
389
390ENTRY(pci_sun4v_iotsb_bind)
391 mov HV_FAST_PCI_IOTSB_BIND, %o5
392 ta HV_FAST_TRAP
393 retl
394 nop
395ENDPROC(pci_sun4v_iotsb_bind)
396
397
398
399
400
401
402
403
404
405
406
407
408ENTRY(pci_sun4v_iotsb_map)
409 mov %o5, %g1
410 mov HV_FAST_PCI_IOTSB_MAP, %o5
411 ta HV_FAST_TRAP
412 retl
413 stx %o1, [%g1]
414ENDPROC(pci_sun4v_iotsb_map)
415
416
417
418
419
420
421
422
423
424
425
426ENTRY(pci_sun4v_iotsb_demap)
427 mov HV_FAST_PCI_IOTSB_DEMAP, %o5
428 ta HV_FAST_TRAP
429 retl
430 stx %o1, [%o4]
431ENDPROC(pci_sun4v_iotsb_demap)
432