⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e1000.h

📁 F:worksip2440a board可启动u-boot-like.tar.gz F:worksip2440a board可启动u-boot-like.tar.gz
💻 H
📖 第 1 页 / 共 5 页
字号:
#define E1000_RXD_ERR_FRAME_ERR_MASK ( \    E1000_RXD_ERR_CE  |                \    E1000_RXD_ERR_SE  |                \    E1000_RXD_ERR_SEQ |                \    E1000_RXD_ERR_CXE |                \    E1000_RXD_ERR_RXE)/* Transmit Descriptor */struct e1000_tx_desc {	uint64_t buffer_addr;	/* Address of the descriptor's data buffer */	union {		uint32_t data;		struct {			uint16_t length;	/* Data buffer length */			uint8_t cso;	/* Checksum offset */			uint8_t cmd;	/* Descriptor control */		} flags;	} lower;	union {		uint32_t data;		struct {			uint8_t status;	/* Descriptor status */			uint8_t css;	/* Checksum start */			uint16_t special;		} fields;	} upper;};/* 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 *//* Offload Context Descriptor */struct e1000_context_desc {	union {		uint32_t ip_config;		struct {			uint8_t ipcss;	/* IP checksum start */			uint8_t ipcso;	/* IP checksum offset */			uint16_t ipcse;	/* IP checksum end */		} ip_fields;	} lower_setup;	union {		uint32_t tcp_config;		struct {			uint8_t tucss;	/* TCP checksum start */			uint8_t tucso;	/* TCP checksum offset */			uint16_t tucse;	/* TCP checksum end */		} tcp_fields;	} upper_setup;	uint32_t cmd_and_length;	/* */	union {		uint32_t data;		struct {			uint8_t status;	/* Descriptor status */			uint8_t hdr_len;	/* Header length */			uint16_t mss;	/* Maximum segment size */		} fields;	} tcp_seg_setup;};/* Offload data descriptor */struct e1000_data_desc {	uint64_t buffer_addr;	/* Address of the descriptor's buffer address */	union {		uint32_t data;		struct {			uint16_t length;	/* Data buffer length */			uint8_t typ_len_ext;	/* */			uint8_t cmd;	/* */		} flags;	} lower;	union {		uint32_t data;		struct {			uint8_t status;	/* Descriptor status */			uint8_t popts;	/* Packet Options */			uint16_t special;	/* */		} fields;	} upper;};/* Filters */#define E1000_NUM_UNICAST          16	/* Unicast filter entries */#define E1000_MC_TBL_SIZE          128	/* Multicast Filter Table (4096 bits) */#define E1000_VLAN_FILTER_TBL_SIZE 128	/* VLAN Filter Table (4096 bits) *//* Receive Address Register */struct e1000_rar {	volatile uint32_t low;	/* receive address low */	volatile uint32_t high;	/* receive address high */};/* The number of entries in the Multicast Table Array (MTA). */#define E1000_NUM_MTA_REGISTERS 128/* IPv4 Address Table Entry */struct e1000_ipv4_at_entry {	volatile uint32_t ipv4_addr;	/* IP Address (RW) */	volatile uint32_t reserved;};/* Four wakeup IP addresses are supported */#define E1000_WAKEUP_IP_ADDRESS_COUNT_MAX 4#define E1000_IP4AT_SIZE                  E1000_WAKEUP_IP_ADDRESS_COUNT_MAX#define E1000_IP6AT_SIZE                  1/* IPv6 Address Table Entry */struct e1000_ipv6_at_entry {	volatile uint8_t ipv6_addr[16];};/* Flexible Filter Length Table Entry */struct e1000_fflt_entry {	volatile uint32_t length;	/* Flexible Filter Length (RW) */	volatile uint32_t reserved;};/* Flexible Filter Mask Table Entry */struct e1000_ffmt_entry {	volatile uint32_t mask;	/* Flexible Filter Mask (RW) */	volatile uint32_t reserved;};/* Flexible Filter Value Table Entry */struct e1000_ffvt_entry {	volatile uint32_t value;	/* Flexible Filter Value (RW) */	volatile uint32_t reserved;};/* Four Flexible Filters are supported */#define E1000_FLEXIBLE_FILTER_COUNT_MAX 4/* Each Flexible Filter is at most 128 (0x80) bytes in length */#define E1000_FLEXIBLE_FILTER_SIZE_MAX  128#define E1000_FFLT_SIZE E1000_FLEXIBLE_FILTER_COUNT_MAX#define E1000_FFMT_SIZE E1000_FLEXIBLE_FILTER_SIZE_MAX#define E1000_FFVT_SIZE E1000_FLEXIBLE_FILTER_SIZE_MAX/* Register Set. (82543, 82544) * * Registers are defined to be 32 bits and  should be accessed as 32 bit values. * These registers are physically located on the NIC, but are mapped into the * host memory address space. * * RW - register is both readable and writable * RO - register is read only * WO - register is write only * R/clr - register is read only and is cleared when read * A - register array */#define E1000_CTRL     0x00000	/* Device Control - RW */#define E1000_STATUS   0x00008	/* Device Status - RO */#define E1000_EECD     0x00010	/* EEPROM/Flash Control - RW */#define E1000_EERD     0x00014	/* EEPROM Read - RW */#define E1000_CTRL_EXT 0x00018	/* Extended Device Control - RW */#define E1000_MDIC     0x00020	/* MDI Control - RW */#define E1000_FCAL     0x00028	/* Flow Control Address Low - RW */#define E1000_FCAH     0x0002C	/* Flow Control Address High -RW */#define E1000_FCT      0x00030	/* Flow Control Type - RW */#define E1000_VET      0x00038	/* VLAN Ether Type - RW */#define E1000_ICR      0x000C0	/* Interrupt Cause Read - R/clr */#define E1000_ITR      0x000C4	/* Interrupt Throttling Rate - RW */#define E1000_ICS      0x000C8	/* Interrupt Cause Set - WO */#define E1000_IMS      0x000D0	/* Interrupt Mask Set - RW */#define E1000_IMC      0x000D8	/* Interrupt Mask Clear - WO */#define E1000_RCTL     0x00100	/* RX Control - RW */#define E1000_FCTTV    0x00170	/* Flow Control Transmit Timer Value - RW */#define E1000_TXCW     0x00178	/* TX Configuration Word - RW */#define E1000_RXCW     0x00180	/* RX Configuration Word - RO */#define E1000_TCTL     0x00400	/* TX Control - RW */#define E1000_TIPG     0x00410	/* TX Inter-packet gap -RW */#define E1000_TBT      0x00448	/* TX Burst Timer - RW */#define E1000_AIT      0x00458	/* Adaptive Interframe Spacing Throttle - RW */#define E1000_LEDCTL   0x00E00	/* LED Control - RW */#define E1000_PBA      0x01000	/* Packet Buffer Allocation - RW */#define E1000_FCRTL    0x02160	/* Flow Control Receive Threshold Low - RW */#define E1000_FCRTH    0x02168	/* Flow Control Receive Threshold High - RW */#define E1000_RDBAL    0x02800	/* RX Descriptor Base Address Low - RW */#define E1000_RDBAH    0x02804	/* RX Descriptor Base Address High - RW */#define E1000_RDLEN    0x02808	/* RX Descriptor Length - RW */#define E1000_RDH      0x02810	/* RX Descriptor Head - RW */#define E1000_RDT      0x02818	/* RX Descriptor Tail - RW */#define E1000_RDTR     0x02820	/* RX Delay Timer - RW */#define E1000_RXDCTL   0x02828	/* RX Descriptor Control - RW */#define E1000_RADV     0x0282C	/* RX Interrupt Absolute Delay Timer - RW */#define E1000_RSRPD    0x02C00	/* RX Small Packet Detect - RW */#define E1000_TXDMAC   0x03000	/* TX DMA Control - RW */#define E1000_TDBAL    0x03800	/* TX Descriptor Base Address Low - RW */#define E1000_TDBAH    0x03804	/* TX Descriptor Base Address High - RW */#define E1000_TDLEN    0x03808	/* TX Descriptor Length - RW */#define E1000_TDH      0x03810	/* TX Descriptor Head - RW */#define E1000_TDT      0x03818	/* TX Descripotr Tail - RW */#define E1000_TIDV     0x03820	/* TX Interrupt Delay Value - RW */#define E1000_TXDCTL   0x03828	/* TX Descriptor Control - RW */#define E1000_TADV     0x0382C	/* TX Interrupt Absolute Delay Val - RW */#define E1000_TSPMT    0x03830	/* TCP Segmentation PAD & Min Threshold - RW */#define E1000_CRCERRS  0x04000	/* CRC Error Count - R/clr */#define E1000_ALGNERRC 0x04004	/* Alignment Error Count - R/clr */#define E1000_SYMERRS  0x04008	/* Symbol Error Count - R/clr */#define E1000_RXERRC   0x0400C	/* Receive Error Count - R/clr */#define E1000_MPC      0x04010	/* Missed Packet Count - R/clr */#define E1000_SCC      0x04014	/* Single Collision Count - R/clr */#define E1000_ECOL     0x04018	/* Excessive Collision Count - R/clr */#define E1000_MCC      0x0401C	/* Multiple Collision Count - R/clr */#define E1000_LATECOL  0x04020	/* Late Collision Count - R/clr */#define E1000_COLC     0x04028	/* Collision Count - R/clr */#define E1000_DC       0x04030	/* Defer Count - R/clr */#define E1000_TNCRS    0x04034	/* TX-No CRS - R/clr */#define E1000_SEC      0x04038	/* Sequence Error Count - R/clr */#define E1000_CEXTERR  0x0403C	/* Carrier Extension Error Count - R/clr */#define E1000_RLEC     0x04040	/* Receive Length Error Count - R/clr */#define E1000_XONRXC   0x04048	/* XON RX Count - R/clr */#define E1000_XONTXC   0x0404C	/* XON TX Count - R/clr */#define E1000_XOFFRXC  0x04050	/* XOFF RX Count - R/clr */#define E1000_XOFFTXC  0x04054	/* XOFF TX Count - R/clr */#define E1000_FCRUC    0x04058	/* Flow Control RX Unsupported Count- R/clr */#define E1000_PRC64    0x0405C	/* Packets RX (64 bytes) - R/clr */#define E1000_PRC127   0x04060	/* Packets RX (65-127 bytes) - R/clr */#define E1000_PRC255   0x04064	/* Packets RX (128-255 bytes) - R/clr */#define E1000_PRC511   0x04068	/* Packets RX (255-511 bytes) - R/clr */#define E1000_PRC1023  0x0406C	/* Packets RX (512-1023 bytes) - R/clr */#define E1000_PRC1522  0x04070	/* Packets RX (1024-1522 bytes) - R/clr */#define E1000_GPRC     0x04074	/* Good Packets RX Count - R/clr */#define E1000_BPRC     0x04078	/* Broadcast Packets RX Count - R/clr */#define E1000_MPRC     0x0407C	/* Multicast Packets RX Count - R/clr */#define E1000_GPTC     0x04080	/* Good Packets TX Count - R/clr */#define E1000_GORCL    0x04088	/* Good Octets RX Count Low - R/clr */#define E1000_GORCH    0x0408C	/* Good Octets RX Count High - R/clr */#define E1000_GOTCL    0x04090	/* Good Octets TX Count Low - R/clr */#define E1000_GOTCH    0x04094	/* Good Octets TX Count High - R/clr */#define E1000_RNBC     0x040A0	/* RX No Buffers Count - R/clr */#define E1000_RUC      0x040A4	/* RX Undersize Count - R/clr */#define E1000_RFC      0x040A8	/* RX Fragment Count - R/clr */#define E1000_ROC      0x040AC	/* RX Oversize Count - R/clr */#define E1000_RJC      0x040B0	/* RX Jabber Count - R/clr */#define E1000_MGTPRC   0x040B4	/* Management Packets RX Count - R/clr */#define E1000_MGTPDC   0x040B8	/* Management Packets Dropped Count - R/clr */#define E1000_MGTPTC   0x040BC	/* Management Packets TX Count - R/clr */#define E1000_TORL     0x040C0	/* Total Octets RX Low - R/clr */#define E1000_TORH     0x040C4	/* Total Octets RX High - R/clr */#define E1000_TOTL     0x040C8	/* Total Octets TX Low - R/clr */#define E1000_TOTH     0x040CC	/* Total Octets TX High - R/clr */#define E1000_TPR      0x040D0	/* Total Packets RX - R/clr */#define E1000_TPT      0x040D4	/* Total Packets TX - R/clr */#define E1000_PTC64    0x040D8	/* Packets TX (64 bytes) - R/clr */#define E1000_PTC127   0x040DC	/* Packets TX (65-127 bytes) - R/clr */#define E1000_PTC255   0x040E0	/* Packets TX (128-255 bytes) - R/clr */#define E1000_PTC511   0x040E4	/* Packets TX (256-511 bytes) - R/clr */#define E1000_PTC1023  0x040E8	/* Packets TX (512-1023 bytes) - R/clr */#define E1000_PTC1522  0x040EC	/* Packets TX (1024-1522 Bytes) - R/clr */#define E1000_MPTC     0x040F0	/* Multicast Packets TX Count - R/clr */#define E1000_BPTC     0x040F4	/* Broadcast Packets TX Count - R/clr */#define E1000_TSCTC    0x040F8	/* TCP Segmentation Context TX - R/clr */#define E1000_TSCTFC   0x040FC	/* TCP Segmentation Context TX Fail - R/clr */#define E1000_RXCSUM   0x05000	/* RX Checksum Control - RW */#define E1000_MTA      0x05200	/* Multicast Table Array - RW Array */#define E1000_RA       0x05400	/* Receive Address - RW Array */#define E1000_VFTA     0x05600	/* VLAN Filter Table Array - RW Array */#define E1000_WUC      0x05800	/* Wakeup Control - RW */#define E1000_WUFC     0x05808	/* Wakeup Filter Control - RW */#define E1000_WUS      0x05810	/* Wakeup Status - RO */#define E1000_MANC     0x05820	/* Management Control - RW */#define E1000_IPAV     0x05838	/* IP Address Valid - RW */#define E1000_IP4AT    0x05840	/* IPv4 Address Table - RW Array */#define E1000_IP6AT    0x05880	/* IPv6 Address Table - RW Array */#define E1000_WUPL     0x05900	/* Wakeup Packet Length - RW */#define E1000_WUPM     0x05A00	/* Wakeup Packet Memory - RO A */#define E1000_FFLT     0x05F00	/* Flexible Filter Length Table - RW Array */#define E1000_FFMT     0x09000	/* Flexible Filter Mask Table - RW Array */#define E1000_FFVT     0x09800	/* Flexible Filter Value Table - RW Array *//* Register Set (82542) * * Some of the 82542 registers are located at different offsets than they are * in more current versions of the 8254x. Despite the difference in location, * the registers function in the same manner. */#define E1000_82542_CTRL     E1000_CTRL#define E1000_82542_STATUS   E1000_STATUS#define E1000_82542_EECD     E1000_EECD#define E1000_82542_EERD     E1000_EERD#define E1000_82542_CTRL_EXT E1000_CTRL_EXT#define E1000_82542_MDIC     E1000_MDIC#define E1000_82542_FCAL     E1000_FCAL#define E1000_82542_FCAH     E1000_FCAH#define E1000_82542_FCT      E1000_FCT#define E1000_82542_VET      E1000_VET#define E1000_82542_RA       0x00040#define E1000_82542_ICR      E1000_ICR#define E1000_82542_ITR      E1000_ITR#define E1000_82542_ICS      E1000_ICS#define E1000_82542_IMS      E1000_IMS#define E1000_82542_IMC      E1000_IMC#define E1000_82542_RCTL     E1000_RCTL#define E1000_82542_RDTR     0x00108#define E1000_82542_RDBAL    0x00110

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -