Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /* pci_sun4v.h: SUN4V specific PCI controller support.
0003  *
0004  * Copyright (C) 2006 David S. Miller (davem@davemloft.net)
0005  */
0006 
0007 #ifndef _PCI_SUN4V_H
0008 #define _PCI_SUN4V_H
0009 
0010 long pci_sun4v_iommu_map(unsigned long devhandle,
0011              unsigned long tsbid,
0012              unsigned long num_ttes,
0013              unsigned long io_attributes,
0014              unsigned long io_page_list_pa);
0015 unsigned long pci_sun4v_iommu_demap(unsigned long devhandle,
0016                     unsigned long tsbid,
0017                     unsigned long num_ttes);
0018 unsigned long pci_sun4v_iommu_getmap(unsigned long devhandle,
0019                      unsigned long tsbid,
0020                      unsigned long *io_attributes,
0021                      unsigned long *real_address);
0022 unsigned long pci_sun4v_config_get(unsigned long devhandle,
0023                    unsigned long pci_device,
0024                    unsigned long config_offset,
0025                    unsigned long size);
0026 int pci_sun4v_config_put(unsigned long devhandle,
0027              unsigned long pci_device,
0028              unsigned long config_offset,
0029              unsigned long size,
0030              unsigned long data);
0031 
0032 unsigned long pci_sun4v_msiq_conf(unsigned long devhandle,
0033                      unsigned long msiqid,
0034                      unsigned long msiq_paddr,
0035                      unsigned long num_entries);
0036 unsigned long pci_sun4v_msiq_info(unsigned long devhandle,
0037                   unsigned long msiqid,
0038                   unsigned long *msiq_paddr,
0039                   unsigned long *num_entries);
0040 unsigned long pci_sun4v_msiq_getvalid(unsigned long devhandle,
0041                       unsigned long msiqid,
0042                       unsigned long *valid);
0043 unsigned long pci_sun4v_msiq_setvalid(unsigned long devhandle,
0044                       unsigned long msiqid,
0045                       unsigned long valid);
0046 unsigned long pci_sun4v_msiq_getstate(unsigned long devhandle,
0047                       unsigned long msiqid,
0048                       unsigned long *state);
0049 unsigned long pci_sun4v_msiq_setstate(unsigned long devhandle,
0050                       unsigned long msiqid,
0051                       unsigned long state);
0052 unsigned long pci_sun4v_msiq_gethead(unsigned long devhandle,
0053                      unsigned long msiqid,
0054                      unsigned long *head);
0055 unsigned long pci_sun4v_msiq_sethead(unsigned long devhandle,
0056                      unsigned long msiqid,
0057                      unsigned long head);
0058 unsigned long pci_sun4v_msiq_gettail(unsigned long devhandle,
0059                       unsigned long msiqid,
0060                       unsigned long *head);
0061 unsigned long pci_sun4v_msi_getvalid(unsigned long devhandle,
0062                      unsigned long msinum,
0063                      unsigned long *valid);
0064 unsigned long pci_sun4v_msi_setvalid(unsigned long devhandle,
0065                      unsigned long msinum,
0066                      unsigned long valid);
0067 unsigned long pci_sun4v_msi_getmsiq(unsigned long devhandle,
0068                     unsigned long msinum,
0069                     unsigned long *msiq);
0070 unsigned long pci_sun4v_msi_setmsiq(unsigned long devhandle,
0071                     unsigned long msinum,
0072                     unsigned long msiq,
0073                     unsigned long msitype);
0074 unsigned long pci_sun4v_msi_getstate(unsigned long devhandle,
0075                      unsigned long msinum,
0076                      unsigned long *state);
0077 unsigned long pci_sun4v_msi_setstate(unsigned long devhandle,
0078                      unsigned long msinum,
0079                      unsigned long state);
0080 unsigned long pci_sun4v_msg_getmsiq(unsigned long devhandle,
0081                     unsigned long msinum,
0082                     unsigned long *msiq);
0083 unsigned long pci_sun4v_msg_setmsiq(unsigned long devhandle,
0084                     unsigned long msinum,
0085                     unsigned long msiq);
0086 unsigned long pci_sun4v_msg_getvalid(unsigned long devhandle,
0087                      unsigned long msinum,
0088                      unsigned long *valid);
0089 unsigned long pci_sun4v_msg_setvalid(unsigned long devhandle,
0090                      unsigned long msinum,
0091                      unsigned long valid);
0092 
0093 /* Sun4v HV IOMMU v2 APIs */
0094 unsigned long pci_sun4v_iotsb_conf(unsigned long devhandle,
0095                    unsigned long ra,
0096                    unsigned long table_size,
0097                    unsigned long page_size,
0098                    unsigned long dvma_base,
0099                    u64 *iotsb_num);
0100 unsigned long pci_sun4v_iotsb_bind(unsigned long devhandle,
0101                    unsigned long iotsb_num,
0102                    unsigned int pci_device);
0103 unsigned long pci_sun4v_iotsb_map(unsigned long devhandle,
0104                   unsigned long iotsb_num,
0105                   unsigned long iotsb_index_iottes,
0106                   unsigned long io_attributes,
0107                   unsigned long io_page_list_pa,
0108                   long *mapped);
0109 unsigned long pci_sun4v_iotsb_demap(unsigned long devhandle,
0110                     unsigned long iotsb_num,
0111                     unsigned long iotsb_index,
0112                     unsigned long iottes,
0113                     unsigned long *demapped);
0114 #endif /* !(_PCI_SUN4V_H) */