📄 e1000_defines.h
字号:
#define E1000_LEDCTL_MODE_PCIX_MODE 0x8#define E1000_LEDCTL_MODE_FULL_DUPLEX 0x9#define E1000_LEDCTL_MODE_COLLISION 0xA#define E1000_LEDCTL_MODE_BUS_SPEED 0xB#define E1000_LEDCTL_MODE_BUS_SIZE 0xC#define E1000_LEDCTL_MODE_PAUSED 0xD#define E1000_LEDCTL_MODE_LED_ON 0xE#define E1000_LEDCTL_MODE_LED_OFF 0xF/* Transmit Descriptor bit definitions */#define E1000_TXD_DTYP_D 0x00100000 /* Data Descriptor */#define E1000_TXD_DTYP_C 0x00000000 /* Context Descriptor */#define E1000_TXD_POPTS_SHIFT 8 /* POPTS shift */#define E1000_TXD_POPTS_IXSM 0x01 /* Insert IP checksum */#define E1000_TXD_POPTS_TXSM 0x02 /* Insert TCP/UDP checksum */#define E1000_TXD_CMD_EOP 0x01000000 /* End of Packet */#define E1000_TXD_CMD_IFCS 0x02000000 /* Insert FCS (Ethernet CRC) */#define E1000_TXD_CMD_IC 0x04000000 /* Insert Checksum */#define E1000_TXD_CMD_RS 0x08000000 /* Report Status */#define E1000_TXD_CMD_RPS 0x10000000 /* Report Packet Sent */#define E1000_TXD_CMD_DEXT 0x20000000 /* Descriptor extension (0 = legacy) */#define E1000_TXD_CMD_VLE 0x40000000 /* Add VLAN tag */#define E1000_TXD_CMD_IDE 0x80000000 /* Enable Tidv register */#define E1000_TXD_STAT_DD 0x00000001 /* Descriptor Done */#define E1000_TXD_STAT_EC 0x00000002 /* Excess Collisions */#define E1000_TXD_STAT_LC 0x00000004 /* Late Collisions */#define E1000_TXD_STAT_TU 0x00000008 /* Transmit underrun */#define E1000_TXD_CMD_TCP 0x01000000 /* TCP packet */#define E1000_TXD_CMD_IP 0x02000000 /* IP packet */#define E1000_TXD_CMD_TSE 0x04000000 /* TCP Seg enable */#define E1000_TXD_STAT_TC 0x00000004 /* Tx Underrun *//* Extended desc bits for Linksec and timesync *//* Transmit Control */#define E1000_TCTL_RST 0x00000001 /* software reset */#define E1000_TCTL_EN 0x00000002 /* enable tx */#define E1000_TCTL_BCE 0x00000004 /* busy check enable */#define E1000_TCTL_PSP 0x00000008 /* pad short packets */#define E1000_TCTL_CT 0x00000ff0 /* collision threshold */#define E1000_TCTL_COLD 0x003ff000 /* collision distance */#define E1000_TCTL_SWXOFF 0x00400000 /* SW Xoff transmission */#define E1000_TCTL_PBE 0x00800000 /* Packet Burst Enable */#define E1000_TCTL_RTLC 0x01000000 /* Re-transmit on late collision */#define E1000_TCTL_NRTU 0x02000000 /* No Re-transmit on underrun */#define E1000_TCTL_MULR 0x10000000 /* Multiple request support *//* Transmit Arbitration Count */#define E1000_TARC0_ENABLE 0x00000400 /* Enable Tx Queue 0 *//* SerDes Control */#define E1000_SCTL_DISABLE_SERDES_LOOPBACK 0x0400/* Receive Checksum Control */#define E1000_RXCSUM_PCSS_MASK 0x000000FF /* Packet Checksum Start */#define E1000_RXCSUM_IPOFL 0x00000100 /* IPv4 checksum offload */#define E1000_RXCSUM_TUOFL 0x00000200 /* TCP / UDP checksum offload */#define E1000_RXCSUM_IPV6OFL 0x00000400 /* IPv6 checksum offload */#define E1000_RXCSUM_CRCOFL 0x00000800 /* CRC32 offload enable */#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 */#define E1000_PBA_12K 0x000C /* 12KB */#define E1000_PBA_16K 0x0010 /* 16KB */#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 */#define E1000_PBA_64K 0x0040 /* 64KB */#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 *//* Extended Interrupt Cause Read */#define E1000_EICR_RX_QUEUE0 0x00000001 /* Rx Queue 0 Interrupt */#define E1000_EICR_RX_QUEUE1 0x00000002 /* Rx Queue 1 Interrupt */#define E1000_EICR_RX_QUEUE2 0x00000004 /* Rx Queue 2 Interrupt */#define E1000_EICR_RX_QUEUE3 0x00000008 /* Rx Queue 3 Interrupt */#define E1000_EICR_TX_QUEUE0 0x00000100 /* Tx Queue 0 Interrupt */#define E1000_EICR_TX_QUEUE1 0x00000200 /* Tx Queue 1 Interrupt */#define E1000_EICR_TX_QUEUE2 0x00000400 /* Tx Queue 2 Interrupt */#define E1000_EICR_TX_QUEUE3 0x00000800 /* Tx Queue 3 Interrupt */#define E1000_EICR_TCP_TIMER 0x40000000 /* TCP Timer */#define E1000_EICR_OTHER 0x80000000 /* Interrupt Cause Active *//* TCP Timer */#define E1000_TCPTIMER_KS 0x00000100 /* KickStart */#define E1000_TCPTIMER_COUNT_ENABLE 0x00000200 /* Count Enable */#define E1000_TCPTIMER_COUNT_FINISH 0x00000400 /* Count finish */#define E1000_TCPTIMER_LOOP 0x00000800 /* Loop *//* * 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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -