📄 e1000_defines.h
字号:
/* 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 */#define E1000_RCTL_SECRC 0x04000000 /* Strip Ethernet CRC */#define E1000_RCTL_FLXBUF_MASK 0x78000000 /* Flexible buffer size */#define E1000_RCTL_FLXBUF_SHIFT 27 /* Flexible buffer shift *//* Use byte values for the following shift parameters * Usage: * psrctl |= (((ROUNDUP(value0, 128) >> E1000_PSRCTL_BSIZE0_SHIFT) & * E1000_PSRCTL_BSIZE0_MASK) | * ((ROUNDUP(value1, 1024) >> E1000_PSRCTL_BSIZE1_SHIFT) & * E1000_PSRCTL_BSIZE1_MASK) | * ((ROUNDUP(value2, 1024) << E1000_PSRCTL_BSIZE2_SHIFT) & * E1000_PSRCTL_BSIZE2_MASK) | * ((ROUNDUP(value3, 1024) << E1000_PSRCTL_BSIZE3_SHIFT) |; * E1000_PSRCTL_BSIZE3_MASK)) * where value0 = [128..16256], default=256 * value1 = [1024..64512], default=4096 * value2 = [0..64512], default=4096 * value3 = [0..64512], default=0 */#define E1000_PSRCTL_BSIZE0_MASK 0x0000007F#define E1000_PSRCTL_BSIZE1_MASK 0x00003F00#define E1000_PSRCTL_BSIZE2_MASK 0x003F0000#define E1000_PSRCTL_BSIZE3_MASK 0x3F000000#define E1000_PSRCTL_BSIZE0_SHIFT 7 /* Shift _right_ 7 */#define E1000_PSRCTL_BSIZE1_SHIFT 2 /* Shift _right_ 2 */#define E1000_PSRCTL_BSIZE2_SHIFT 6 /* Shift _left_ 6 */#define E1000_PSRCTL_BSIZE3_SHIFT 14 /* Shift _left_ 14 *//* SWFW_SYNC Definitions */#define E1000_SWFW_EEP_SM 0x1#define E1000_SWFW_PHY0_SM 0x2#define E1000_SWFW_PHY1_SM 0x4/* Device Control */#define E1000_CTRL_FD 0x00000001 /* Full duplex.0=half; 1=full */#define E1000_CTRL_BEM 0x00000002 /* Endian Mode.0=little,1=big */#define E1000_CTRL_PRIOR 0x00000004 /* Priority on PCI. 0=rx,1=fair */#define E1000_CTRL_GIO_MASTER_DISABLE 0x00000004 /*Blocks new Master requests */#define E1000_CTRL_LRST 0x00000008 /* Link reset. 0=normal,1=reset */#define E1000_CTRL_TME 0x00000010 /* Test mode. 0=normal,1=test */#define E1000_CTRL_SLE 0x00000020 /* Serial Link on 0=dis,1=en */#define E1000_CTRL_ASDE 0x00000020 /* Auto-speed detect enable */#define E1000_CTRL_SLU 0x00000040 /* Set link up (Force Link) */#define E1000_CTRL_ILOS 0x00000080 /* Invert Loss-Of Signal */#define E1000_CTRL_SPD_SEL 0x00000300 /* Speed Select Mask */#define E1000_CTRL_SPD_10 0x00000000 /* Force 10Mb */#define E1000_CTRL_SPD_100 0x00000100 /* Force 100Mb */#define E1000_CTRL_SPD_1000 0x00000200 /* Force 1Gb */#define E1000_CTRL_BEM32 0x00000400 /* Big Endian 32 mode */#define E1000_CTRL_FRCSPD 0x00000800 /* Force Speed */#define E1000_CTRL_FRCDPX 0x00001000 /* Force Duplex */#define E1000_CTRL_D_UD_EN 0x00002000 /* Dock/Undock enable */#define E1000_CTRL_D_UD_POLARITY 0x00004000 /* Defined polarity of Dock/Undock indication in SDP[0] */#define E1000_CTRL_FORCE_PHY_RESET 0x00008000 /* Reset both PHY ports, through PHYRST_N pin */#define E1000_CTRL_EXT_LINK_EN 0x00010000 /* enable link status from external LINK_0 and LINK_1 pins */#define E1000_CTRL_SWDPIN0 0x00040000 /* SWDPIN 0 value */#define E1000_CTRL_SWDPIN1 0x00080000 /* SWDPIN 1 value */#define E1000_CTRL_SWDPIN2 0x00100000 /* SWDPIN 2 value */#define E1000_CTRL_SWDPIN3 0x00200000 /* SWDPIN 3 value */#define E1000_CTRL_SWDPIO0 0x00400000 /* SWDPIN 0 Input or output */#define E1000_CTRL_SWDPIO1 0x00800000 /* SWDPIN 1 input or output */#define E1000_CTRL_SWDPIO2 0x01000000 /* SWDPIN 2 input or output */#define E1000_CTRL_SWDPIO3 0x02000000 /* SWDPIN 3 input or output */#define E1000_CTRL_RST 0x04000000 /* Global reset */#define E1000_CTRL_RFCE 0x08000000 /* Receive Flow Control enable */#define E1000_CTRL_TFCE 0x10000000 /* Transmit flow control enable */#define E1000_CTRL_RTE 0x20000000 /* Routing tag enable */#define E1000_CTRL_VME 0x40000000 /* IEEE VLAN mode enable */#define E1000_CTRL_PHY_RST 0x80000000 /* PHY Reset */#define E1000_CTRL_SW2FW_INT 0x02000000 /* Initiate an interrupt to manageability engine *//* Bit definitions for the Management Data IO (MDIO) and Management Data * Clock (MDC) pins in the Device Control Register. */#define E1000_CTRL_PHY_RESET_DIR E1000_CTRL_SWDPIO0#define E1000_CTRL_PHY_RESET E1000_CTRL_SWDPIN0#define E1000_CTRL_MDIO_DIR E1000_CTRL_SWDPIO2#define E1000_CTRL_MDIO E1000_CTRL_SWDPIN2#define E1000_CTRL_MDC_DIR E1000_CTRL_SWDPIO3#define E1000_CTRL_MDC E1000_CTRL_SWDPIN3#define E1000_CTRL_PHY_RESET_DIR4 E1000_CTRL_EXT_SDP4_DIR#define E1000_CTRL_PHY_RESET4 E1000_CTRL_EXT_SDP4_DATA/* Device Status */#define E1000_STATUS_FD 0x00000001 /* Full duplex.0=half,1=full */#define E1000_STATUS_LU 0x00000002 /* Link up.0=no,1=link */#define E1000_STATUS_FUNC_MASK 0x0000000C /* PCI Function Mask */#define E1000_STATUS_FUNC_SHIFT 2#define E1000_STATUS_FUNC_0 0x00000000 /* Function 0 */#define E1000_STATUS_FUNC_1 0x00000004 /* Function 1 */#define E1000_STATUS_TXOFF 0x00000010 /* transmission paused */#define E1000_STATUS_TBIMODE 0x00000020 /* TBI mode */#define E1000_STATUS_SPEED_MASK 0x000000C0#define E1000_STATUS_SPEED_10 0x00000000 /* Speed 10Mb/s */#define E1000_STATUS_SPEED_100 0x00000040 /* Speed 100Mb/s */#define E1000_STATUS_SPEED_1000 0x00000080 /* Speed 1000Mb/s */#define E1000_STATUS_LAN_INIT_DONE 0x00000200 /* Lan Init Completion by NVM */#define E1000_STATUS_ASDV 0x00000300 /* Auto speed detect value */#define E1000_STATUS_DOCK_CI 0x00000800 /* Change in Dock/Undock state. Clear on write '0'. */#define E1000_STATUS_GIO_MASTER_ENABLE 0x00080000 /* Status of Master requests. */#define E1000_STATUS_MTXCKOK 0x00000400 /* MTX clock running OK */#define E1000_STATUS_PCI66 0x00000800 /* In 66Mhz slot */#define E1000_STATUS_BUS64 0x00001000 /* In 64 bit slot */#define E1000_STATUS_PCIX_MODE 0x00002000 /* PCI-X mode */#define E1000_STATUS_PCIX_SPEED 0x0000C000 /* PCI-X bus speed */#define E1000_STATUS_BMC_SKU_0 0x00100000 /* BMC USB redirect disabled */#define E1000_STATUS_BMC_SKU_1 0x00200000 /* BMC SRAM disabled */#define E1000_STATUS_BMC_SKU_2 0x00400000 /* BMC SDRAM disabled */#define E1000_STATUS_BMC_CRYPTO 0x00800000 /* BMC crypto disabled */#define E1000_STATUS_BMC_LITE 0x01000000 /* BMC external code execution disabled */#define E1000_STATUS_RGMII_ENABLE 0x02000000 /* RGMII disabled */#define E1000_STATUS_FUSE_8 0x04000000#define E1000_STATUS_FUSE_9 0x08000000#define E1000_STATUS_SERDES0_DIS 0x10000000 /* SERDES disabled on port 0 */#define E1000_STATUS_SERDES1_DIS 0x20000000 /* SERDES disabled on port 1 *//* Constants used to intrepret the masked PCI-X bus speed. */#define E1000_STATUS_PCIX_SPEED_66 0x00000000 /* PCI-X bus speed 50-66 MHz */#define E1000_STATUS_PCIX_SPEED_100 0x00004000 /* PCI-X bus speed 66-100 MHz */#define E1000_STATUS_PCIX_SPEED_133 0x00008000 /* PCI-X bus speed 100-133 MHz */#define SPEED_10 10#define SPEED_100 100#define SPEED_1000 1000#define HALF_DUPLEX 1#define FULL_DUPLEX 2#define PHY_FORCE_TIME 20#define ADVERTISE_10_HALF 0x0001#define ADVERTISE_10_FULL 0x0002#define ADVERTISE_100_HALF 0x0004#define ADVERTISE_100_FULL 0x0008#define ADVERTISE_1000_HALF 0x0010 /* Not used, just FYI */#define ADVERTISE_1000_FULL 0x0020/* 1000/H is not supported, nor spec-compliant. */#define E1000_ALL_SPEED_DUPLEX ( ADVERTISE_10_HALF | ADVERTISE_10_FULL | \ ADVERTISE_100_HALF | ADVERTISE_100_FULL | \ ADVERTISE_1000_FULL)#define E1000_ALL_NOT_GIG ( ADVERTISE_10_HALF | ADVERTISE_10_FULL | \ ADVERTISE_100_HALF | ADVERTISE_100_FULL)#define E1000_ALL_100_SPEED (ADVERTISE_100_HALF | ADVERTISE_100_FULL)#define E1000_ALL_10_SPEED (ADVERTISE_10_HALF | ADVERTISE_10_FULL)#define E1000_ALL_FULL_DUPLEX (ADVERTISE_10_FULL | ADVERTISE_100_FULL | \ ADVERTISE_1000_FULL)#define E1000_ALL_HALF_DUPLEX (ADVERTISE_10_HALF | ADVERTISE_100_HALF)#define AUTONEG_ADVERTISE_SPEED_DEFAULT E1000_ALL_SPEED_DUPLEX/* LED Control */#define E1000_LEDCTL_LED0_MODE_MASK 0x0000000F#define E1000_LEDCTL_LED0_MODE_SHIFT 0#define E1000_LEDCTL_LED0_BLINK_RATE 0x00000020#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_BLINK_RATE 0x00002000#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_BLINK_RATE 0x00200000#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_BLINK_RATE 0x20000000#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/* Transmit Descriptor bit definitions */#define E1000_TXD_DTYP_D 0x00100000 /* Data Descriptor */#define E1000_TXD_DTYP_C 0x00000000 /* Context Descriptor */#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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -