📄 e1000_defines.h
字号:
#define E1000_RXCSUM_TUOFL 0x00000200 /* TCP / UDP checksum offload */#define E1000_RXCSUM_IPV6OFL 0x00000400 /* IPv6 checksum offload */#define E1000_RXCSUM_IPPCSE 0x00001000 /* IP payload checksum enable */#define E1000_RXCSUM_PCSD 0x00002000 /* packet checksum disabled *//* Header split receive */#define E1000_RFCTL_ISCSI_DIS 0x00000001#define E1000_RFCTL_ISCSI_DWC_MASK 0x0000003E#define E1000_RFCTL_ISCSI_DWC_SHIFT 1#define E1000_RFCTL_NFSW_DIS 0x00000040#define E1000_RFCTL_NFSR_DIS 0x00000080#define E1000_RFCTL_NFS_VER_MASK 0x00000300#define E1000_RFCTL_NFS_VER_SHIFT 8#define E1000_RFCTL_IPV6_DIS 0x00000400#define E1000_RFCTL_IPV6_XSUM_DIS 0x00000800#define E1000_RFCTL_ACK_DIS 0x00001000#define E1000_RFCTL_ACKD_DIS 0x00002000#define E1000_RFCTL_IPFRSP_DIS 0x00004000#define E1000_RFCTL_EXTEN 0x00008000#define E1000_RFCTL_IPV6_EX_DIS 0x00010000#define E1000_RFCTL_NEW_IPV6_EXT_DIS 0x00020000/* Collision related configuration parameters */#define E1000_COLLISION_THRESHOLD 15#define E1000_CT_SHIFT 4#define E1000_COLLISION_DISTANCE 63#define E1000_COLD_SHIFT 12/* Default values for the transmit IPG register */#define DEFAULT_82542_TIPG_IPGT 10#define DEFAULT_82543_TIPG_IPGT_FIBER 9#define DEFAULT_82543_TIPG_IPGT_COPPER 8#define E1000_TIPG_IPGT_MASK 0x000003FF#define E1000_TIPG_IPGR1_MASK 0x000FFC00#define E1000_TIPG_IPGR2_MASK 0x3FF00000#define DEFAULT_82542_TIPG_IPGR1 2#define DEFAULT_82543_TIPG_IPGR1 8#define E1000_TIPG_IPGR1_SHIFT 10#define DEFAULT_82542_TIPG_IPGR2 10#define DEFAULT_82543_TIPG_IPGR2 6#define DEFAULT_80003ES2LAN_TIPG_IPGR2 7#define E1000_TIPG_IPGR2_SHIFT 20/* Ethertype field values */#define ETHERNET_IEEE_VLAN_TYPE 0x8100 /* 802.3ac packet */#define ETHERNET_FCS_SIZE 4#define MAX_JUMBO_FRAME_SIZE 0x3F00/* Extended Configuration Control and Size */#define E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP 0x00000020#define E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE 0x00000001#define E1000_EXTCNF_CTRL_SWFLAG 0x00000020#define E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_MASK 0x00FF0000#define E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_SHIFT 16#define E1000_EXTCNF_CTRL_EXT_CNF_POINTER_MASK 0x0FFF0000#define E1000_EXTCNF_CTRL_EXT_CNF_POINTER_SHIFT 16#define E1000_PHY_CTRL_SPD_EN 0x00000001#define E1000_PHY_CTRL_D0A_LPLU 0x00000002#define E1000_PHY_CTRL_NOND0A_LPLU 0x00000004#define E1000_PHY_CTRL_NOND0A_GBE_DISABLE 0x00000008#define E1000_PHY_CTRL_GBE_DISABLE 0x00000040#define E1000_KABGTXD_BGSQLBIAS 0x00050000/* PBA constants */#define E1000_PBA_8K 0x0008 /* 8KB, default Rx allocation */#define E1000_PBA_12K 0x000C /* 12KB, default Rx allocation */#define E1000_PBA_16K 0x0010 /* 16KB, default TX allocation */#define E1000_PBA_20K 0x0014#define E1000_PBA_22K 0x0016#define E1000_PBA_24K 0x0018#define E1000_PBA_30K 0x001E#define E1000_PBA_32K 0x0020#define E1000_PBA_34K 0x0022#define E1000_PBA_38K 0x0026#define E1000_PBA_40K 0x0028#define E1000_PBA_48K 0x0030 /* 48KB, default RX allocation */#define E1000_PBS_16K E1000_PBA_16K#define E1000_PBS_24K E1000_PBA_24K#define IFS_MAX 80#define IFS_MIN 40#define IFS_RATIO 4#define IFS_STEP 10#define MIN_NUM_XMITS 1000/* SW Semaphore Register */#define E1000_SWSM_SMBI 0x00000001 /* Driver Semaphore bit */#define E1000_SWSM_SWESMBI 0x00000002 /* FW Semaphore bit */#define E1000_SWSM_WMNG 0x00000004 /* Wake MNG Clock */#define E1000_SWSM_DRV_LOAD 0x00000008 /* Driver Loaded Bit *//* Interrupt Cause Read */#define E1000_ICR_TXDW 0x00000001 /* Transmit desc written back */#define E1000_ICR_TXQE 0x00000002 /* Transmit Queue empty */#define E1000_ICR_LSC 0x00000004 /* Link Status Change */#define E1000_ICR_RXSEQ 0x00000008 /* rx sequence error */#define E1000_ICR_RXDMT0 0x00000010 /* rx desc min. threshold (0) */#define E1000_ICR_RXO 0x00000040 /* rx overrun */#define E1000_ICR_RXT0 0x00000080 /* rx timer intr (ring 0) */#define E1000_ICR_MDAC 0x00000200 /* MDIO access complete */#define E1000_ICR_RXCFG 0x00000400 /* RX /c/ ordered set */#define E1000_ICR_GPI_EN0 0x00000800 /* GP Int 0 */#define E1000_ICR_GPI_EN1 0x00001000 /* GP Int 1 */#define E1000_ICR_GPI_EN2 0x00002000 /* GP Int 2 */#define E1000_ICR_GPI_EN3 0x00004000 /* GP Int 3 */#define E1000_ICR_TXD_LOW 0x00008000#define E1000_ICR_SRPD 0x00010000#define E1000_ICR_ACK 0x00020000 /* Receive Ack frame */#define E1000_ICR_MNG 0x00040000 /* Manageability event */#define E1000_ICR_DOCK 0x00080000 /* Dock/Undock */#define E1000_ICR_INT_ASSERTED 0x80000000 /* If this bit asserted, the driver should claim the interrupt */#define E1000_ICR_RXD_FIFO_PAR0 0x00100000 /* queue 0 Rx descriptor FIFO parity error */#define E1000_ICR_TXD_FIFO_PAR0 0x00200000 /* queue 0 Tx descriptor FIFO parity error */#define E1000_ICR_HOST_ARB_PAR 0x00400000 /* host arb read buffer parity error */#define E1000_ICR_PB_PAR 0x00800000 /* packet buffer parity error */#define E1000_ICR_RXD_FIFO_PAR1 0x01000000 /* queue 1 Rx descriptor FIFO parity error */#define E1000_ICR_TXD_FIFO_PAR1 0x02000000 /* queue 1 Tx descriptor FIFO parity error */#define E1000_ICR_ALL_PARITY 0x03F00000 /* all parity error bits */#define E1000_ICR_DSW 0x00000020 /* FW changed the status of DISSW bit in the FWSM */#define E1000_ICR_PHYINT 0x00001000 /* LAN connected device generates an interrupt */#define E1000_ICR_EPRST 0x00100000 /* ME handware reset occurs *//* This defines the bits that are set in the Interrupt Mask * Set/Read Register. Each bit is documented below: * o RXDMT0 = Receive Descriptor Minimum Threshold hit (ring 0) * o RXSEQ = Receive Sequence Error */#define POLL_IMS_ENABLE_MASK ( \ E1000_IMS_RXDMT0 | \ E1000_IMS_RXSEQ)/* This defines the bits that are set in the Interrupt Mask * Set/Read Register. Each bit is documented below: * o RXT0 = Receiver Timer Interrupt (ring 0) * o TXDW = Transmit Descriptor Written Back * o RXDMT0 = Receive Descriptor Minimum Threshold hit (ring 0) * o RXSEQ = Receive Sequence Error * o LSC = Link Status Change */#define IMS_ENABLE_MASK ( \ E1000_IMS_RXT0 | \ E1000_IMS_TXDW | \ E1000_IMS_RXDMT0 | \ E1000_IMS_RXSEQ | \ E1000_IMS_LSC)/* Interrupt Mask Set */#define E1000_IMS_TXDW E1000_ICR_TXDW /* Transmit desc written back */#define E1000_IMS_TXQE E1000_ICR_TXQE /* Transmit Queue empty */#define E1000_IMS_LSC E1000_ICR_LSC /* Link Status Change */#define E1000_IMS_RXSEQ E1000_ICR_RXSEQ /* rx sequence error */#define E1000_IMS_RXDMT0 E1000_ICR_RXDMT0 /* rx desc min. threshold */#define E1000_IMS_RXO E1000_ICR_RXO /* rx overrun */#define E1000_IMS_RXT0 E1000_ICR_RXT0 /* rx timer intr */#define E1000_IMS_MDAC E1000_ICR_MDAC /* MDIO access complete */#define E1000_IMS_RXCFG E1000_ICR_RXCFG /* RX /c/ ordered set */#define E1000_IMS_GPI_EN0 E1000_ICR_GPI_EN0 /* GP Int 0 */#define E1000_IMS_GPI_EN1 E1000_ICR_GPI_EN1 /* GP Int 1 */#define E1000_IMS_GPI_EN2 E1000_ICR_GPI_EN2 /* GP Int 2 */#define E1000_IMS_GPI_EN3 E1000_ICR_GPI_EN3 /* GP Int 3 */#define E1000_IMS_TXD_LOW E1000_ICR_TXD_LOW#define E1000_IMS_SRPD E1000_ICR_SRPD#define E1000_IMS_ACK E1000_ICR_ACK /* Receive Ack frame */#define E1000_IMS_MNG E1000_ICR_MNG /* Manageability event */#define E1000_IMS_DOCK E1000_ICR_DOCK /* Dock/Undock */#define E1000_IMS_RXD_FIFO_PAR0 E1000_ICR_RXD_FIFO_PAR0 /* queue 0 Rx descriptor FIFO parity error */#define E1000_IMS_TXD_FIFO_PAR0 E1000_ICR_TXD_FIFO_PAR0 /* queue 0 Tx descriptor FIFO parity error */#define E1000_IMS_HOST_ARB_PAR E1000_ICR_HOST_ARB_PAR /* host arb read buffer parity error */#define E1000_IMS_PB_PAR E1000_ICR_PB_PAR /* packet buffer parity error */#define E1000_IMS_RXD_FIFO_PAR1 E1000_ICR_RXD_FIFO_PAR1 /* queue 1 Rx descriptor FIFO parity error */#define E1000_IMS_TXD_FIFO_PAR1 E1000_ICR_TXD_FIFO_PAR1 /* queue 1 Tx descriptor FIFO parity error */#define E1000_IMS_DSW E1000_ICR_DSW#define E1000_IMS_PHYINT E1000_ICR_PHYINT#define E1000_IMS_EPRST E1000_ICR_EPRST/* Interrupt Cause Set */#define E1000_ICS_TXDW E1000_ICR_TXDW /* Transmit desc written back */#define E1000_ICS_TXQE E1000_ICR_TXQE /* Transmit Queue empty */#define E1000_ICS_LSC E1000_ICR_LSC /* Link Status Change */#define E1000_ICS_RXSEQ E1000_ICR_RXSEQ /* rx sequence error */#define E1000_ICS_RXDMT0 E1000_ICR_RXDMT0 /* rx desc min. threshold */#define E1000_ICS_RXO E1000_ICR_RXO /* rx overrun */#define E1000_ICS_RXT0 E1000_ICR_RXT0 /* rx timer intr */#define E1000_ICS_MDAC E1000_ICR_MDAC /* MDIO access complete */#define E1000_ICS_RXCFG E1000_ICR_RXCFG /* RX /c/ ordered set */#define E1000_ICS_GPI_EN0 E1000_ICR_GPI_EN0 /* GP Int 0 */#define E1000_ICS_GPI_EN1 E1000_ICR_GPI_EN1 /* GP Int 1 */#define E1000_ICS_GPI_EN2 E1000_ICR_GPI_EN2 /* GP Int 2 */#define E1000_ICS_GPI_EN3 E1000_ICR_GPI_EN3 /* GP Int 3 */#define E1000_ICS_TXD_LOW E1000_ICR_TXD_LOW#define E1000_ICS_SRPD E1000_ICR_SRPD#define E1000_ICS_ACK E1000_ICR_ACK /* Receive Ack frame */#define E1000_ICS_MNG E1000_ICR_MNG /* Manageability event */#define E1000_ICS_DOCK E1000_ICR_DOCK /* Dock/Undock */#define E1000_ICS_RXD_FIFO_PAR0 E1000_ICR_RXD_FIFO_PAR0 /* queue 0 Rx descriptor FIFO parity error */#define E1000_ICS_TXD_FIFO_PAR0 E1000_ICR_TXD_FIFO_PAR0 /* queue 0 Tx descriptor FIFO parity error */#define E1000_ICS_HOST_ARB_PAR E1000_ICR_HOST_ARB_PAR /* host arb read buffer parity error */#define E1000_ICS_PB_PAR E1000_ICR_PB_PAR /* packet buffer parity error */#define E1000_ICS_RXD_FIFO_PAR1 E1000_ICR_RXD_FIFO_PAR1 /* queue 1 Rx descriptor FIFO parity error */#define E1000_ICS_TXD_FIFO_PAR1 E1000_ICR_TXD_FIFO_PAR1 /* queue 1 Tx descriptor FIFO parity error */#define E1000_ICS_DSW E1000_ICR_DSW#define E1000_ICS_PHYINT E1000_ICR_PHYINT#define E1000_ICS_EPRST E1000_ICR_EPRST/* Transmit Descriptor Control */#define E1000_TXDCTL_PTHRESH 0x0000003F /* TXDCTL Prefetch Threshold */#define E1000_TXDCTL_HTHRESH 0x00003F00 /* TXDCTL Host Threshold */#define E1000_TXDCTL_WTHRESH 0x003F0000 /* TXDCTL Writeback Threshold */#define E1000_TXDCTL_GRAN 0x01000000 /* TXDCTL Granularity */#define E1000_TXDCTL_LWTHRESH 0xFE000000 /* TXDCTL Low Threshold */#define E1000_TXDCTL_FULL_TX_DESC_WB 0x01010000 /* GRAN=1, WTHRESH=1 */#define E1000_TXDCTL_MAX_TX_DESC_PREFETCH 0x0100001F /* GRAN=1, PTHRESH=31 */#define E1000_TXDCTL_COUNT_DESC 0x00400000 /* Enable the counting of desc. still to be processed. *//* Flow Control Constants */#define FLOW_CONTROL_ADDRESS_LOW 0x00C28001#define FLOW_CONTROL_ADDRESS_HIGH 0x00000100#define FLOW_CONTROL_TYPE 0x8808/* 802.1q VLAN Packet Size */#define VLAN_TAG_SIZE 4 /* 802.3ac tag (not DMA'd) */#define E1000_VLAN_FILTER_TBL_SIZE 128 /* VLAN Filter Table (4096 bits) *//* Receive Address *//* Number of high/low register pairs in the RAR. The RAR (Receive Address * Registers) holds the directed and multicast addresses that we monitor. * Technically, we have 16 spots. However, we reserve one of these spots * (RAR[15]) for our directed address used by controllers with * manageability enabled, allowing us room for 15 multicast addresses. */#define E1000_RAR_ENTRIES 15#define E1000_RAH_AV 0x80000000 /* Receive descriptor valid *//* Error Codes */#define E1000_SUCCESS 0#define E1000_ERR_NVM 1#define E1000_ERR_PHY 2#define E1000_ERR_CONFIG 3#define E1000_ERR_PARAM 4#define E1000_ERR_MAC_INIT 5#define E1000_ERR_PHY_TYPE 6#define E1000_ERR_RESET 9#define E1000_ERR_MASTER_REQUESTS_PENDING 10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -