亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? le1vefpgadma.h

?? Zalink50114----TDMoIP芯片驅動源碼
?? H
字號:
/* le1veFpgaDma.c - LE1VE DMA (FPGA) controller head file
*
* Copyright     2004-2007 ZTE, Inc.
* author:       ZhengQishan
* date:         2004.02
*
* modification history
*------------------------------
*
*/


#ifndef  _LE1VE_FPGA_DMA_H
#define  _LE1VE_FPGA_DMA_H

#include "le1veLib.h"

#define  LE1VE_DEVICE_ID		0x4F43
#define  LE1VE_VENDOR_ID     	0X10EE

/*控制收發描述符按2,4,8,16,32,...方式增加,便于發送描述隊列的處理*/
#define DMA_DES_RING_SIZE     	5

#define MAX_DMA_CHANNELS     	2
#define SIZE_PER_DMA_BUF      	2048 /*byte*/
#define LE1VE_MTU				1518
#define IXP1200_RX_DMA        	0
#define IXP1200_TX_DMA        	1
#define LE1VE_PCI_MAX_NUM       8

#define PCI_MEM_BASE_OFFSET     0x10     	/*定義內存基地址在PCI配置空間中的偏移量*/
#define SLOT_DEVNO_BASE         15       	/*定義與槽位相對應的基(加槽位號等于設備號*/
#define PCI_MEM_BASE_MASK       0xfffffff0  /*定義PCI內存基地址mask*/
#define PCI_CFG_COMMAND_OFFSET	0x04    	/*定義PCI配置空間命令偏移量*/
#define PCI_CFG_CMD_MEM_ENABLE	0x0002		/* memory access enable */
#define PCI_CFG_CMD_MASTER_ENABLE	0x0004	/* bus master enable */

/*PCI內存空間控制寄存器地址分配*/
#define RX_DESC_BASE_REG   		0x00	/*上行BD表起始地址*/
#define TX_DESC_BASE_REG		0x04	/*下行BD表起始地址*/
#define DESC_NUM_REG 			0x08	/*BD表條目*/
#define PCI_INT_REG 			0x10	/*PCI中斷寄存器*/
#define PCI_INT_MASK_REG 		0x14	/*PCI中斷掩碼寄存器*/
#define TX_ENABLE_REG			0x20	/*下行啟動收包寄存器 */
#define RX_ENABLE_REG			0x24	/*上行啟動收包寄存器*/

/* MII接口寄存器地址( 0x1430 ~ 0x143C)*/
#define LE1VE_MII_INT_STAT_REG  0x1430
#define LE1VE_MII_INT_MASK_REG  0x1434
#define LE1VE_MII_CONTROL_REG   0x1438
#define LE1VE_MII_STATE_REG     0x143c

#define LE1VE_CTRL_PORT_RESET   0x01
#define LE1VE_CTRL_TX_ENABLE    0x04
#define LE1VE_CTRL_RX_ENABLE    0x08
#define LE1VE_CTRL_FULL_DUPLEX  0x10
#define LE1VE_CTRL_PREAM_ENABLE 0x20
#define LE1VE_CTRL_LOOP_BACK    0x40
#define LE1VE_CTRL_CRC_ENABLE   0x80


/*PCI接口CPU空間控制寄存器地址分配*/
#define LE1VE_PCI_CONTROL_REG   	0x1440

#define LE1VE_LITTLE_ENDIAN         0
#define LE1VE_BIG_ENDIAN            0x01

/*FPGA內部計數地址分配*/
#define LE1VE_COUNT_CONTROL_REG 	0X1444
#define LE1VE_MII_RX_CNT_REG		0x1450
#define LE1VE_MII_RX_ERR_CNT_REG	0x1460
#define LE1VE_MII_TX_CNT_REG		0x1470
#define LE1VE_MII_TX_ERR_CNT_REG	0x1480
#define LE1VE_PCI_RX_CNT_REG		0x1490
#define LE1VE_PCI_RX_ERR_CNT_REG	0x14A0
#define LE1VE_PCI_TX_CNT_REG		0x14B0
#define LE1VE_PCI_TX_ERR_CNT_REG	0x14C0

#define RMD0_OWN        0x80000000  /* Own */
#define RMD0_ERR        0x40000000  /* Error */
#define RMD0_PKT_LEN  	0x0000ffff  /*packet length*/

/* transmit descriptor */
#define TMD0_CLEAR      0x00000000  /*clear*/
#define TMD0_OWN        0x80000000  /* Own */
#define TMD0_ERR        0x40000000  /* Error */
#define TMD0_PKT_LEN  	0x0000ffff  /*packet length*/

/*PCI中斷狀態*/
#define LE1VE_TX_BD_OPT_ERR_INT   		0x01
#define LE1VE_RX_BD_FULL_INT   			0x02
#define LE1VE_RX_PKT_INT		  		0x08
#define LE1VE_TX_TRANS_ERR_INT			0x10
#define LE1VE_RX_TRANS_ERR_INT			0x20
#define LE1VE_INT_ALL_MASK				0xFFFFFFC4

/*Rx and Tx Control*/
#define LE1VE_RX_BD_FULL                0x01
#define DEV_LE1VE_PCI_QLEN				64
#define LE1VE_RX_PKT_ENABLE				0x01
#define LE1VE_TX_PKT_ENABLE				0x01

typedef struct Le1ve_RMD
{
    volatile UINT32      	RMD0;         /*bit31:own  bit30:ERR bit29-16:reversed  bit15-0:packet_length*/
    volatile UINT32       	RMD1;         /* bits 31:00 of receive buffer address */
} LE1VE_RMD;

/* Transmit Message Descriptor Entry. */

typedef struct le1ve_TMD
{
    volatile UINT32       	TMD0;         /*bit31:own  bit30:ERR bit29-16:reversed  bit15-0:packet_length*/
    volatile UINT32       	TMD1;         /* bits 31:00 of transmit buffer address */
} LE1VE_TMD;

typedef struct
{
	volatile unsigned long rxDescBase;        /*0x00	上行BD表起始地址*/
	volatile unsigned long txDescBase;        /*0x04	下行BD表起始地址*/
	volatile unsigned long descNum;           /*0x08	BD表條目*/
	volatile unsigned long reserved1;         /*0x0C    reserved*/
	volatile unsigned long pciIntState;       /*0x10	PCI中斷寄存器*/
	volatile unsigned long pciIntMask;        /*0x14	PCI中斷掩碼寄存器*/
	volatile unsigned long reserved2;         /*0x18    reserved*/
	volatile unsigned long reserved3;         /*0x1C    reserved*/
	volatile unsigned long txEnable;          /*0x20	下行啟動收包寄存器 */
	volatile unsigned long rxEnable;          /*0x24	上行啟動收包寄存器*/
}LE1VE_PCI_MEM_MAP;

typedef enum
{
	NO_CLEAR_TO_ZERO = 0,
	CLEAR_TO_ZERO
}LE1VE_FPGA_CNT_CTRL_MODE;
typedef enum
{
	RX_PKT_JOB_NOT_ADDED = 0,
	RX_PKT_JOB_ADDED  =1
}LE1VE_RX_PKT_JOB_STATE;


typedef struct
{
	int mode;
	unsigned int MiiRxCnt;
	unsigned int MiiRxErrCnt;
	unsigned int MiiTxCnt;
	unsigned int MiiTxErrCnt;
	unsigned int PciRxCnt;
	unsigned int PciRxErrCnt;
	unsigned int PciTxCnt;
	unsigned int PciTxErrCnt;
}LE1VE_FPGA_DMA_STATIS;

typedef struct freeArgs
    {
    void * arg1;
    void * arg2;
    } FREE_ARGS;

typedef struct le1veDevice
{
    /*PCI屬性*/
	int         deviceId;
	int         vendorId;
	int         busNo;
	int         devNo;
	int         functionNo;
	void        *pNet;
	SEM_ID      TxSemaphore;

    int         uintNo;           		/* unit number of the device */
    int         slotNo;         		/*slot No of the device*/
    LE1VE_PCI_MEM_MAP  *pMem;     		/* memory base as seen from PCI*/
    UINT32      cpuMemBase;				/* memory base as seen from CPU*/

    int         rmdIndex;               /* current RMD index */
    int         rringSize;              /* RMD ring size */
    int         rringLen;               /* RMD ring length (bytes) */
    LE1VE_RMD   *pRring;                 /* RMD ring start */

    int         tmdIndex;               /* current TMD index */
    int         tmdIndexC;              /* current take back TMD index */
    int         tringSize;              /* TMD ring size */
    int         tringLen;               /* TMD ring length (bytes) */
    LE1VE_TMD   *pTring;                 /* TMD ring start */

    char *      pShMem;                 /* real ptr to shared memory */
    char *      memBase;                /* LANCE memory pool base */
    UINT32      flags;                  /* Our local flags */
    BOOL        txBlocked;              /* transmit flow control */
    BOOL        txCleaning;     		/* transmit descriptor cleaning */
    FREE_ARGS   freeData [128];     	/* Array of free arguments */

	int         rxFlag;					/*接收任務處理標志,如果當前已經有任務處理,此標志置1,否則為0*/

    unsigned int le1vePciResetInt;
    unsigned int le1vePciInt;
	unsigned int le1veRxInt;        		/**收包中斷**/
	unsigned int le1vePciTxInt;     		/**發包中斷**/
	unsigned int le1vePciRxFullInt; 		/*上行BD表滿中斷*/
	unsigned int le1vePciTxEmptyInt;		/*下行BD表空中斷*/
    unsigned int le1vePciTxMemErr;          /*下行memory讀寫錯誤*/
    unsigned int le1vePciRxMemErr;          /*上行memory讀寫錯誤*/
	unsigned int le1vepciRx;        		/* 收包計數 */
	unsigned int le1vepciTx;         		/* 發包計數*/
	unsigned int le1vePciTxNoTmd; 			/*發送無描述符*/
	unsigned int le1vePciRxErrorPkt;		/*收到錯誤包*/
	unsigned int le1veErrorAddJob;
	unsigned int le1veErrorAlloc;

	unsigned int le1vePciFpgaMode;
	unsigned int le1vePciAddJob;

	unsigned char pciOnline;
} LE1VE_PCI_DRV_CTRL;

#define CHECK_CNT_CTRL_MODE(mode)\
	do{\
		if(((mode) != NO_CLEAR_TO_ZERO) && ((mode) != CLEAR_TO_ZERO))\
			return ERROR;\
		}while(0);

#define READ_CNT_REG(reg) \
		(Drv_Swap32(*((volatile UINT32 *)(reg))) & 0xFF) |\
		((Drv_Swap32(*((volatile UINT32 *)(reg + 4))) << 8) & 0xFF00) | \
		((Drv_Swap32(*((volatile UINT32 *)(reg + 8))) << 16) & 0xFF0000) | \
		((Drv_Swap32(*((volatile UINT32 *)(reg + 0x0c))) << 24) & 0xFF000000)\

#define LE1VE_CLEAN_RXD(rmd) \
    { \
    rmd->RMD0 = 0;	\
    }

#define LE1VE_TMD_CLR_ERR(tmd) \
        {           \
     tmd->TMD0 = 0; \
     tmd->TMD1 = 0; \
        }
#define LE1VE_MII_CTRL_WR(pDrv, reg, value)\
    *((volatile UINT32 *)(pDrv->cpuMemBase + reg)) = Drv_Swap32(value);

#define LE1VE_MII_CTRL_RD(pDrv, reg, value)\
    *(value) = Drv_Swap32(*((volatile UINT32 *)(pDrv->cpuMemBase + reg)));



#endif   /*_LE1VE_FPGA_DMA_H*/



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区久久久蜜月 | 亚洲精品久久久蜜桃| 久久色成人在线| 欧美mv日韩mv国产| 欧美一二三区在线| 日韩美女天天操| 亚洲精品在线观看网站| 欧美变态口味重另类| 久久这里只有精品6| 国产欧美一区二区三区鸳鸯浴| 国产日韩欧美电影| 亚洲人成7777| 亚洲成va人在线观看| 免费在线观看一区| 国产一区欧美二区| 91亚洲永久精品| 欧美日韩视频在线观看一区二区三区 | 久久成人免费网| 91麻豆高清视频| 粉嫩av一区二区三区| 福利一区在线观看| 色综合久久六月婷婷中文字幕| 日本道精品一区二区三区| 欧美女孩性生活视频| 日韩免费电影一区| 久久免费电影网| 一区二区三区精品视频| 麻豆91精品91久久久的内涵| 国产盗摄女厕一区二区三区| 91传媒视频在线播放| 日韩精品一区二区三区在线| 国产精品视频观看| 日本不卡在线视频| 成人久久视频在线观看| 欧美一级欧美三级| 亚洲欧洲成人精品av97| 免费视频最近日韩| 91久久久免费一区二区| 精品国产一区二区三区四区四| 亚洲欧洲国产日韩| 韩国精品在线观看| 欧美老人xxxx18| 国产精品久久久久一区二区三区| 午夜a成v人精品| av在线不卡网| 精品va天堂亚洲国产| 亚洲第一搞黄网站| 99热国产精品| 久久久午夜精品理论片中文字幕| 亚洲激情在线激情| 国产一区二区三区四区五区美女| 欧美天天综合网| 中文字幕人成不卡一区| 国产乱码精品一区二区三| 91麻豆精品国产91久久久使用方法| 中文字幕欧美激情一区| 美腿丝袜亚洲综合| 欧美日韩国产高清一区| 亚洲精品国产一区二区精华液| 国产精选一区二区三区| 欧美一级免费大片| 天天综合天天综合色| 欧美在线一区二区三区| 玉米视频成人免费看| 99国产精品久久久| 国产精品久久久久久久第一福利 | 国产精品色眯眯| 国产一区二区在线电影| 欧美一级xxx| 香蕉av福利精品导航| 色欧美乱欧美15图片| 亚洲色图视频网| 91高清视频免费看| 亚洲午夜电影网| 欧美性大战xxxxx久久久| 一区二区三区欧美| 欧美日韩国产区一| 麻豆国产91在线播放| 日韩一区二区三区视频在线观看| 免费一级片91| 久久精品在线免费观看| 丁香天五香天堂综合| 中文字幕av一区二区三区高| 成人av电影在线| 亚洲精品第一国产综合野| 欧美性猛交xxxx乱大交退制版| 亚洲自拍偷拍综合| 91麻豆精品国产91久久久久久久久| 蜜桃一区二区三区在线观看| 日韩视频一区二区三区在线播放 | 国产乱码精品1区2区3区| 国产区在线观看成人精品| 成人国产精品免费网站| 亚洲女同一区二区| 91精品国产一区二区| 国内精品国产成人国产三级粉色 | 91麻豆精东视频| 偷拍自拍另类欧美| 精品噜噜噜噜久久久久久久久试看 | 在线成人高清不卡| 国产一区在线观看视频| 亚洲天堂成人网| 9191精品国产综合久久久久久| 日本视频一区二区三区| 精品国产免费人成在线观看| 99久久亚洲一区二区三区青草| 亚洲国产精品麻豆| 久久久久久久久久看片| 欧美性生活影院| 国产乱人伦精品一区二区在线观看| **欧美大码日韩| 欧美成人乱码一区二区三区| 91视频91自| 韩国三级在线一区| 亚洲国产精品嫩草影院| 国产精品久久久久影院老司| 91精品一区二区三区久久久久久| 成人短视频下载| 99视频精品在线| 韩国欧美国产1区| 五月综合激情日本mⅴ| 欧美激情在线看| 精品毛片乱码1区2区3区| 欧美羞羞免费网站| 不卡电影免费在线播放一区| 免费欧美日韩国产三级电影| 亚洲精品乱码久久久久久| 中文一区二区完整视频在线观看| 日韩美女天天操| 欧美日韩美少妇 | 午夜久久久久久电影| 国产精品国产精品国产专区不蜜 | 强制捆绑调教一区二区| 亚洲综合视频在线| 亚洲丝袜精品丝袜在线| 国产色产综合色产在线视频| 久久夜色精品一区| 日韩欧美精品三级| 欧美日本一区二区| 色综合久久综合| a级高清视频欧美日韩| 国产精品亚洲一区二区三区妖精| 日韩**一区毛片| 亚洲一区欧美一区| 一区二区三区毛片| 伊人色综合久久天天| 最新中文字幕一区二区三区| 国产精品久久综合| 日本一区二区免费在线观看视频| 夜夜精品视频一区二区| 国产精品国产三级国产专播品爱网 | 亚洲精品久久久蜜桃| 悠悠色在线精品| 亚洲成人久久影院| 丝袜美腿亚洲色图| 免费欧美高清视频| 寂寞少妇一区二区三区| 激情五月婷婷综合| 国产精品1区2区3区在线观看| 国产福利视频一区二区三区| 国产乱理伦片在线观看夜一区| 国产经典欧美精品| 成人听书哪个软件好| 成人av中文字幕| 色综合久久久久综合体桃花网| 91国产丝袜在线播放| 欧美日韩黄视频| 日韩视频一区在线观看| 久久久久久久久久久久久久久99| 国产精品网站导航| 亚洲另类色综合网站| 视频在线在亚洲| 韩国成人在线视频| 91麻豆国产精品久久| 91精品午夜视频| 国产精品国产三级国产专播品爱网 | 亚洲男同1069视频| 亚洲成a人在线观看| 极品销魂美女一区二区三区| 成a人片国产精品| 欧美日韩国产综合一区二区| 亚洲精品一区在线观看| 国产精品福利在线播放| 日韩高清国产一区在线| 丁香六月久久综合狠狠色| 欧美性生活大片视频| 久久精品亚洲精品国产欧美| 国产一区二区三区视频在线播放| 99久久婷婷国产综合精品| 欧美一区二区三区视频在线观看| 亚洲国产精品成人久久综合一区| 亚洲一区二区三区视频在线播放| 国内精品久久久久影院一蜜桃| 色域天天综合网| 久久女同精品一区二区| 日韩精品电影一区亚洲| jlzzjlzz欧美大全| 欧美一级欧美三级在线观看| 一区二区欧美精品| 成人v精品蜜桃久久一区|