⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plx9054.h

📁 Vxworks 下PLX 9054 的驱动
💻 H
📖 第 1 页 / 共 2 页
字号:

/* Plx9054.h: Plx9054 PCI桥片驱动头文件*/
/* author: Wang.qi Jilin Univ. */

/*
modification history
------------------
2006-09-17
*/

#ifndef	INCplx9054h
#define	INCplx9054h

#ifdef __cplusplus
extern "C" {
#endif

/* includes (header file) 头包含文件 */

/* define 宏定义 */
/*#define  PLX_DEBUG*/                /* 没有连接实际设备时做单元测试的开关*/
#define  PLX_DEBUG_PRINT    /* 打印调试信息开关*/
#define  PLX_INPUT_CHECK
#define  PLX_9054_VENDORID     0x10B5
#if 0
#define  PLX_9054_DEVICEID      0x5406
#else
#define  PLX_9054_DEVICEID      0x9054
#endif
#define EXT_INTERRUPT_BASE      INT_NUM_IRQ0    /* irq0     */
#define PCI_DEV_MMU_MSK           (~(VM_PAGE_SIZE - 1))   /* Mask MMU page */
#define PCI_DEV_ADRS_SIZE         VM_PAGE_SIZE    /* one page */

#define PLX9054_DMA_TIME_OUT  120    /*DMA 操作超时时间2秒*/    

/*
 * default values if PCI_CFG_TYPE defined to be PCI_CFG_FORCE
 * 因BIOS已经自动对PCI设备做了资源分配,所以PCI_CFG_TYPE == PCI_CFG_SPEC
 * note: memory addresses must be aligned on MMU page boundaries
 */
#define PLX9054_IO_ADR0   	0xf400
#define PLX9054_MEM_ADR0  	0xfd000000
#define PLX9054_INT_LVL0  	0x0b
#define PLX9054_INT_VEC0  	0

#define PLX9054_IO_ADR1   	0xf420
#define PLX9054_MEM_ADR1  	0xfd200000
#define PLX9054_INT_LVL1  	0x05
#define PLX9054_INT_VEC1  	0

#define PLX9054_IO_ADR2   	0xf440
#define PLX9054_MEM_ADR2  	0xfd300000
#define PLX9054_INT_LVL2  	0x0c
#define PLX9054_INT_VEC2  	0

#define PLX9054_IO_ADR3   	0xf460
#define PLX9054_MEM_ADR3  	0xfd400000
#define PLX9054_INT_LVL3  	0x9
#define PLX9054_INT_VEC3  	0

#define  PLX9054_MAX_DEV         4               /*最大支持4块PLX9054扩展卡*/

 /******* Interrupt identifiers **************/
#define INTR_TYPE_NONE                      0           
#define INTR_TYPE_LOCAL_1                 (1 << 0)
#define INTR_TYPE_LOCAL_2                 (1 << 1)
#define INTR_TYPE_PCI_ABORT             (1 << 2)
#define INTR_TYPE_DOORBELL               (1 << 3)
#define INTR_TYPE_OUTBOUND_POST    (1 << 4)
#define INTR_TYPE_DMA_0                     (1 << 5)
#define INTR_TYPE_DMA_1                     (1 << 6)
#define INTR_TYPE_DMA_2                     (1 << 7)
#define INTR_TYPE_DMA_3                     (1 << 8)
#define INTR_TYPE_SOFTWARE               (1 << 9)

enum 
{
    BIT0  = 0x00000001,
    BIT1  = 0x00000002,
    BIT2  = 0x00000004,
    BIT3  = 0x00000008,
    BIT4  = 0x00000010,
    BIT5  = 0x00000020,
    BIT6  = 0x00000040,
    BIT7  = 0x00000080,
    BIT8  = 0x00000100,
    BIT9  = 0x00000200,
    BIT10 = 0x00000400,
    BIT11 = 0x00000800,
    BIT12 = 0x00001000,
    BIT13 = 0x00002000,
    BIT14 = 0x00004000,
    BIT15 = 0x00008000,
    BIT16 = 0x00010000,
    BIT17 = 0x00020000,
    BIT18 = 0x00040000,
    BIT19 = 0x00080000,
    BIT20 = 0x00100000,
    BIT21 = 0x00200000,
    BIT22 = 0x00400000,
    BIT23 = 0x00800000,
    BIT24 = 0x01000000,
    BIT25 = 0x02000000,
    BIT26 = 0x04000000,
    BIT27 = 0x08000000,
    BIT28 = 0x10000000,
    BIT29 = 0x20000000,
    BIT30 = 0x40000000,
    BIT31 = 0x80000000
};


/* registers */
/* PCI Configuaration register definitions  */
enum {
    PCI_IDR  = 0x00,
    PCI_CR   = 0x04,
    PCI_SR   = 0x06,
    PCI_REV  = 0x08,
    PCI_CCR  = 0x09,
    PCI_LSR  = 0x0c,
    PCI_LTR  = 0x0d,
    PCI_HTR  = 0x0e,
    PCI_BISTR= 0x0f,
    PCI_BAR0 = 0x10,
    PCI_BAR1 = 0x14,
    PCI_BAR2 = 0x18,
    PCI_BAR3 = 0x1c,
    PCI_BAR4 = 0x20,
    PCI_BAR5 = 0x24,
    PCI_CIS  = 0x28,
    PCI_SVID = 0x2c,
    PCI_SID  = 0x2e,
    PCI_ERBAR= 0x30,
    PCI_ILR  = 0x3c,
    PCI_IPR  = 0x3d,
    PCI_MGR  = 0x3e,
    PCI_MLR  = 0x3f
};

enum {
    AD_PCI_BAR0 = 0,
    AD_PCI_BAR1 = 1,
    AD_PCI_BAR2 = 2,
    AD_PCI_BAR3 = 3,
    AD_PCI_BAR4 = 4,
    AD_PCI_BAR5 = 5,
    AD_PCI_BAR_EPROM = 6,
    AD_PCI_BARS = 7,
};

/* PLX register definitions */
enum {
    P9054_LAS0RR    = 0x00,
    P9054_LAS0BA    = 0x04,
    P9054_MARBR     = 0x08,
    P9054_BIGEND    = 0x0c,
    P9054_LMISC     = 0x0d,
    P9054_PROT_AREA = 0x0e,
    P9054_EROMRR    = 0x10,
    P9054_EROMBA    = 0x14,
    P9054_LBRD0     = 0x18,
    P9054_DMRR      = 0x1c,
    P9054_DMLBAM    = 0x20,
    P9054_DMLBAI    = 0x24,
    P9054_DMPBAM    = 0x28,
    P9054_DMCFGA    = 0x2c,
    P9054_OPQIS     = 0x30,
    P9054_OPQIM     = 0x34,
    P9054_IQP       = 0x40,
    P9054_OQP       = 0x44,
    P9054_MQCR      = 0xc0,
    P9054_QBAR      = 0xc4,
    P9054_MBOX0_OLD = 0x40,
    P9054_MBOX1_OLD = 0x44,
    P9054_MBOX0     = 0x78,
    P9054_MBOX1     = 0x7c,
    P9054_MBOX2     = 0x48,
    P9054_MBOX3     = 0x4c,
    P9054_MBOX4     = 0x50,
    P9054_MBOX5     = 0x54,
    P9054_MBOX6     = 0x58,
    P9054_MBOX7     = 0x5c,
    P9054_P2LDBELL  = 0x60,
    P9054_L2PDBELL  = 0x64,
    P9054_INTCSR    = 0x68,
    P9054_CNTRL     = 0x6c,
    P9054_PCIHIDR   = 0x70,
    P9054_PCIHREV   = 0x74,
    P9054_DMAMODE   = 0x80,
    P9054_DMAPADR   = 0x84,
    P9054_DMALADR   = 0x88,
    P9054_DMASIZ    = 0x8c,
    P9054_DMADPR    = 0x90,
    P9054_DMAMODE1  = 0x94,
    P9054_DMAPADR1  = 0x98,
    P9054_DMALADR1  = 0x9c,
    P9054_DMASIZ1   = 0xa0,
    P9054_DMADPR1   = 0xa4,
    P9054_DMACSR    = 0xa8,
    P9054_DMACSR1   = 0xa9,
    P9054_DMAARB    = 0xac,
    P9054_DMATHR    = 0xb0,
    P9054_DMADAC0   = 0xb4,
    P9054_DMADAC1   = 0xb8,
    P9054_IFHPR     = 0xc8,
    P9054_IFTPR     = 0xcc,
    P9054_IPHPR     = 0xd0,
    P9054_IPTPR     = 0xd4,
    P9054_OFHPR     = 0xd8,
    P9054_OFTPR     = 0xdc,
    P9054_OPHPR     = 0xe0,
    P9054_OPTPR     = 0xe4,
    P9054_QSR       = 0xe8,
    P9054_LAS1RR    = 0xf0,
    P9054_LAS1BA    = 0xf4,
    P9054_LBRD1     = 0xf8,
    P9054_DMDAC     = 0xfc
};

/* PLX specific PCI configuration registers*/
enum {
    P9054_VPD_ADDR   = 0x4E,
    P9054_VPD_DATA   = 0x50,
};

typedef enum

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -