ixgb_hw.h

来自「linux 内核源代码」· C头文件 代码 · 共 823 行 · 第 1/3 页

H
823
字号
/*******************************************************************************  Intel PRO/10GbE Linux driver  Copyright(c) 1999 - 2006 Intel Corporation.  This program is free software; you can redistribute it and/or modify it  under the terms and conditions of the GNU General Public License,  version 2, as published by the Free Software Foundation.  This program is distributed in the hope it will be useful, but WITHOUT  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for  more details.  You should have received a copy of the GNU General Public License along with  this program; if not, write to the Free Software Foundation, Inc.,  51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.  The full GNU General Public License is included in this distribution in  the file called "COPYING".  Contact Information:  Linux NICS <linux.nics@intel.com>  e1000-devel Mailing List <e1000-devel@lists.sourceforge.net>  Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497*******************************************************************************/#ifndef _IXGB_HW_H_#define _IXGB_HW_H_#include "ixgb_osdep.h"/* Enums */typedef enum {	ixgb_mac_unknown = 0,	ixgb_82597,	ixgb_num_macs} ixgb_mac_type;/* Types of physical layer modules */typedef enum {	ixgb_phy_type_unknown = 0,	ixgb_phy_type_g6005,	/* 850nm, MM fiber, XPAK transceiver */	ixgb_phy_type_g6104,	/* 1310nm, SM fiber, XPAK transceiver */	ixgb_phy_type_txn17201,	/* 850nm, MM fiber, XPAK transceiver */	ixgb_phy_type_txn17401	/* 1310nm, SM fiber, XENPAK transceiver */} ixgb_phy_type;/* XPAK transceiver vendors, for the SR adapters */typedef enum {	ixgb_xpak_vendor_intel,	ixgb_xpak_vendor_infineon} ixgb_xpak_vendor;/* Media Types */typedef enum {	ixgb_media_type_unknown = 0,	ixgb_media_type_fiber = 1,	ixgb_media_type_copper = 2,	ixgb_num_media_types} ixgb_media_type;/* Flow Control Settings */typedef enum {	ixgb_fc_none = 0,	ixgb_fc_rx_pause = 1,	ixgb_fc_tx_pause = 2,	ixgb_fc_full = 3,	ixgb_fc_default = 0xFF} ixgb_fc_type;/* PCI bus types */typedef enum {	ixgb_bus_type_unknown = 0,	ixgb_bus_type_pci,	ixgb_bus_type_pcix} ixgb_bus_type;/* PCI bus speeds */typedef enum {	ixgb_bus_speed_unknown = 0,	ixgb_bus_speed_33,	ixgb_bus_speed_66,	ixgb_bus_speed_100,	ixgb_bus_speed_133,	ixgb_bus_speed_reserved} ixgb_bus_speed;/* PCI bus widths */typedef enum {	ixgb_bus_width_unknown = 0,	ixgb_bus_width_32,	ixgb_bus_width_64} ixgb_bus_width;#define IXGB_ETH_LENGTH_OF_ADDRESS   6#define IXGB_EEPROM_SIZE    64	/* Size in words */#define SPEED_10000  10000#define FULL_DUPLEX  2#define MIN_NUMBER_OF_DESCRIPTORS       8#define MAX_NUMBER_OF_DESCRIPTORS  0xFFF8	/* 13 bits in RDLEN/TDLEN, 128B aligned     */#define IXGB_DELAY_BEFORE_RESET        10	/* allow 10ms after idling rx/tx units      */#define IXGB_DELAY_AFTER_RESET          1	/* allow 1ms after the reset                */#define IXGB_DELAY_AFTER_EE_RESET      10	/* allow 10ms after the EEPROM reset        */#define IXGB_DELAY_USECS_AFTER_LINK_RESET    13	/* allow 13 microseconds after the reset    */					   /* NOTE: this is MICROSECONDS               */#define MAX_RESET_ITERATIONS            8	/* number of iterations to get things right *//* General Registers */#define IXGB_CTRL0   0x00000	/* Device Control Register 0 - RW */#define IXGB_CTRL1   0x00008	/* Device Control Register 1 - RW */#define IXGB_STATUS  0x00010	/* Device Status Register - RO */#define IXGB_EECD    0x00018	/* EEPROM/Flash Control/Data Register - RW */#define IXGB_MFS     0x00020	/* Maximum Frame Size - RW *//* Interrupt */#define IXGB_ICR     0x00080	/* Interrupt Cause Read - R/clr */#define IXGB_ICS     0x00088	/* Interrupt Cause Set - RW */#define IXGB_IMS     0x00090	/* Interrupt Mask Set/Read - RW */#define IXGB_IMC     0x00098	/* Interrupt Mask Clear - WO *//* Receive */#define IXGB_RCTL    0x00100	/* RX Control - RW */#define IXGB_FCRTL   0x00108	/* Flow Control Receive Threshold Low - RW */#define IXGB_FCRTH   0x00110	/* Flow Control Receive Threshold High - RW */#define IXGB_RDBAL   0x00118	/* RX Descriptor Base Low - RW */#define IXGB_RDBAH   0x0011C	/* RX Descriptor Base High - RW */#define IXGB_RDLEN   0x00120	/* RX Descriptor Length - RW */#define IXGB_RDH     0x00128	/* RX Descriptor Head - RW */#define IXGB_RDT     0x00130	/* RX Descriptor Tail - RW */#define IXGB_RDTR    0x00138	/* RX Delay Timer Ring - RW */#define IXGB_RXDCTL  0x00140	/* Receive Descriptor Control - RW */#define IXGB_RAIDC   0x00148	/* Receive Adaptive Interrupt Delay Control - RW */#define IXGB_RXCSUM  0x00158	/* Receive Checksum Control - RW */#define IXGB_RA      0x00180	/* Receive Address Array Base - RW */#define IXGB_RAL     0x00180	/* Receive Address Low [0:15] - RW */#define IXGB_RAH     0x00184	/* Receive Address High [0:15] - RW */#define IXGB_MTA     0x00200	/* Multicast Table Array [0:127] - RW */#define IXGB_VFTA    0x00400	/* VLAN Filter Table Array [0:127] - RW */#define IXGB_REQ_RX_DESCRIPTOR_MULTIPLE 8/* Transmit */#define IXGB_TCTL    0x00600	/* TX Control - RW */#define IXGB_TDBAL   0x00608	/* TX Descriptor Base Low - RW */#define IXGB_TDBAH   0x0060C	/* TX Descriptor Base High - RW */#define IXGB_TDLEN   0x00610	/* TX Descriptor Length - RW */#define IXGB_TDH     0x00618	/* TX Descriptor Head - RW */#define IXGB_TDT     0x00620	/* TX Descriptor Tail - RW */#define IXGB_TIDV    0x00628	/* TX Interrupt Delay Value - RW */#define IXGB_TXDCTL  0x00630	/* Transmit Descriptor Control - RW */#define IXGB_TSPMT   0x00638	/* TCP Segmentation PAD & Min Threshold - RW */#define IXGB_PAP     0x00640	/* Pause and Pace - RW */#define IXGB_REQ_TX_DESCRIPTOR_MULTIPLE 8/* Physical */#define IXGB_PCSC1   0x00700	/* PCS Control 1 - RW */#define IXGB_PCSC2   0x00708	/* PCS Control 2 - RW */#define IXGB_PCSS1   0x00710	/* PCS Status 1 - RO */#define IXGB_PCSS2   0x00718	/* PCS Status 2 - RO */#define IXGB_XPCSS   0x00720	/* 10GBASE-X PCS Status (or XGXS Lane Status) - RO */#define IXGB_UCCR    0x00728	/* Unilink Circuit Control Register */#define IXGB_XPCSTC  0x00730	/* 10GBASE-X PCS Test Control */#define IXGB_MACA    0x00738	/* MDI Autoscan Command and Address - RW */#define IXGB_APAE    0x00740	/* Autoscan PHY Address Enable - RW */#define IXGB_ARD     0x00748	/* Autoscan Read Data - RO */#define IXGB_AIS     0x00750	/* Autoscan Interrupt Status - RO */#define IXGB_MSCA    0x00758	/* MDI Single Command and Address - RW */#define IXGB_MSRWD   0x00760	/* MDI Single Read and Write Data - RW, RO *//* Wake-up */#define IXGB_WUFC    0x00808	/* Wake Up Filter Control - RW */#define IXGB_WUS     0x00810	/* Wake Up Status - RO */#define IXGB_FFLT    0x01000	/* Flexible Filter Length Table - RW */#define IXGB_FFMT    0x01020	/* Flexible Filter Mask Table - RW */#define IXGB_FTVT    0x01420	/* Flexible Filter Value Table - RW *//* Statistics */#define IXGB_TPRL    0x02000	/* Total Packets Received (Low) */#define IXGB_TPRH    0x02004	/* Total Packets Received (High) */#define IXGB_GPRCL   0x02008	/* Good Packets Received Count (Low) */#define IXGB_GPRCH   0x0200C	/* Good Packets Received Count (High) */#define IXGB_BPRCL   0x02010	/* Broadcast Packets Received Count (Low) */#define IXGB_BPRCH   0x02014	/* Broadcast Packets Received Count (High) */#define IXGB_MPRCL   0x02018	/* Multicast Packets Received Count (Low) */#define IXGB_MPRCH   0x0201C	/* Multicast Packets Received Count (High) */#define IXGB_UPRCL   0x02020	/* Unicast Packets Received Count (Low) */#define IXGB_UPRCH   0x02024	/* Unicast Packets Received Count (High) */#define IXGB_VPRCL   0x02028	/* VLAN Packets Received Count (Low) */#define IXGB_VPRCH   0x0202C	/* VLAN Packets Received Count (High) */#define IXGB_JPRCL   0x02030	/* Jumbo Packets Received Count (Low) */#define IXGB_JPRCH   0x02034	/* Jumbo Packets Received Count (High) */#define IXGB_GORCL   0x02038	/* Good Octets Received Count (Low) */#define IXGB_GORCH   0x0203C	/* Good Octets Received Count (High) */#define IXGB_TORL    0x02040	/* Total Octets Received (Low) */#define IXGB_TORH    0x02044	/* Total Octets Received (High) */#define IXGB_RNBC    0x02048	/* Receive No Buffers Count */#define IXGB_RUC     0x02050	/* Receive Undersize Count */#define IXGB_ROC     0x02058	/* Receive Oversize Count */#define IXGB_RLEC    0x02060	/* Receive Length Error Count */#define IXGB_CRCERRS 0x02068	/* CRC Error Count */#define IXGB_ICBC    0x02070	/* Illegal control byte in mid-packet Count */#define IXGB_ECBC    0x02078	/* Error Control byte in mid-packet Count */#define IXGB_MPC     0x02080	/* Missed Packets Count */#define IXGB_TPTL    0x02100	/* Total Packets Transmitted (Low) */#define IXGB_TPTH    0x02104	/* Total Packets Transmitted (High) */#define IXGB_GPTCL   0x02108	/* Good Packets Transmitted Count (Low) */#define IXGB_GPTCH   0x0210C	/* Good Packets Transmitted Count (High) */#define IXGB_BPTCL   0x02110	/* Broadcast Packets Transmitted Count (Low) */#define IXGB_BPTCH   0x02114	/* Broadcast Packets Transmitted Count (High) */#define IXGB_MPTCL   0x02118	/* Multicast Packets Transmitted Count (Low) */#define IXGB_MPTCH   0x0211C	/* Multicast Packets Transmitted Count (High) */#define IXGB_UPTCL   0x02120	/* Unicast Packets Transmitted Count (Low) */#define IXGB_UPTCH   0x02124	/* Unicast Packets Transmitted Count (High) */#define IXGB_VPTCL   0x02128	/* VLAN Packets Transmitted Count (Low) */#define IXGB_VPTCH   0x0212C	/* VLAN Packets Transmitted Count (High) */#define IXGB_JPTCL   0x02130	/* Jumbo Packets Transmitted Count (Low) */#define IXGB_JPTCH   0x02134	/* Jumbo Packets Transmitted Count (High) */#define IXGB_GOTCL   0x02138	/* Good Octets Transmitted Count (Low) */#define IXGB_GOTCH   0x0213C	/* Good Octets Transmitted Count (High) */#define IXGB_TOTL    0x02140	/* Total Octets Transmitted Count (Low) */#define IXGB_TOTH    0x02144	/* Total Octets Transmitted Count (High) */#define IXGB_DC      0x02148	/* Defer Count */#define IXGB_PLT64C  0x02150	/* Packet Transmitted was less than 64 bytes Count */#define IXGB_TSCTC   0x02170	/* TCP Segmentation Context Transmitted Count */#define IXGB_TSCTFC  0x02178	/* TCP Segmentation Context Tx Fail Count */#define IXGB_IBIC    0x02180	/* Illegal byte during Idle stream count */#define IXGB_RFC     0x02188	/* Remote Fault Count */#define IXGB_LFC     0x02190	/* Local Fault Count */#define IXGB_PFRC    0x02198	/* Pause Frame Receive Count */#define IXGB_PFTC    0x021A0	/* Pause Frame Transmit Count */#define IXGB_MCFRC   0x021A8	/* MAC Control Frames (non-Pause) Received Count */#define IXGB_MCFTC   0x021B0	/* MAC Control Frames (non-Pause) Transmitted Count */#define IXGB_XONRXC  0x021B8	/* XON Received Count */#define IXGB_XONTXC  0x021C0	/* XON Transmitted Count */#define IXGB_XOFFRXC 0x021C8	/* XOFF Received Count */#define IXGB_XOFFTXC 0x021D0	/* XOFF Transmitted Count */#define IXGB_RJC     0x021D8	/* Receive Jabber Count *//* CTRL0 Bit Masks */#define IXGB_CTRL0_LRST     0x00000008#define IXGB_CTRL0_JFE      0x00000010#define IXGB_CTRL0_XLE      0x00000020#define IXGB_CTRL0_MDCS     0x00000040#define IXGB_CTRL0_CMDC     0x00000080#define IXGB_CTRL0_SDP0     0x00040000#define IXGB_CTRL0_SDP1     0x00080000#define IXGB_CTRL0_SDP2     0x00100000#define IXGB_CTRL0_SDP3     0x00200000#define IXGB_CTRL0_SDP0_DIR 0x00400000#define IXGB_CTRL0_SDP1_DIR 0x00800000#define IXGB_CTRL0_SDP2_DIR 0x01000000#define IXGB_CTRL0_SDP3_DIR 0x02000000#define IXGB_CTRL0_RST      0x04000000#define IXGB_CTRL0_RPE      0x08000000#define IXGB_CTRL0_TPE      0x10000000#define IXGB_CTRL0_VME      0x40000000/* CTRL1 Bit Masks */#define IXGB_CTRL1_GPI0_EN     0x00000001#define IXGB_CTRL1_GPI1_EN     0x00000002#define IXGB_CTRL1_GPI2_EN     0x00000004#define IXGB_CTRL1_GPI3_EN     0x00000008#define IXGB_CTRL1_SDP4        0x00000010#define IXGB_CTRL1_SDP5        0x00000020#define IXGB_CTRL1_SDP6        0x00000040#define IXGB_CTRL1_SDP7        0x00000080#define IXGB_CTRL1_SDP4_DIR    0x00000100#define IXGB_CTRL1_SDP5_DIR    0x00000200#define IXGB_CTRL1_SDP6_DIR    0x00000400

⌨️ 快捷键说明

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