1 /* pci_sun4v_asm: Hypervisor calls for PCI support.
3 * Copyright (C) 2006 David S. Miller <davem@davemloft.net>
6 #include <asm/hypervisor.h>
12 * %o4: io_page_list phys address
14 * returns %o0: -status if status was non-zero, else
15 * %o0: num pages mapped
17 .globl pci_sun4v_iommu_map
20 mov HV_FAST_PCI_IOMMU_MAP, %o5
32 * returns %o0: num ttes demapped
34 .globl pci_sun4v_iommu_demap
35 pci_sun4v_iommu_demap:
36 mov HV_FAST_PCI_IOMMU_DEMAP, %o5
48 .globl pci_sun4v_iommu_getmap
49 pci_sun4v_iommu_getmap:
51 mov HV_FAST_PCI_IOMMU_GETMAP, %o5
60 * %o2: pci_config_offset
65 * If there is an error, the data will be returned
68 .globl pci_sun4v_config_get
70 mov HV_FAST_PCI_CONFIG_GET, %o5
79 * %o2: pci_config_offset
85 * status will be zero if the operation completed
86 * successfully, else -1 if not
88 .globl pci_sun4v_config_put
90 mov HV_FAST_PCI_CONFIG_PUT, %o5
99 * %o2: msiq phys address
102 * returns %o0: status
104 * status will be zero if the operation completed
105 * successfully, else -1 if not
107 .globl pci_sun4v_msiq_conf
109 mov HV_FAST_PCI_MSIQ_CONF, %o5
116 * %o2: &msiq_phys_addr
117 * %o3: &msiq_num_entries
119 * returns %o0: status
121 .globl pci_sun4v_msiq_info
124 mov HV_FAST_PCI_MSIQ_INFO, %o5
135 * returns %o0: status
137 .globl pci_sun4v_msiq_getvalid
138 pci_sun4v_msiq_getvalid:
139 mov HV_FAST_PCI_MSIQ_GETVALID, %o5
149 * returns %o0: status
151 .globl pci_sun4v_msiq_setvalid
152 pci_sun4v_msiq_setvalid:
153 mov HV_FAST_PCI_MSIQ_SETVALID, %o5
162 * returns %o0: status
164 .globl pci_sun4v_msiq_getstate
165 pci_sun4v_msiq_getstate:
166 mov HV_FAST_PCI_MSIQ_GETSTATE, %o5
176 * returns %o0: status
178 .globl pci_sun4v_msiq_setstate
179 pci_sun4v_msiq_setstate:
180 mov HV_FAST_PCI_MSIQ_SETSTATE, %o5
189 * returns %o0: status
191 .globl pci_sun4v_msiq_gethead
192 pci_sun4v_msiq_gethead:
193 mov HV_FAST_PCI_MSIQ_GETHEAD, %o5
203 * returns %o0: status
205 .globl pci_sun4v_msiq_sethead
206 pci_sun4v_msiq_sethead:
207 mov HV_FAST_PCI_MSIQ_SETHEAD, %o5
216 * returns %o0: status
218 .globl pci_sun4v_msiq_gettail
219 pci_sun4v_msiq_gettail:
220 mov HV_FAST_PCI_MSIQ_GETTAIL, %o5
230 * returns %o0: status
232 .globl pci_sun4v_msi_getvalid
233 pci_sun4v_msi_getvalid:
234 mov HV_FAST_PCI_MSI_GETVALID, %o5
244 * returns %o0: status
246 .globl pci_sun4v_msi_setvalid
247 pci_sun4v_msi_setvalid:
248 mov HV_FAST_PCI_MSI_SETVALID, %o5
257 * returns %o0: status
259 .globl pci_sun4v_msi_getmsiq
260 pci_sun4v_msi_getmsiq:
261 mov HV_FAST_PCI_MSI_GETMSIQ, %o5
272 * returns %o0: status
274 .globl pci_sun4v_msi_setmsiq
275 pci_sun4v_msi_setmsiq:
276 mov HV_FAST_PCI_MSI_SETMSIQ, %o5
285 * returns %o0: status
287 .globl pci_sun4v_msi_getstate
288 pci_sun4v_msi_getstate:
289 mov HV_FAST_PCI_MSI_GETSTATE, %o5
299 * returns %o0: status
301 .globl pci_sun4v_msi_setstate
302 pci_sun4v_msi_setstate:
303 mov HV_FAST_PCI_MSI_SETSTATE, %o5
312 * returns %o0: status
314 .globl pci_sun4v_msg_getmsiq
315 pci_sun4v_msg_getmsiq:
316 mov HV_FAST_PCI_MSG_GETMSIQ, %o5
326 * returns %o0: status
328 .globl pci_sun4v_msg_setmsiq
329 pci_sun4v_msg_setmsiq:
330 mov HV_FAST_PCI_MSG_SETMSIQ, %o5
339 * returns %o0: status
341 .globl pci_sun4v_msg_getvalid
342 pci_sun4v_msg_getvalid:
343 mov HV_FAST_PCI_MSG_GETVALID, %o5
353 * returns %o0: status
355 .globl pci_sun4v_msg_setvalid
356 pci_sun4v_msg_setvalid:
357 mov HV_FAST_PCI_MSG_SETVALID, %o5