linux/arch/sparc/kernel/pci_sun4v.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/* pci_sun4v.h: SUN4V specific PCI controller support.
   3 *
   4 * Copyright (C) 2006 David S. Miller (davem@davemloft.net)
   5 */
   6
   7#ifndef _PCI_SUN4V_H
   8#define _PCI_SUN4V_H
   9
  10long pci_sun4v_iommu_map(unsigned long devhandle,
  11                         unsigned long tsbid,
  12                         unsigned long num_ttes,
  13                         unsigned long io_attributes,
  14                         unsigned long io_page_list_pa);
  15unsigned long pci_sun4v_iommu_demap(unsigned long devhandle,
  16                                    unsigned long tsbid,
  17                                    unsigned long num_ttes);
  18unsigned long pci_sun4v_iommu_getmap(unsigned long devhandle,
  19                                     unsigned long tsbid,
  20                                     unsigned long *io_attributes,
  21                                     unsigned long *real_address);
  22unsigned long pci_sun4v_config_get(unsigned long devhandle,
  23                                   unsigned long pci_device,
  24                                   unsigned long config_offset,
  25                                   unsigned long size);
  26int pci_sun4v_config_put(unsigned long devhandle,
  27                         unsigned long pci_device,
  28                         unsigned long config_offset,
  29                         unsigned long size,
  30                         unsigned long data);
  31
  32unsigned long pci_sun4v_msiq_conf(unsigned long devhandle,
  33                                         unsigned long msiqid,
  34                                         unsigned long msiq_paddr,
  35                                         unsigned long num_entries);
  36unsigned long pci_sun4v_msiq_info(unsigned long devhandle,
  37                                  unsigned long msiqid,
  38                                  unsigned long *msiq_paddr,
  39                                  unsigned long *num_entries);
  40unsigned long pci_sun4v_msiq_getvalid(unsigned long devhandle,
  41                                      unsigned long msiqid,
  42                                      unsigned long *valid);
  43unsigned long pci_sun4v_msiq_setvalid(unsigned long devhandle,
  44                                      unsigned long msiqid,
  45                                      unsigned long valid);
  46unsigned long pci_sun4v_msiq_getstate(unsigned long devhandle,
  47                                      unsigned long msiqid,
  48                                      unsigned long *state);
  49unsigned long pci_sun4v_msiq_setstate(unsigned long devhandle,
  50                                      unsigned long msiqid,
  51                                      unsigned long state);
  52unsigned long pci_sun4v_msiq_gethead(unsigned long devhandle,
  53                                     unsigned long msiqid,
  54                                     unsigned long *head);
  55unsigned long pci_sun4v_msiq_sethead(unsigned long devhandle,
  56                                     unsigned long msiqid,
  57                                     unsigned long head);
  58unsigned long pci_sun4v_msiq_gettail(unsigned long devhandle,
  59                                      unsigned long msiqid,
  60                                      unsigned long *head);
  61unsigned long pci_sun4v_msi_getvalid(unsigned long devhandle,
  62                                     unsigned long msinum,
  63                                     unsigned long *valid);
  64unsigned long pci_sun4v_msi_setvalid(unsigned long devhandle,
  65                                     unsigned long msinum,
  66                                     unsigned long valid);
  67unsigned long pci_sun4v_msi_getmsiq(unsigned long devhandle,
  68                                    unsigned long msinum,
  69                                    unsigned long *msiq);
  70unsigned long pci_sun4v_msi_setmsiq(unsigned long devhandle,
  71                                    unsigned long msinum,
  72                                    unsigned long msiq,
  73                                    unsigned long msitype);
  74unsigned long pci_sun4v_msi_getstate(unsigned long devhandle,
  75                                     unsigned long msinum,
  76                                     unsigned long *state);
  77unsigned long pci_sun4v_msi_setstate(unsigned long devhandle,
  78                                     unsigned long msinum,
  79                                     unsigned long state);
  80unsigned long pci_sun4v_msg_getmsiq(unsigned long devhandle,
  81                                    unsigned long msinum,
  82                                    unsigned long *msiq);
  83unsigned long pci_sun4v_msg_setmsiq(unsigned long devhandle,
  84                                    unsigned long msinum,
  85                                    unsigned long msiq);
  86unsigned long pci_sun4v_msg_getvalid(unsigned long devhandle,
  87                                     unsigned long msinum,
  88                                     unsigned long *valid);
  89unsigned long pci_sun4v_msg_setvalid(unsigned long devhandle,
  90                                     unsigned long msinum,
  91                                     unsigned long valid);
  92
  93/* Sun4v HV IOMMU v2 APIs */
  94unsigned long pci_sun4v_iotsb_conf(unsigned long devhandle,
  95                                   unsigned long ra,
  96                                   unsigned long table_size,
  97                                   unsigned long page_size,
  98                                   unsigned long dvma_base,
  99                                   u64 *iotsb_num);
 100unsigned long pci_sun4v_iotsb_bind(unsigned long devhandle,
 101                                   unsigned long iotsb_num,
 102                                   unsigned int pci_device);
 103unsigned long pci_sun4v_iotsb_map(unsigned long devhandle,
 104                                  unsigned long iotsb_num,
 105                                  unsigned long iotsb_index_iottes,
 106                                  unsigned long io_attributes,
 107                                  unsigned long io_page_list_pa,
 108                                  long *mapped);
 109unsigned long pci_sun4v_iotsb_demap(unsigned long devhandle,
 110                                    unsigned long iotsb_num,
 111                                    unsigned long iotsb_index,
 112                                    unsigned long iottes,
 113                                    unsigned long *demapped);
 114#endif /* !(_PCI_SUN4V_H) */
 115