1a88b5ba8SSam Ravnborg /* pci_sun4v.h: SUN4V specific PCI controller support. 2a88b5ba8SSam Ravnborg * 3a88b5ba8SSam Ravnborg * Copyright (C) 2006 David S. Miller (davem@davemloft.net) 4a88b5ba8SSam Ravnborg */ 5a88b5ba8SSam Ravnborg 6a88b5ba8SSam Ravnborg #ifndef _PCI_SUN4V_H 7a88b5ba8SSam Ravnborg #define _PCI_SUN4V_H 8a88b5ba8SSam Ravnborg 92e74a74fSSam Ravnborg long pci_sun4v_iommu_map(unsigned long devhandle, 10a88b5ba8SSam Ravnborg unsigned long tsbid, 11a88b5ba8SSam Ravnborg unsigned long num_ttes, 12a88b5ba8SSam Ravnborg unsigned long io_attributes, 13a88b5ba8SSam Ravnborg unsigned long io_page_list_pa); 142e74a74fSSam Ravnborg unsigned long pci_sun4v_iommu_demap(unsigned long devhandle, 15a88b5ba8SSam Ravnborg unsigned long tsbid, 16a88b5ba8SSam Ravnborg unsigned long num_ttes); 172e74a74fSSam Ravnborg unsigned long pci_sun4v_iommu_getmap(unsigned long devhandle, 18a88b5ba8SSam Ravnborg unsigned long tsbid, 19a88b5ba8SSam Ravnborg unsigned long *io_attributes, 20a88b5ba8SSam Ravnborg unsigned long *real_address); 212e74a74fSSam Ravnborg unsigned long pci_sun4v_config_get(unsigned long devhandle, 22a88b5ba8SSam Ravnborg unsigned long pci_device, 23a88b5ba8SSam Ravnborg unsigned long config_offset, 24a88b5ba8SSam Ravnborg unsigned long size); 252e74a74fSSam Ravnborg int pci_sun4v_config_put(unsigned long devhandle, 26a88b5ba8SSam Ravnborg unsigned long pci_device, 27a88b5ba8SSam Ravnborg unsigned long config_offset, 28a88b5ba8SSam Ravnborg unsigned long size, 29a88b5ba8SSam Ravnborg unsigned long data); 30a88b5ba8SSam Ravnborg 312e74a74fSSam Ravnborg unsigned long pci_sun4v_msiq_conf(unsigned long devhandle, 32a88b5ba8SSam Ravnborg unsigned long msiqid, 33a88b5ba8SSam Ravnborg unsigned long msiq_paddr, 34a88b5ba8SSam Ravnborg unsigned long num_entries); 352e74a74fSSam Ravnborg unsigned long pci_sun4v_msiq_info(unsigned long devhandle, 36a88b5ba8SSam Ravnborg unsigned long msiqid, 37a88b5ba8SSam Ravnborg unsigned long *msiq_paddr, 38a88b5ba8SSam Ravnborg unsigned long *num_entries); 392e74a74fSSam Ravnborg unsigned long pci_sun4v_msiq_getvalid(unsigned long devhandle, 40a88b5ba8SSam Ravnborg unsigned long msiqid, 41a88b5ba8SSam Ravnborg unsigned long *valid); 422e74a74fSSam Ravnborg unsigned long pci_sun4v_msiq_setvalid(unsigned long devhandle, 43a88b5ba8SSam Ravnborg unsigned long msiqid, 44a88b5ba8SSam Ravnborg unsigned long valid); 452e74a74fSSam Ravnborg unsigned long pci_sun4v_msiq_getstate(unsigned long devhandle, 46a88b5ba8SSam Ravnborg unsigned long msiqid, 47a88b5ba8SSam Ravnborg unsigned long *state); 482e74a74fSSam Ravnborg unsigned long pci_sun4v_msiq_setstate(unsigned long devhandle, 49a88b5ba8SSam Ravnborg unsigned long msiqid, 50a88b5ba8SSam Ravnborg unsigned long state); 512e74a74fSSam Ravnborg unsigned long pci_sun4v_msiq_gethead(unsigned long devhandle, 52a88b5ba8SSam Ravnborg unsigned long msiqid, 53a88b5ba8SSam Ravnborg unsigned long *head); 542e74a74fSSam Ravnborg unsigned long pci_sun4v_msiq_sethead(unsigned long devhandle, 55a88b5ba8SSam Ravnborg unsigned long msiqid, 56a88b5ba8SSam Ravnborg unsigned long head); 572e74a74fSSam Ravnborg unsigned long pci_sun4v_msiq_gettail(unsigned long devhandle, 58a88b5ba8SSam Ravnborg unsigned long msiqid, 59a88b5ba8SSam Ravnborg unsigned long *head); 602e74a74fSSam Ravnborg unsigned long pci_sun4v_msi_getvalid(unsigned long devhandle, 61a88b5ba8SSam Ravnborg unsigned long msinum, 62a88b5ba8SSam Ravnborg unsigned long *valid); 632e74a74fSSam Ravnborg unsigned long pci_sun4v_msi_setvalid(unsigned long devhandle, 64a88b5ba8SSam Ravnborg unsigned long msinum, 65a88b5ba8SSam Ravnborg unsigned long valid); 662e74a74fSSam Ravnborg unsigned long pci_sun4v_msi_getmsiq(unsigned long devhandle, 67a88b5ba8SSam Ravnborg unsigned long msinum, 68a88b5ba8SSam Ravnborg unsigned long *msiq); 692e74a74fSSam Ravnborg unsigned long pci_sun4v_msi_setmsiq(unsigned long devhandle, 70a88b5ba8SSam Ravnborg unsigned long msinum, 71a88b5ba8SSam Ravnborg unsigned long msiq, 72a88b5ba8SSam Ravnborg unsigned long msitype); 732e74a74fSSam Ravnborg unsigned long pci_sun4v_msi_getstate(unsigned long devhandle, 74a88b5ba8SSam Ravnborg unsigned long msinum, 75a88b5ba8SSam Ravnborg unsigned long *state); 762e74a74fSSam Ravnborg unsigned long pci_sun4v_msi_setstate(unsigned long devhandle, 77a88b5ba8SSam Ravnborg unsigned long msinum, 78a88b5ba8SSam Ravnborg unsigned long state); 792e74a74fSSam Ravnborg unsigned long pci_sun4v_msg_getmsiq(unsigned long devhandle, 80a88b5ba8SSam Ravnborg unsigned long msinum, 81a88b5ba8SSam Ravnborg unsigned long *msiq); 822e74a74fSSam Ravnborg unsigned long pci_sun4v_msg_setmsiq(unsigned long devhandle, 83a88b5ba8SSam Ravnborg unsigned long msinum, 84a88b5ba8SSam Ravnborg unsigned long msiq); 852e74a74fSSam Ravnborg unsigned long pci_sun4v_msg_getvalid(unsigned long devhandle, 86a88b5ba8SSam Ravnborg unsigned long msinum, 87a88b5ba8SSam Ravnborg unsigned long *valid); 882e74a74fSSam Ravnborg unsigned long pci_sun4v_msg_setvalid(unsigned long devhandle, 89a88b5ba8SSam Ravnborg unsigned long msinum, 90a88b5ba8SSam Ravnborg unsigned long valid); 91a88b5ba8SSam Ravnborg 92a88b5ba8SSam Ravnborg #endif /* !(_PCI_SUN4V_H) */ 93