1 1.1.2.4 cliff /* $NetBSD: rmixl_pcievar.h,v 1.1.2.4 2010/03/21 21:27:27 cliff Exp $ */ 2 1.1.2.1 cliff 3 1.1.2.1 cliff #ifndef _MIPS_RMI_PCIE_VAR_H_ 4 1.1.2.1 cliff #define _MIPS_RMI_PCIE_VAR_H_ 5 1.1.2.1 cliff 6 1.1.2.1 cliff #include <dev/pci/pcivar.h> 7 1.1.2.1 cliff 8 1.1.2.1 cliff typedef enum rmixl_pcie_lnkcfg_mode { 9 1.1.2.1 cliff LCFG_NO=0, /* placeholder */ 10 1.1.2.1 cliff LCFG_EP, /* end point */ 11 1.1.2.1 cliff LCFG_RC, /* root complex */ 12 1.1.2.1 cliff } rmixl_pcie_lnkcfg_mode_t; 13 1.1.2.1 cliff 14 1.1.2.1 cliff typedef struct rmixl_pcie_lnkcfg { 15 1.1.2.1 cliff rmixl_pcie_lnkcfg_mode_t mode; 16 1.1.2.1 cliff u_int lanes; 17 1.1.2.1 cliff } rmixl_pcie_lnkcfg_t; 18 1.1.2.1 cliff 19 1.1.2.1 cliff typedef struct rmixl_pcie_lnktab { 20 1.1.2.1 cliff u_int ncfgs; 21 1.1.2.1 cliff const char *str; 22 1.1.2.1 cliff const rmixl_pcie_lnkcfg_t *cfg; 23 1.1.2.1 cliff } rmixl_pcie_lnktab_t; 24 1.1.2.1 cliff 25 1.1.2.3 cliff typedef struct rmixl_pcie_link_dispatch { 26 1.1.2.3 cliff LIST_ENTRY(rmixl_pcie_link_dispatch) next; 27 1.1.2.3 cliff int (*func)(void *); 28 1.1.2.3 cliff void *arg; 29 1.1.2.3 cliff u_int link; 30 1.1.2.3 cliff u_int bitno; 31 1.1.2.3 cliff u_int irq; 32 1.1.2.3 cliff struct evcnt count; 33 1.1.2.4 cliff char count_name[32]; 34 1.1.2.3 cliff } rmixl_pcie_link_dispatch_t; 35 1.1.2.3 cliff 36 1.1.2.3 cliff struct rmixl_pcie_softc; 37 1.1.2.3 cliff 38 1.1.2.3 cliff typedef struct rmixl_pcie_link_intr { 39 1.1.2.3 cliff struct rmixl_pcie_softc *sc; 40 1.1.2.3 cliff LIST_HEAD(, rmixl_pcie_link_dispatch) dispatch; 41 1.1.2.3 cliff u_int link; 42 1.1.2.3 cliff u_int ipl; 43 1.1.2.3 cliff bool enabled; 44 1.1.2.3 cliff void *ih; /* mips interrupt handle */ 45 1.1.2.3 cliff } rmixl_pcie_link_intr_t; 46 1.1.2.3 cliff 47 1.1.2.3 cliff #define RMIXL_PCIE_NLINKS_MAX 4 48 1.1.2.3 cliff 49 1.1.2.3 cliff typedef struct rmixl_pcie_softc { 50 1.1.2.1 cliff device_t sc_dev; 51 1.1.2.1 cliff struct mips_pci_chipset sc_pci_chipset; 52 1.1.2.2 cliff bus_space_tag_t sc_pcie_cfg_memt; 53 1.1.2.2 cliff bus_space_tag_t sc_pcie_ecfg_memt; 54 1.1.2.1 cliff bus_dma_tag_t sc_29bit_dmat; 55 1.1.2.1 cliff bus_dma_tag_t sc_32bit_dmat; 56 1.1.2.1 cliff bus_dma_tag_t sc_64bit_dmat; 57 1.1.2.1 cliff rmixl_pcie_lnktab_t sc_pcie_lnktab; 58 1.1.2.4 cliff int sc_tmsk; 59 1.1.2.3 cliff void *sc_fatal_ih; 60 1.1.2.3 cliff rmixl_pcie_link_intr_t sc_link_intr[RMIXL_PCIE_NLINKS_MAX]; 61 1.1.2.3 cliff } rmixl_pcie_softc_t; 62 1.1.2.1 cliff 63 1.1.2.1 cliff #endif /* _MIPS_RMI_PCIE_VAR_H_ */ 64 1.1.2.1 cliff 65