📄 e1000_hw.h
字号:
#define E1000_82542_IP6AT E1000_IP6AT#define E1000_82542_WUPL E1000_WUPL#define E1000_82542_WUPM E1000_WUPM#define E1000_82542_FFLT E1000_FFLT#define E1000_82542_TDFH 0x08010#define E1000_82542_TDFT 0x08018#define E1000_82542_FFMT E1000_FFMT#define E1000_82542_FFVT E1000_FFVT#define E1000_82542_HOST_IF E1000_HOST_IF/* Statistics counters collected by the MAC */struct e1000_hw_stats { uint64_t crcerrs; uint64_t algnerrc; uint64_t symerrs; uint64_t rxerrc; uint64_t mpc; uint64_t scc; uint64_t ecol; uint64_t mcc; uint64_t latecol; uint64_t colc; uint64_t dc; uint64_t tncrs; uint64_t sec; uint64_t cexterr; uint64_t rlec; uint64_t xonrxc; uint64_t xontxc; uint64_t xoffrxc; uint64_t xofftxc; uint64_t fcruc; uint64_t prc64; uint64_t prc127; uint64_t prc255; uint64_t prc511; uint64_t prc1023; uint64_t prc1522; uint64_t gprc; uint64_t bprc; uint64_t mprc; uint64_t gptc; uint64_t gorcl; uint64_t gorch; uint64_t gotcl; uint64_t gotch; uint64_t rnbc; uint64_t ruc; uint64_t rfc; uint64_t roc; uint64_t rjc; uint64_t mgprc; uint64_t mgpdc; uint64_t mgptc; uint64_t torl; uint64_t torh; uint64_t totl; uint64_t toth; uint64_t tpr; uint64_t tpt; uint64_t ptc64; uint64_t ptc127; uint64_t ptc255; uint64_t ptc511; uint64_t ptc1023; uint64_t ptc1522; uint64_t mptc; uint64_t bptc; uint64_t tsctc; uint64_t tsctfc;};/* Structure containing variables used by the shared code (e1000_hw.c) */struct e1000_hw { uint8_t *hw_addr; e1000_mac_type mac_type; e1000_phy_type phy_type; uint32_t phy_init_script; e1000_media_type media_type; void *back; e1000_fc_type fc; e1000_bus_speed bus_speed; e1000_bus_width bus_width; e1000_bus_type bus_type; struct e1000_eeprom_info eeprom; e1000_ms_type master_slave; e1000_ms_type original_master_slave; e1000_ffe_config ffe_config_state; uint32_t asf_firmware_present; unsigned long io_base; uint32_t phy_id; uint32_t phy_revision; uint32_t phy_addr; uint32_t original_fc; uint32_t txcw; uint32_t autoneg_failed; uint32_t max_frame_size; uint32_t min_frame_size; uint32_t mc_filter_type; uint32_t num_mc_addrs; uint32_t collision_delta; uint32_t tx_packet_delta; uint32_t ledctl_default; uint32_t ledctl_mode1; uint32_t ledctl_mode2; uint16_t phy_spd_default; uint16_t autoneg_advertised; uint16_t pci_cmd_word; uint16_t fc_high_water; uint16_t fc_low_water; uint16_t fc_pause_time; uint16_t current_ifs_val; uint16_t ifs_min_val; uint16_t ifs_max_val; uint16_t ifs_step_size; uint16_t ifs_ratio; uint16_t device_id; uint16_t vendor_id; uint16_t subsystem_id; uint16_t subsystem_vendor_id; uint8_t revision_id; uint8_t autoneg; uint8_t mdix; uint8_t forced_speed_duplex; uint8_t wait_autoneg_complete; uint8_t dma_fairness; uint8_t mac_addr[NODE_ADDRESS_SIZE]; uint8_t perm_mac_addr[NODE_ADDRESS_SIZE]; boolean_t disable_polarity_correction; boolean_t speed_downgraded; e1000_smart_speed smart_speed; e1000_dsp_config dsp_config_state; boolean_t get_link_status; boolean_t serdes_link_down; boolean_t tbi_compatibility_en; boolean_t tbi_compatibility_on; boolean_t phy_reset_disable; boolean_t fc_send_xon; boolean_t fc_strict_ieee; boolean_t report_tx_early; boolean_t adaptive_ifs; boolean_t ifs_params_forced; boolean_t in_ifs_mode;};#define E1000_EEPROM_SWDPIN0 0x0001 /* SWDPIN 0 EEPROM Value */#define E1000_EEPROM_LED_LOGIC 0x0020 /* Led Logic Word *//* Register Bit Masks *//* 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_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_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 *//* 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_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_ASDV 0x00000300 /* Auto speed detect value */#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 *//* 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 *//* EEPROM/Flash Control */#define E1000_EECD_SK 0x00000001 /* EEPROM Clock */#define E1000_EECD_CS 0x00000002 /* EEPROM Chip Select */#define E1000_EECD_DI 0x00000004 /* EEPROM Data In */#define E1000_EECD_DO 0x00000008 /* EEPROM Data Out */#define E1000_EECD_FWE_MASK 0x00000030#define E1000_EECD_FWE_DIS 0x00000010 /* Disable FLASH writes */#define E1000_EECD_FWE_EN 0x00000020 /* Enable FLASH writes */#define E1000_EECD_FWE_SHIFT 4#define E1000_EECD_REQ 0x00000040 /* EEPROM Access Request */#define E1000_EECD_GNT 0x00000080 /* EEPROM Access Grant */#define E1000_EECD_PRES 0x00000100 /* EEPROM Present */#define E1000_EECD_SIZE 0x00000200 /* EEPROM Size (0=64 word 1=256 word) */#define E1000_EECD_ADDR_BITS 0x00000400 /* EEPROM Addressing bits based on type * (0-small, 1-large) */#define E1000_EECD_TYPE 0x00002000 /* EEPROM Type (1-SPI, 0-Microwire) */#ifndef E1000_EEPROM_GRANT_ATTEMPTS#define E1000_EEPROM_GRANT_ATTEMPTS 1000 /* EEPROM # attempts to gain grant */#endif/* EEPROM Read */#define E1000_EERD_START 0x00000001 /* Start Read */#define E1000_EERD_DONE 0x00000010 /* Read Done */#define E1000_EERD_ADDR_SHIFT 8#define E1000_EERD_ADDR_MASK 0x0000FF00 /* Read Address */#define E1000_EERD_DATA_SHIFT 16#define E1000_EERD_DATA_MASK 0xFFFF0000 /* Read Data *//* SPI EEPROM Status Register */#define EEPROM_STATUS_RDY_SPI 0x01#define EEPROM_STATUS_WEN_SPI 0x02#define EEPROM_STATUS_BP0_SPI 0x04#define EEPROM_STATUS_BP1_SPI 0x08#define EEPROM_STATUS_WPEN_SPI 0x80/* 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_SDP7_DATA 0x00000080 /* Value of SW Defineable Pin 7 */#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_SDP7_DIR 0x00000800 /* Direction of SDP7 0=in 1=out */#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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -