📄 defines.h
字号:
#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_IVRT 0x00000040#define E1000_LEDCTL_LED0_BLINK 0x00000080#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_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 *//* Transmit Control */#define E1000_TCTL_EN 0x00000002 /* enable Tx */#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_RTLC 0x01000000 /* Re-transmit on late collision */#define E1000_TCTL_MULR 0x10000000 /* Multiple request support *//* Transmit Arbitration Count *//* SerDes Control */#define E1000_SCTL_DISABLE_SERDES_LOOPBACK 0x0400/* Receive Checksum Control */#define E1000_RXCSUM_TUOFL 0x00000200 /* TCP / UDP checksum offload */#define E1000_RXCSUM_IPPCSE 0x00001000 /* IP payload checksum enable *//* Header split receive */#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_82543_TIPG_IPGT_COPPER 8#define E1000_TIPG_IPGT_MASK 0x000003FF#define DEFAULT_82543_TIPG_IPGR1 8#define E1000_TIPG_IPGR1_SHIFT 10#define DEFAULT_82543_TIPG_IPGR2 6#define DEFAULT_80003ES2LAN_TIPG_IPGR2 7#define E1000_TIPG_IPGR2_SHIFT 20#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_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_16K 0x0010 /* 16KB */#define E1000_PBS_16K E1000_PBA_16K#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_DRV_LOAD 0x00000008 /* Driver Loaded Bit *//* Interrupt Cause Read */#define E1000_ICR_TXDW 0x00000001 /* Transmit desc written back */#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_RXT0 0x00000080 /* Rx timer intr (ring 0) */#define E1000_ICR_INT_ASSERTED 0x80000000 /* If this bit asserted, the driver should claim the interrupt *//* * 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_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_RXT0 E1000_ICR_RXT0 /* Rx timer intr *//* Interrupt Cause Set */#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 *//* Transmit Descriptor Control */#define E1000_TXDCTL_PTHRESH 0x0000003F /* TXDCTL Prefetch Threshold */#define E1000_TXDCTL_WTHRESH 0x003F0000 /* TXDCTL Writeback 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 *//* Enable the counting of desc. still to be processed. */#define E1000_TXDCTL_COUNT_DESC 0x00400000/* 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 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_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#define E1000_ERR_HOST_INTERFACE_COMMAND 11#define E1000_BLK_PHY_RESET 12#define E1000_ERR_SWFW_SYNC 13#define E1000_NOT_IMPLEMENTED 14/* Loop limit on how long we wait for auto-negotiation to complete */#define FIBER_LINK_UP_LIMIT 50#define COPPER_LINK_UP_LIMIT 10#define PHY_AUTO_NEG_LIMIT 45#define PHY_FORCE_LIMIT 20/* Number of 100 microseconds we wait for PCI Express master disable */#define MASTER_DISABLE_TIMEOUT 800/* Number of milliseconds we wait for PHY configuration done after MAC reset */#define PHY_CFG_TIMEOUT 100/* Number of 2 milliseconds we wait for acquiring MDIO ownership. */#define MDIO_OWNERSHIP_TIMEOUT 10/* Number of milliseconds for NVM auto read done after MAC reset. */#define AUTO_READ_DONE_TIMEOUT 10/* Flow Control */#define E1000_FCRTL_XONE 0x80000000 /* Enable XON frame transmission *//* Transmit Configuration Word */#define E1000_TXCW_FD 0x00000020 /* TXCW full 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_ANE 0x80000000 /* Auto-neg enable *//* Receive Configuration Word */#define E1000_RXCW_IV 0x08000000 /* Receive config invalid */#define E1000_RXCW_C 0x20000000 /* Receive config */#define E1000_RXCW_SYNCH 0x40000000 /* Receive config synch *//* PCI Express Control */#define E1000_GCR_RXD_NO_SNOOP 0x00000001#define E1000_GCR_RXDSCW_NO_SNOOP 0x00000002#define E1000_GCR_RXDSCR_NO_SNOOP 0x00000004#define E1000_GCR_TXD_NO_SNOOP 0x00000008#define E1000_GCR_TXDSCW_NO_SNOOP 0x00000010#define E1000_GCR_TXDSCR_NO_SNOOP 0x00000020#define PCIE_NO_SNOOP_ALL (E1000_GCR_RXD_NO_SNOOP | \ E1000_GCR_RXDSCW_NO_SNOOP | \ E1000_GCR_RXDSCR_NO_SNOOP | \ E1000_GCR_TXD_NO_SNOOP | \ E1000_GCR_TXDSCW_NO_SNOOP | \ E1000_GCR_TXDSCR_NO_SNOOP)/* PHY Control Register */#define MII_CR_FULL_DUPLEX 0x0100 /* FDX =1, half duplex =0 */#define MII_CR_RESTART_AUTO_NEG 0x0200 /* Restart auto negotiation */#define MII_CR_POWER_DOWN 0x0800 /* Power down */#define MII_CR_AUTO_NEG_EN 0x1000 /* Auto Neg Enable */#define MII_CR_LOOPBACK 0x4000 /* 0 = normal, 1 = loopback */#define MII_CR_RESET 0x8000 /* 0 = normal, 1 = PHY reset */#define MII_CR_SPEED_1000 0x0040#define MII_CR_SPEED_100 0x2000#define MII_CR_SPEED_10 0x0000/* PHY Status Register */#define MII_SR_LINK_STATUS 0x0004 /* Link Status 1 = link */#define MII_SR_AUTONEG_COMPLETE 0x0020 /* Auto Neg Complete *//* Autoneg Advertisement Register */#define NWAY_AR_10T_HD_CAPS 0x0020 /* 10T Half Duplex Capable */#define NWAY_AR_10T_FD_CAPS 0x0040 /* 10T Full Duplex Capable */#define NWAY_AR_100TX_HD_CAPS 0x0080 /* 100TX Half Duplex Capable */#define NWAY_AR_100TX_FD_CAPS 0x0100 /* 100TX Full Duplex Capable */#define NWAY_AR_PAUSE 0x0400 /* Pause operation desired */#define NWAY_AR_ASM_DIR 0x0800 /* Asymmetric Pause Direction bit *//* Link Partner Ability Register (Base Page) */#define NWAY_LPAR_PAUSE 0x0400 /* LP Pause operation desired */#define NWAY_LPAR_ASM_DIR 0x0800 /* LP Asymmetric Pause Direction bit *//* Autoneg Expansion Register */#define NWAY_ER_LP_NWAY_CAPS 0x0001 /* LP has Auto Neg Capability */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -