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
19 ENTRY(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
26 1: retl
27 nop
28 ENDPROC(pci_sun4v_iommu_map)
29
30
31
32
33
34
35
36 ENTRY(pci_sun4v_iommu_demap)
37 mov HV_FAST_PCI_IOMMU_DEMAP, %o5
38 ta HV_FAST_TRAP
39 retl
40 mov %o1, %o0
41 ENDPROC(pci_sun4v_iommu_demap)
42
43
44
45
46
47
48
49
50 ENTRY(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
58 ENDPROC(pci_sun4v_iommu_getmap)
59
60
61
62
63
64
65
66
67
68
69
70 ENTRY(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
75 1: retl
76 mov %o2, %o0
77 ENDPROC(pci_sun4v_config_get)
78
79
80
81
82
83
84
85
86
87
88
89
90 ENTRY(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
95 1: retl
96 mov %o1, %o0
97 ENDPROC(pci_sun4v_config_put)
98
99
100
101
102
103
104
105
106
107
108
109 ENTRY(pci_sun4v_msiq_conf)
110 mov HV_FAST_PCI_MSIQ_CONF, %o5
111 ta HV_FAST_TRAP
112 retl
113 mov %o0, %o0
114 ENDPROC(pci_sun4v_msiq_conf)
115
116
117
118
119
120
121
122
123 ENTRY(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
131 ENDPROC(pci_sun4v_msiq_info)
132
133
134
135
136
137
138
139 ENTRY(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
145 ENDPROC(pci_sun4v_msiq_getvalid)
146
147
148
149
150
151
152
153 ENTRY(pci_sun4v_msiq_setvalid)
154 mov HV_FAST_PCI_MSIQ_SETVALID, %o5
155 ta HV_FAST_TRAP
156 retl
157 mov %o0, %o0
158 ENDPROC(pci_sun4v_msiq_setvalid)
159
160
161
162
163
164
165
166 ENTRY(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
172 ENDPROC(pci_sun4v_msiq_getstate)
173
174
175
176
177
178
179
180 ENTRY(pci_sun4v_msiq_setstate)
181 mov HV_FAST_PCI_MSIQ_SETSTATE, %o5
182 ta HV_FAST_TRAP
183 retl
184 mov %o0, %o0
185 ENDPROC(pci_sun4v_msiq_setstate)
186
187
188
189
190
191
192
193 ENTRY(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
199 ENDPROC(pci_sun4v_msiq_gethead)
200
201
202
203
204
205
206
207 ENTRY(pci_sun4v_msiq_sethead)
208 mov HV_FAST_PCI_MSIQ_SETHEAD, %o5
209 ta HV_FAST_TRAP
210 retl
211 mov %o0, %o0
212 ENDPROC(pci_sun4v_msiq_sethead)
213
214
215
216
217
218
219
220 ENTRY(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
226 ENDPROC(pci_sun4v_msiq_gettail)
227
228
229
230
231
232
233
234 ENTRY(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
240 ENDPROC(pci_sun4v_msi_getvalid)
241
242
243
244
245
246
247
248 ENTRY(pci_sun4v_msi_setvalid)
249 mov HV_FAST_PCI_MSI_SETVALID, %o5
250 ta HV_FAST_TRAP
251 retl
252 mov %o0, %o0
253 ENDPROC(pci_sun4v_msi_setvalid)
254
255
256
257
258
259
260
261 ENTRY(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
267 ENDPROC(pci_sun4v_msi_getmsiq)
268
269
270
271
272
273
274
275
276 ENTRY(pci_sun4v_msi_setmsiq)
277 mov HV_FAST_PCI_MSI_SETMSIQ, %o5
278 ta HV_FAST_TRAP
279 retl
280 mov %o0, %o0
281 ENDPROC(pci_sun4v_msi_setmsiq)
282
283
284
285
286
287
288
289 ENTRY(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
295 ENDPROC(pci_sun4v_msi_getstate)
296
297
298
299
300
301
302
303 ENTRY(pci_sun4v_msi_setstate)
304 mov HV_FAST_PCI_MSI_SETSTATE, %o5
305 ta HV_FAST_TRAP
306 retl
307 mov %o0, %o0
308 ENDPROC(pci_sun4v_msi_setstate)
309
310
311
312
313
314
315
316 ENTRY(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
322 ENDPROC(pci_sun4v_msg_getmsiq)
323
324
325
326
327
328
329
330 ENTRY(pci_sun4v_msg_setmsiq)
331 mov HV_FAST_PCI_MSG_SETMSIQ, %o5
332 ta HV_FAST_TRAP
333 retl
334 mov %o0, %o0
335 ENDPROC(pci_sun4v_msg_setmsiq)
336
337
338
339
340
341
342
343 ENTRY(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
349 ENDPROC(pci_sun4v_msg_getvalid)
350
351
352
353
354
355
356
357 ENTRY(pci_sun4v_msg_setvalid)
358 mov HV_FAST_PCI_MSG_SETVALID, %o5
359 ta HV_FAST_TRAP
360 retl
361 mov %o0, %o0
362 ENDPROC(pci_sun4v_msg_setvalid)
363
364
365
366
367
368
369
370
371
372
373
374
375 ENTRY(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]
381 ENDPROC(pci_sun4v_iotsb_conf)
382
383
384
385
386
387
388
389
390 ENTRY(pci_sun4v_iotsb_bind)
391 mov HV_FAST_PCI_IOTSB_BIND, %o5
392 ta HV_FAST_TRAP
393 retl
394 nop
395 ENDPROC(pci_sun4v_iotsb_bind)
396
397
398
399
400
401
402
403
404
405
406
407
408 ENTRY(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]
414 ENDPROC(pci_sun4v_iotsb_map)
415
416
417
418
419
420
421
422
423
424
425
426 ENTRY(pci_sun4v_iotsb_demap)
427 mov HV_FAST_PCI_IOTSB_DEMAP, %o5
428 ta HV_FAST_TRAP
429 retl
430 stx %o1, [%o4]
431 ENDPROC(pci_sun4v_iotsb_demap)