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

📄 gei82543end.h

📁 IXP425的BSP代码
💻 H
📖 第 1 页 / 共 3 页
字号:
/* gei82543End.h - Intel 8254x network interface header *//* Copyright 1990-2002 Wind River Systems, Inc. *//*modification history--------------------01g,28may02,jln add TX_RESTART_TRUE and TX_RESTART_NONE01f,20apr02,jln support 82540/5/6 spr # 7673901e,31jan02,jln change len of device name (spr#73010) 01d,05dec01,jln add definitions for TBI compatibility workaround01c,01oct01,jln move device ID definition to sysGei82543End.c01b,01apr01,jln clean up after code review (partial spr#65326)01a,08Jan01,jln written*/#ifndef __INCGEI82543Endh#define __INCGEI82543Endh/* includes */#include "etherLib.h"#include "miiLib.h"#ifdef __cplusplusextern "C" {#endif#if ((CPU_FAMILY==I960) && (defined __GNUC__))#pragma align 1  /* tell gcc960 not to optimize alignments */#endif    /* CPU_FAMILY==I960 *//* define */#define UNKNOWN -1                 #ifndef PHYS_TO_BUS_ADDR#define PHYS_TO_BUS_ADDR(unit,physAddr)                                   \    ((int) pDrvCtrl->adaptor.sysLocalToBus ?                                  \    (*pDrvCtrl->adaptor.sysLocalToBus) (unit, physAddr) : physAddr)#endif /* PHYS_TO_BUS_ADDR */#ifndef BUS_TO_PHYS_ADDR#define BUS_TO_PHYS_ADDR(unit,busAddr)                                     \    ((int) pDrvCtrl->adaptor.sysBusToLocal ?                                  \    (*pDrvCtrl->adaptor.sysBusToLocal)(unit, busAddr) : busAddr)#endif /* BUS_TO_PHYS_ADDR */#define TX_DESC_TYPE_CLEAN              0   /* TX descriptor type */#define TX_DESC_TYPE_COPY               1      /* -- copy/chain/EOP */#define TX_DESC_TYPE_CHAIN              2#define TX_DESC_TYPE_EOP                3/* TX descriptors structure */#define TXDESC_BUFADRLOW_OFFSET         0   /* buf mem low offset */#define TXDESC_BUFADRHIGH_OFFSET        4   /* buf mem high offset */#define TXDESC_LENGTH_OFFSET            8   /* buf length offset */#define TXDESC_CSO_OFFSET               10  /* checksum offset */#define TXDESC_CMD_OFFSET               11  /* command offset */#define TXDESC_STATUS_OFFSET            12  /* status offset */#define TXDESC_CSS_OFFSET               13  /* cksum start */#define TXDESC_SPECIAL_OFFSET           14  /* special field */#define TXDESC_SIZE                     16  /* descriptor size */#define TXDESC_CTX_IPCSS_OFFSET         0   /* CXT descriptor IPCSS */#define TXDESC_CTX_TUCSS_OFFSET         4   /* CXT descriptor TUCSS *//* RX descriptor structure */#define RXDESC_BUFADRLOW_OFFSET         0   /* buf mem low offset */#define RXDESC_BUFADRHIGH_OFFSET        4   /* buf mem high offset */#define RXDESC_LENGTH_OFFSET            8   /* length offset */#define RXDESC_CHKSUM_OFFSET            10  /* cksum offset */#define RXDESC_STATUS_OFFSET            12  /* status offset */#define RXDESC_ERROR_OFFSET             13  /* error offset */#define RXDESC_SPECIAL_OFFSET           14  /* special offset */#define RXDESC_SIZE                     16  /* descriptor size */#define TX_ETHER_PHY_SIZE               (EH_SIZE + ETHERMTU + 2)#define PRO1000_PCI_VENDOR_ID           0x8086 /* Intel vendor ID */#define PRO1000_PCI_DEVICE_ID           0x1001 /* device ID */#define PRO1000F_PCI_SUBSYSTEM_ID       0x1003 /* device subsystem ID */#define PRO1000T_PCI_SUBSYSTEM_ID       0x1004#define PRO1000T_PCI_DEVICE_ID          0x1004 /* bizard case */#define PRO1000F_BOARD                  0x1003 /* backward compatible */#define PRO1000T_BOARD                  0x1003 /* backward compatible */#define INTEL_PCI_VENDOR_ID             0x8086#define PRO1000_546_BOARD               0x100e /* 82540/82545/82546 MAC */#define PRO1000_544_BOARD               0x1008 /* 82544 MAC */#define PRO1000_543_BOARD               0x1003 /* 82543 MAC */#define GEI_COPPER_MEDIA                1#define GEI_FIBER_MEDIA                 2#define GEI_PHY_GMII_TYPE               1#define DEFAULT_RXRES_PROCESS_FACTOR    2#define DEFAULT_TIMER_INTERVAL          2       /* 2 seconds */#define DEFAULT_DRV_FLAGS               0#define DEFAULT_LOAN_RXBUF_FACTOR       4#define DEFAULT_MBLK_NUM_FACTOR         4#define DEFAULT_MBUF_COPY_SIZE          256#define DEFAULT_NUM_TXDES               24#define DEFAULT_NUM_RXDES               24#define DEFAULT_RXINT_DELAY             0#define DEFAULT_MULTI_FILTER_TYPE       MULTI_FILTER_TYPE_47_36#define DEFAULT_FLOW_CONTRL             FLOW_CONTRL_HW#define DEFAULT_TX_REPORT               TX_REPORT_RS#define DEFAULT_TIPG_IPGT_F             6#define DEFAULT_TIPG_IPGT_T             8#define DEFAULT_TIPG_IPGR1              8#define DEFAULT_TIPG_IPGR2              6#define GEI543_MAX_DEV_UNIT             4/* flags available to config system */ #define GEI_END_SET_TIMER               0x0001 /* use a watchdog timer */   #define GEI_END_SET_RX_PRIORITY         0x0002 /* RX has higher priority (543 only) */#define GEI_END_FREE_RESOURCE_DELAY     0x0004 /* allow delay to free loaned TX cluster */ #define GEI_END_JUMBO_FRAME_SUPPORT     0x0008 /* Jumbo Frame allowed */#define GEI_END_RX_IP_XSUM              0x0010 /* RX IP XSUM allowed, not supported */#define GEI_END_RX_TCPUDP_XSUM          0x0020 /* RX TCP XSUM allowed, not supported */#define GEI_END_TX_IP_XSUM              0x0040 /* TX IP XSUM allowed, not supported */#define GEI_END_TX_TCPUDP_XSUM          0x0080 /* TX TCP XSUM allowed, not supported */#define GEI_END_TX_TCP_SEGMENTATION     0x0100 /* TX TCP segmentation, not supported */#define GEI_END_TBI_COMPATIBILITY       0x0200 /* TBI compatibility workaround (543 only) */#define GEI_END_USER_MEM_FOR_DESC_ONLY  0x0400 /* cacheable user mem for RX descriptors only */ #define GEI_DEFAULT_RXDES_NUM           0x40#define GEI_DEFAULT_TXDES_NUM           0x80#define GEI_DEFAULT_USR_FLAG            (GEI_END_SET_TIMER | \                                         GEI_END_SET_RX_PRIORITY | \                                         GEI_END_FREE_RESOURCE_DELAY)#define GEI_DEFAULT_ETHERHEADER         (SIZEOF_ETHERHEADER)#define GEI_MAX_FRAME_SIZE              16288 /* based on default RX/TX                                                buffer configuration */#define GEI_MAX_JUMBO_MTU_SIZE          (GEI_MAX_FRAME_SIZE - \                                         GEI_DEFAULT_ETHERHEADER - \                                         ETHER_CRC_LENGTH)   #define GEI_DEFAULT_JUMBO_MTU_SIZE      9000      /* 9000 bytes */#define AVAIL_TX_INT                    (INT_TXDW_BIT)#define AVAIL_RX_INT                    (INT_RXO_BIT | INT_RXTO_BIT)#define AVAIL_RX_TX_INT                 (AVAIL_TX_INT | AVAIL_RX_INT)#define AVAIL_LINK_INT                  (INT_LSC_BIT)#define INT_LINK_CHECK                  (AVAIL_LINK_INT | INT_RXCFG_BIT)#define INTEL_82543GC_VALID_INT         (AVAIL_RX_TX_INT | INT_LINK_CHECK | INT_TXDLOW_BIT) #define MAX_TXINT_DELAY                 65536#define MAX_RXINT_DELAY                 65536#define MIN_TXINT_DELAY                 1#define TXINT_DELAY_LESS                5#define TXINT_DELAY_MORE                512 #define ETHER_CRC_LENGTH                4#define RX_CRC_LEN                      ETHER_CRC_LENGTH#define MAX_ETHER_PACKET_SIZE           1514 #define MIN_ETHER_PACKET_SIZE           60#define ETHER_ADDRESS_SIZE              6#define CARRIER_EXTENSION_BYTE          0x0f#define INTEL_82543GC_MTA_NUM           128#define INTEL_82543GC_MULTIPLE_DES      8#define TX_COLLISION_THRESHOLD          16#define FDX_COLLISION_DISTANCE          64#define HDX_COLLISION_DISTANCE          64#define BIG_HDX_COLLISION_DISTANCE      512#define NUM_RAR                         16#define NUM_MTA                         128#define NUM_VLAN                        128#define MAX_NUM_MULTI                   (NUM_RAR + NUM_MTA - 1)#define MULTI_FILTER_TYPE_47_36         0#define MULTI_FILTER_TYPE_46_35         1#define MULTI_FILTER_TYPE_45_34         2#define MULTI_FILTER_TYPE_43_32         3#define FLOW_CONTRL_NONE                0#define FLOW_CONTRL_TRANSMIT            1#define FLOW_CONTRL_RECEIVE             2#define FLOW_CONTRL_ALL                 3#define FLOW_CONTRL_HW                  0xf#define TX_REPORT_RS                    1#define TX_REPORT_RPS                   2#define DMA_RX_PRIORITY                 1#define DMA_FAIR_RX_TX                  2#define FULL_DUPLEX_MODE                1#define HALF_DUPLEX_MODE                2#define DUPLEX_HW                       3#define DEFAULT_DUPLEX_MODE             FULL_DUPLEX_MODE#define END_SPEED_10M                   10000000    /* 10Mbs */#define END_SPEED_100M                  100000000   /* 100Mbs */#define END_SPEED_1000M                 1000000000  /* 1000Mbs */#define END_SPEED                       END_SPEED_1000M#define DEVICE_NAME                     "gei" #define DEVICE_NAME_LENGTH              4 #define TYPE_PRO1000F_PCI               1#define TYPE_PRO1000T_PCI               2#define GEI82543_HW_AUTO                0x1#define GEI82543_FORCE_LINK             0x2/* general flags */#define FLAG_POLLING_MODE               0x0001#define FLAG_PROMISC_MODE               0x0002#define FLAG_ALLMULTI_MODE              0x0004#define FLAG_MULTICAST_MODE             0x0008#define FLAG_BROADCAST_MODE             0x0010/* misc */#define TX_RESTART_NONE                 0x4000 /* muxTxRestart not scheduled */#define TX_RESTART_TRUE                 0x8000 /* muxTxRestart is scheduled */#define LINK_STATUS_OK                  0#define LINK_STATUS_ERROR               1#define LINK_STATUS_UNKNOWN             2#define FREE_ALL_AUTO                   1#define FREE_ALL_FORCE                  2#define TX_LOAN_TRANSMIT                1#define TX_COPY_TRANSMIT                2#define LINK_TIMEOUT_IN_QUAR_SEC        12 /* 3s */#define GEI_MII_PHY_CAP_FLAGS           (MII_PHY_10 | MII_PHY_100 | \                                         MII_PHY_FD | MII_PHY_HD | \                                         MII_PHY_1000T_FD)/* register area *//* TX registers */#define INTEL_82543GC_TDBAL             0x3800  /* Tx Descriptor Base Low */#define INTEL_82543GC_TDBAH             0x3804  /* Tx Descriptor Base High */#define INTEL_82543GC_TDLEN             0x3808  /* Tx Descriptor Length */#define INTEL_82543GC_TDH               0x3810  /* Tx Descriptor Head */#define INTEL_82543GC_TDT               0x3818  /* Tx Descriptor Tail *//* RX registers */#define INTEL_82543GC_RDBAL             0x2800  /* Rx Descriptor Base Low */#define INTEL_82543GC_RDBAH             0x2804  /* Rx Descriptor Base High */#define INTEL_82543GC_RDLEN             0x2808  /* Rx Descriptor Length */#define INTEL_82543GC_RDH               0x2810  /* Rx Descriptor Head */#define INTEL_82543GC_RDT               0x2818  /* Rx Descriptor Tail *//* Interrupt registers */#define INTEL_82543GC_ICR               0xc0    /* Interrupt Cause Read */#define INTEL_82543GC_ICS               0xc8    /* Interrupt Cause Set */#define INTEL_82543GC_IMS               0xd0    /* Interrupt Mask Set/Read */#define INTEL_82543GC_IMC               0xD8    /* Interrupt Mask Clear */#define INTEL_82543GC_CTRL              0x0     /* Device Control */#define INTEL_82543GC_STATUS            0x8	/* Device Status */#define INTEL_82543GC_EECD              0x10    /* EEPROM/Flash Data */#define INTEL_82543GC_CTRL_EXT          0x18    /* Extended Device Control */#define INTEL_82543GC_MDI               0x20    /* MDI Control */#define INTEL_82543GC_FCAL              0x28    /* Flow Control Adr Low */#define INTEL_82543GC_FCAH              0x2c    /* Flow Control Adr High */#define INTEL_82543GC_FCT               0x30    /* Flow Control Type */#define INTEL_82543GC_VET               0x38    /* VLAN EtherType */

⌨️ 快捷键说明

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