📄 ixgb_hw.h
字号:
/******************************************************************************* Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. The full GNU General Public License is included in this distribution in the file called LICENSE. Contact Information: Linux NICS <linux.nics@intel.com> 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_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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -