📄 e1000.h
字号:
/* Extended Device Control */#define E1000_CTRL_EXT_GPI0_EN 0x00000001 /* Maps SDP4 to GPI0 */#define E1000_CTRL_EXT_GPI1_EN 0x00000002 /* Maps SDP5 to GPI1 */#define E1000_CTRL_EXT_PHYINT_EN E1000_CTRL_EXT_GPI1_EN#define E1000_CTRL_EXT_GPI2_EN 0x00000004 /* Maps SDP6 to GPI2 */#define E1000_CTRL_EXT_GPI3_EN 0x00000008 /* Maps SDP7 to GPI3 */#define E1000_CTRL_EXT_SDP4_DATA 0x00000010 /* Value of SW Defineable Pin 4 */#define E1000_CTRL_EXT_SDP5_DATA 0x00000020 /* Value of SW Defineable Pin 5 */#define E1000_CTRL_EXT_PHY_INT E1000_CTRL_EXT_SDP5_DATA#define E1000_CTRL_EXT_SDP6_DATA 0x00000040 /* Value of SW Defineable Pin 6 */#define E1000_CTRL_EXT_SWDPIN6 0x00000040 /* SWDPIN 6 value */#define E1000_CTRL_EXT_SDP7_DATA 0x00000080 /* Value of SW Defineable Pin 7 */#define E1000_CTRL_EXT_SWDPIN7 0x00000080 /* SWDPIN 7 value */#define E1000_CTRL_EXT_SDP4_DIR 0x00000100 /* Direction of SDP4 0=in 1=out */#define E1000_CTRL_EXT_SDP5_DIR 0x00000200 /* Direction of SDP5 0=in 1=out */#define E1000_CTRL_EXT_SDP6_DIR 0x00000400 /* Direction of SDP6 0=in 1=out */#define E1000_CTRL_EXT_SWDPIO6 0x00000400 /* SWDPIN 6 Input or output */#define E1000_CTRL_EXT_SDP7_DIR 0x00000800 /* Direction of SDP7 0=in 1=out */#define E1000_CTRL_EXT_SWDPIO7 0x00000800 /* SWDPIN 7 Input or output */#define E1000_CTRL_EXT_ASDCHK 0x00001000 /* Initiate an ASD sequence */#define E1000_CTRL_EXT_EE_RST 0x00002000 /* Reinitialize from EEPROM */#define E1000_CTRL_EXT_IPS 0x00004000 /* Invert Power State */#define E1000_CTRL_EXT_SPD_BYPS 0x00008000 /* Speed Select Bypass */#define E1000_CTRL_EXT_LINK_MODE_MASK 0x00C00000#define E1000_CTRL_EXT_LINK_MODE_GMII 0x00000000#define E1000_CTRL_EXT_LINK_MODE_TBI 0x00C00000#define E1000_CTRL_EXT_WR_WMARK_MASK 0x03000000#define E1000_CTRL_EXT_WR_WMARK_256 0x00000000#define E1000_CTRL_EXT_WR_WMARK_320 0x01000000#define E1000_CTRL_EXT_WR_WMARK_384 0x02000000#define E1000_CTRL_EXT_WR_WMARK_448 0x03000000/* MDI Control */#define E1000_MDIC_DATA_MASK 0x0000FFFF#define E1000_MDIC_REG_MASK 0x001F0000#define E1000_MDIC_REG_SHIFT 16#define E1000_MDIC_PHY_MASK 0x03E00000#define E1000_MDIC_PHY_SHIFT 21#define E1000_MDIC_OP_WRITE 0x04000000#define E1000_MDIC_OP_READ 0x08000000#define E1000_MDIC_READY 0x10000000#define E1000_MDIC_INT_EN 0x20000000#define E1000_MDIC_ERROR 0x40000000/* LED Control */#define E1000_LEDCTL_LED0_MODE_MASK 0x0000000F#define E1000_LEDCTL_LED0_MODE_SHIFT 0#define E1000_LEDCTL_LED0_IVRT 0x00000040#define E1000_LEDCTL_LED0_BLINK 0x00000080#define E1000_LEDCTL_LED1_MODE_MASK 0x00000F00#define E1000_LEDCTL_LED1_MODE_SHIFT 8#define E1000_LEDCTL_LED1_IVRT 0x00004000#define E1000_LEDCTL_LED1_BLINK 0x00008000#define E1000_LEDCTL_LED2_MODE_MASK 0x000F0000#define E1000_LEDCTL_LED2_MODE_SHIFT 16#define E1000_LEDCTL_LED2_IVRT 0x00400000#define E1000_LEDCTL_LED2_BLINK 0x00800000#define E1000_LEDCTL_LED3_MODE_MASK 0x0F000000#define E1000_LEDCTL_LED3_MODE_SHIFT 24#define E1000_LEDCTL_LED3_IVRT 0x40000000#define E1000_LEDCTL_LED3_BLINK 0x80000000#define E1000_LEDCTL_MODE_LINK_10_1000 0x0#define E1000_LEDCTL_MODE_LINK_100_1000 0x1#define E1000_LEDCTL_MODE_LINK_UP 0x2#define E1000_LEDCTL_MODE_ACTIVITY 0x3#define E1000_LEDCTL_MODE_LINK_ACTIVITY 0x4#define E1000_LEDCTL_MODE_LINK_10 0x5#define E1000_LEDCTL_MODE_LINK_100 0x6#define E1000_LEDCTL_MODE_LINK_1000 0x7#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/* Receive Address */#define E1000_RAH_AV 0x80000000 /* Receive descriptor valid *//* 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/* 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/* 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/* Interrupt Mask Clear */#define E1000_IMC_TXDW E1000_ICR_TXDW /* Transmit desc written back */#define E1000_IMC_TXQE E1000_ICR_TXQE /* Transmit Queue empty */#define E1000_IMC_LSC E1000_ICR_LSC /* Link Status Change */#define E1000_IMC_RXSEQ E1000_ICR_RXSEQ /* rx sequence error */#define E1000_IMC_RXDMT0 E1000_ICR_RXDMT0 /* rx desc min. threshold */#define E1000_IMC_RXO E1000_ICR_RXO /* rx overrun */#define E1000_IMC_RXT0 E1000_ICR_RXT0 /* rx timer intr */#define E1000_IMC_MDAC E1000_ICR_MDAC /* MDIO access complete */#define E1000_IMC_RXCFG E1000_ICR_RXCFG /* RX /c/ ordered set */#define E1000_IMC_GPI_EN0 E1000_ICR_GPI_EN0 /* GP Int 0 */#define E1000_IMC_GPI_EN1 E1000_ICR_GPI_EN1 /* GP Int 1 */#define E1000_IMC_GPI_EN2 E1000_ICR_GPI_EN2 /* GP Int 2 */#define E1000_IMC_GPI_EN3 E1000_ICR_GPI_EN3 /* GP Int 3 */#define E1000_IMC_TXD_LOW E1000_ICR_TXD_LOW#define E1000_IMC_SRPD E1000_ICR_SRPD/* Receive Control */#define E1000_RCTL_RST 0x00000001 /* Software reset */#define E1000_RCTL_EN 0x00000002 /* enable */#define E1000_RCTL_SBP 0x00000004 /* store bad packet */#define E1000_RCTL_UPE 0x00000008 /* unicast promiscuous enable */#define E1000_RCTL_MPE 0x00000010 /* multicast promiscuous enab */#define E1000_RCTL_LPE 0x00000020 /* long packet enable */#define E1000_RCTL_LBM_NO 0x00000000 /* no loopback mode */#define E1000_RCTL_LBM_MAC 0x00000040 /* MAC loopback mode */#define E1000_RCTL_LBM_SLP 0x00000080 /* serial link loopback mode */#define E1000_RCTL_LBM_TCVR 0x000000C0 /* tcvr loopback mode */#define E1000_RCTL_RDMTS_HALF 0x00000000 /* rx desc min threshold size */#define E1000_RCTL_RDMTS_QUAT 0x00000100 /* rx desc min threshold size */#define E1000_RCTL_RDMTS_EIGTH 0x00000200 /* rx desc min threshold size */#define E1000_RCTL_MO_SHIFT 12 /* multicast offset shift */#define E1000_RCTL_MO_0 0x00000000 /* multicast offset 11:0 */#define E1000_RCTL_MO_1 0x00001000 /* multicast offset 12:1 */#define E1000_RCTL_MO_2 0x00002000 /* multicast offset 13:2 */#define E1000_RCTL_MO_3 0x00003000 /* multicast offset 15:4 */#define E1000_RCTL_MDR 0x00004000 /* multicast desc ring 0 */#define E1000_RCTL_BAM 0x00008000 /* broadcast enable *//* these buffer sizes are valid if E1000_RCTL_BSEX is 0 */#define E1000_RCTL_SZ_2048 0x00000000 /* rx buffer size 2048 */#define E1000_RCTL_SZ_1024 0x00010000 /* rx buffer size 1024 */#define E1000_RCTL_SZ_512 0x00020000 /* rx buffer size 512 */#define E1000_RCTL_SZ_256 0x00030000 /* rx buffer size 256 *//* these buffer sizes are valid if E1000_RCTL_BSEX is 1 */#define E1000_RCTL_SZ_16384 0x00010000 /* rx buffer size 16384 */#define E1000_RCTL_SZ_8192 0x00020000 /* rx buffer size 8192 */#define E1000_RCTL_SZ_4096 0x00030000 /* rx buffer size 4096 */#define E1000_RCTL_VFE 0x00040000 /* vlan filter enable */#define E1000_RCTL_CFIEN 0x00080000 /* canonical form enable */#define E1000_RCTL_CFI 0x00100000 /* canonical form indicator */#define E1000_RCTL_DPF 0x00400000 /* discard pause frames */#define E1000_RCTL_PMCF 0x00800000 /* pass MAC control frames */#define E1000_RCTL_BSEX 0x02000000 /* Buffer size extension *//* Receive Descriptor */#define E1000_RDT_DELAY 0x0000ffff /* Delay timer (1=1024us) */#define E1000_RDT_FPDB 0x80000000 /* Flush descriptor block */#define E1000_RDLEN_LEN 0x0007ff80 /* descriptor length */#define E1000_RDH_RDH 0x0000ffff /* receive descriptor head */#define E1000_RDT_RDT 0x0000ffff /* receive descriptor tail *//* Flow Control */#define E1000_FCRTH_RTH 0x0000FFF8 /* Mask Bits[15:3] for RTH */#define E1000_FCRTH_XFCE 0x80000000 /* External Flow Control Enable */#define E1000_FCRTL_RTL 0x0000FFF8 /* Mask Bits[15:3] for RTL */#define E1000_FCRTL_XONE 0x80000000 /* Enable XON frame transmission *//* Receive Descriptor Control */#define E1000_RXDCTL_PTHRESH 0x0000003F /* RXDCTL Prefetch Threshold */#define E1000_RXDCTL_HTHRESH 0x00003F00 /* RXDCTL Host Threshold */#define E1000_RXDCTL_WTHRESH 0x003F0000 /* RXDCTL Writeback Threshold */#define E1000_RXDCTL_GRAN 0x01000000 /* RXDCTL Granularity *//* Transmit Descriptor Control */#define E1000_TXDCTL_PTHRESH 0x000000FF /* TXDCTL Prefetch Threshold */#define E1000_TXDCTL_HTHRESH 0x0000FF00 /* TXDCTL Host Threshold */#define E1000_TXDCTL_WTHRESH 0x00FF0000 /* 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 *//* Transmit Configuration Word */#define E1000_TXCW_FD 0x00000020 /* TXCW full duplex */#define E1000_TXCW_HD 0x00000040 /* TXCW half duplex */#define E1000_TXCW_PAUSE 0x00000080 /* TXCW sym pause request */#define E1000_TXCW_ASM_DIR 0x00000100 /* TXCW astm pause direction */#define E1000_TXCW_PAUSE_MASK 0x00000180 /* TXCW pause request mask */#define E1000_TXCW_RF 0x00003000 /* TXCW remote fault */#define E1000_TXCW_NP 0x00008000 /* TXCW next page */#define E1000_TXCW_CW 0x0000ffff /* TxConfigWord mask */#define E1000_TXCW_TXC 0x40000000 /* Transmit Config control */#define E1000_TXCW_ANE 0x80000000 /* Auto-neg enable *//* Receive Configuration Word */#define E1000_RXCW_CW 0x0000ffff /* RxConfigWord mask */#define E1000_RXCW_NC 0x04000000 /* Receive config no carrier */#define E1000_RXCW_IV 0x08000000 /* Receive config invalid */#define E1000_RXCW_CC 0x10000000 /* Receive config change */#define E1000_RXCW_C 0x20000000 /* Receive config */#define E1000_RXCW_SYNCH 0x40000000 /* Receive config synch */#define E1000_RXCW_ANC 0x80000000 /* Auto-neg complete *//* 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 *//* 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 *//* Definitions for power management and wakeup registers *//* Wake Up Control */#define E1000_WUC_APME 0x00000001 /* APM Enable */#define E1000_WUC_PME_EN 0x00000002 /* PME Enable */#define E1000_WUC_PME_STATUS 0x00000004 /* PME Status */#define E1000_WUC_APMPME 0x00000008 /* Assert PME on APM Wakeup *//* Wake Up Filter Control */#define E1000_WUFC_LNKC 0x00000001 /* Link Status Change Wakeup Enable */#define E1000_WUFC_MAG 0x00000002 /* Magic Packet Wakeup Enable */#define E1000_WUFC_EX 0x00000004 /* Directed Exact Wakeup Enable */#define E1000_WUFC_MC 0x00000008 /* Directed Multicast Wakeup Enable */#define E1000_WUFC_BC 0x00000010 /* Broadcast Wakeup Enable */#define E1000_WUFC_ARP 0x00000020 /* ARP Request Packet Wakeup Enable */#define E1000_WUFC_IPV4 0x00000040 /* Directed IPv4 Packet Wakeup Enable */#define E1000_WUFC_IPV6 0x00000080 /* Directed IPv6 Packet Wakeup Enable */#define E1000_WUFC_FLX0 0x00010000 /* Flexible Filter 0 Enable */#define E1000_WUFC_FLX1 0x00020000 /* Flexible Filter 1 Enable */#define E1000_WUFC_FLX2 0x00040000 /* Flexible Filter 2 Enable */#define E1000_WUFC_FLX3 0x00080000 /* Flexible Filter 3 Enable */#define E1000_WUFC_ALL_FILTERS 0x000F00FF /* Mask for all wakeup filters */#define E1000_WUFC_FLX_OFFSET 16 /* Offset to the Flexible Filters bits */#define E1000_WUFC_FLX_FILTERS 0x000F0000 /* Mask for the 4 flexible filters *//* Wake Up Status */#define E1000_WUS_LNKC 0x00000001 /* Link Status Changed */#define E1000_WUS_MAG 0x00000002 /* Magic Packet Received */#define E1000_WUS_EX 0x00000004 /* Directed Exact Received */#define E1000_WUS_MC 0x00000008 /* Directed Multicast Received */#define E1000_WUS_BC 0x00000010 /* Broadcast Received */#define E1000_WUS_ARP 0x00000020 /* ARP Request Packet Received */#define E1000_WUS_IPV4 0x00000040 /* Directed IPv4 Packet Wakeup Received */#define E1000_WUS_IPV6 0x00000080 /* Directed IPv6 Packet Wakeup Received */#define E1000_WUS_FLX0 0x00010000 /* Flexible Filter 0 Match */#define E1000_WUS_FLX1 0x00020000 /* Flexible Filter 1 Match */#define E1000_WUS_FLX2 0x00040000 /* Flexible Filter 2 Match */#define E1000_WUS_FLX3 0x00080000 /* Flexible Filter 3 Match */#define E1000_WUS_FLX_FILTERS 0x000F0000 /* Mask for the 4 flexible filters *//* Management Control */#define E1000_MANC_SMBUS_EN 0x00000001 /* SMBus Enabled - RO */#define E1000_MANC_ASF_EN 0x00000002 /* ASF Enabled - RO */#define E1000_MANC_R_ON_FORCE 0x00000004 /* Reset on Force TCO - RO */#define E1000_MANC_RMCP_EN 0x00000100 /* Enable RCMP 026Fh Filtering */#define E1000_MANC_0298_EN 0x00000200 /* Enable RCMP 0298h Filtering */#define E1000_MANC_IPV4_EN 0x00000400 /* Enable IPv4 */#define E1000_MANC_IPV6_EN 0x00000800 /* Enable IPv6 */#define E1000_MANC_SNAP_EN 0x00001000 /* Accept LLC/SNAP */#define E1000_MANC_ARP_EN 0x00002000 /* Enable ARP Request Filtering */#define E1000_MANC_NEIGHBOR_EN 0x00004000 /* Enable Neighbor Discovery * Filtering */#define E1000_MANC_TCO_RESET 0x00010000 /* TCO Reset Occurred */#define E1000_MANC_RCV_TCO_EN 0x00020000 /* Receive TCO Packets Enabled */#define E1000_MANC_REPORT_STATUS 0x00040000 /* Status Reporting Enabled */#define E1000_MANC_SMB_REQ 0x01000000 /* SMBus Request */#define E1000_MANC_SMB_GNT 0x02000000 /* SMBus Grant */#define E1000_MANC_SMB_CLK_IN 0x04000000 /* SMBus Clock In */#define E1000_MANC_SMB_DATA_IN 0x08000000 /* SMBus Data In */#define E1000_MANC_SMB_DATA_OUT 0x10000000 /* SMBus Data Out */#define E1000_MANC_SMB_CLK_OUT 0x20000000 /* SMBus Clock Out */#define E1000_MANC_SMB_DATA_OUT_SHIFT 28 /* SMBus Data Out Shift */#define E1000_MANC_SMB_CLK_OUT_SHIFT 29 /* SMBus Clock Out Shift */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -