19c80d176SSepherosa Ziehau /****************************************************************************** 29c80d176SSepherosa Ziehau 3*01a55482SSepherosa Ziehau Copyright (c) 2001-2019, Intel Corporation 49c80d176SSepherosa Ziehau All rights reserved. 59c80d176SSepherosa Ziehau 69c80d176SSepherosa Ziehau Redistribution and use in source and binary forms, with or without 79c80d176SSepherosa Ziehau modification, are permitted provided that the following conditions are met: 89c80d176SSepherosa Ziehau 99c80d176SSepherosa Ziehau 1. Redistributions of source code must retain the above copyright notice, 109c80d176SSepherosa Ziehau this list of conditions and the following disclaimer. 119c80d176SSepherosa Ziehau 129c80d176SSepherosa Ziehau 2. Redistributions in binary form must reproduce the above copyright 139c80d176SSepherosa Ziehau notice, this list of conditions and the following disclaimer in the 149c80d176SSepherosa Ziehau documentation and/or other materials provided with the distribution. 159c80d176SSepherosa Ziehau 169c80d176SSepherosa Ziehau 3. Neither the name of the Intel Corporation nor the names of its 179c80d176SSepherosa Ziehau contributors may be used to endorse or promote products derived from 189c80d176SSepherosa Ziehau this software without specific prior written permission. 199c80d176SSepherosa Ziehau 209c80d176SSepherosa Ziehau THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 219c80d176SSepherosa Ziehau AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 229c80d176SSepherosa Ziehau IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 239c80d176SSepherosa Ziehau ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 249c80d176SSepherosa Ziehau LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 259c80d176SSepherosa Ziehau CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 269c80d176SSepherosa Ziehau SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 279c80d176SSepherosa Ziehau INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 289c80d176SSepherosa Ziehau CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 299c80d176SSepherosa Ziehau ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 309c80d176SSepherosa Ziehau POSSIBILITY OF SUCH DAMAGE. 319c80d176SSepherosa Ziehau 329c80d176SSepherosa Ziehau ******************************************************************************/ 3374dc3754SSepherosa Ziehau /*$FreeBSD$*/ 349c80d176SSepherosa Ziehau 359c80d176SSepherosa Ziehau #ifndef _E1000_REGS_H_ 369c80d176SSepherosa Ziehau #define _E1000_REGS_H_ 379c80d176SSepherosa Ziehau 38*01a55482SSepherosa Ziehau /* General Register Descriptions */ 399c80d176SSepherosa Ziehau #define E1000_CTRL 0x00000 /* Device Control - RW */ 409c80d176SSepherosa Ziehau #define E1000_CTRL_DUP 0x00004 /* Device Control Duplicate (Shadow) - RW */ 419c80d176SSepherosa Ziehau #define E1000_STATUS 0x00008 /* Device Status - RO */ 429c80d176SSepherosa Ziehau #define E1000_EECD 0x00010 /* EEPROM/Flash Control - RW */ 439c80d176SSepherosa Ziehau #define E1000_EERD 0x00014 /* EEPROM Read - RW */ 449c80d176SSepherosa Ziehau #define E1000_CTRL_EXT 0x00018 /* Extended Device Control - RW */ 459c80d176SSepherosa Ziehau #define E1000_FLA 0x0001C /* Flash Access - RW */ 469c80d176SSepherosa Ziehau #define E1000_MDIC 0x00020 /* MDI Control - RW */ 476a5a645eSSepherosa Ziehau #define E1000_MDICNFG 0x00E04 /* MDI Config - RW */ 486a5a645eSSepherosa Ziehau #define E1000_REGISTER_SET_SIZE 0x20000 /* CSR Size */ 496a5a645eSSepherosa Ziehau #define E1000_EEPROM_INIT_CTRL_WORD_2 0x0F /* EEPROM Init Ctrl Word 2 */ 504be59a01SSepherosa Ziehau #define E1000_EEPROM_PCIE_CTRL_WORD_2 0x28 /* EEPROM PCIe Ctrl Word 2 */ 516a5a645eSSepherosa Ziehau #define E1000_BARCTRL 0x5BBC /* BAR ctrl reg */ 526a5a645eSSepherosa Ziehau #define E1000_BARCTRL_FLSIZE 0x0700 /* BAR ctrl Flsize */ 536a5a645eSSepherosa Ziehau #define E1000_BARCTRL_CSRSIZE 0x2000 /* BAR ctrl CSR size */ 54379ebbe7SSepherosa Ziehau #define E1000_MPHY_ADDR_CTRL 0x0024 /* GbE MPHY Address Control */ 55379ebbe7SSepherosa Ziehau #define E1000_MPHY_DATA 0x0E10 /* GBE MPHY Data */ 56379ebbe7SSepherosa Ziehau #define E1000_MPHY_STAT 0x0E0C /* GBE MPHY Statistics */ 57379ebbe7SSepherosa Ziehau #define E1000_PPHY_CTRL 0x5b48 /* PCIe PHY Control */ 584be59a01SSepherosa Ziehau #define E1000_I350_BARCTRL 0x5BFC /* BAR ctrl reg */ 594be59a01SSepherosa Ziehau #define E1000_I350_DTXMXPKTSZ 0x355C /* Maximum sent packet size reg*/ 609c80d176SSepherosa Ziehau #define E1000_SCTL 0x00024 /* SerDes Control - RW */ 619c80d176SSepherosa Ziehau #define E1000_FCAL 0x00028 /* Flow Control Address Low - RW */ 629c80d176SSepherosa Ziehau #define E1000_FCAH 0x0002C /* Flow Control Address High -RW */ 634765c386SMichael Neumann #define E1000_FEXT 0x0002C /* Future Extended - RW */ 649c80d176SSepherosa Ziehau #define E1000_FEXTNVM 0x00028 /* Future Extended NVM - RW */ 654be59a01SSepherosa Ziehau #define E1000_FEXTNVM3 0x0003C /* Future Extended NVM 3 - RW */ 664be59a01SSepherosa Ziehau #define E1000_FEXTNVM4 0x00024 /* Future Extended NVM 4 - RW */ 67*01a55482SSepherosa Ziehau #define E1000_FEXTNVM5 0x00014 /* Future Extended NVM 5 - RW */ 68379ebbe7SSepherosa Ziehau #define E1000_FEXTNVM6 0x00010 /* Future Extended NVM 6 - RW */ 69379ebbe7SSepherosa Ziehau #define E1000_FEXTNVM7 0x000E4 /* Future Extended NVM 7 - RW */ 7074dc3754SSepherosa Ziehau #define E1000_FEXTNVM9 0x5BB4 /* Future Extended NVM 9 - RW */ 7174dc3754SSepherosa Ziehau #define E1000_FEXTNVM11 0x5BBC /* Future Extended NVM 11 - RW */ 7274dc3754SSepherosa Ziehau #define E1000_PCIEANACFG 0x00F18 /* PCIE Analog Config */ 739c80d176SSepherosa Ziehau #define E1000_FCT 0x00030 /* Flow Control Type - RW */ 749c80d176SSepherosa Ziehau #define E1000_CONNSW 0x00034 /* Copper/Fiber switch control - RW */ 759c80d176SSepherosa Ziehau #define E1000_VET 0x00038 /* VLAN Ether Type - RW */ 769c80d176SSepherosa Ziehau #define E1000_ICR 0x000C0 /* Interrupt Cause Read - R/clr */ 779c80d176SSepherosa Ziehau #define E1000_ITR 0x000C4 /* Interrupt Throttling Rate - RW */ 789c80d176SSepherosa Ziehau #define E1000_ICS 0x000C8 /* Interrupt Cause Set - WO */ 799c80d176SSepherosa Ziehau #define E1000_IMS 0x000D0 /* Interrupt Mask Set - RW */ 809c80d176SSepherosa Ziehau #define E1000_IMC 0x000D8 /* Interrupt Mask Clear - WO */ 819c80d176SSepherosa Ziehau #define E1000_IAM 0x000E0 /* Interrupt Acknowledge Auto Mask */ 829c80d176SSepherosa Ziehau #define E1000_IVAR 0x000E4 /* Interrupt Vector Allocation Register - RW */ 83379ebbe7SSepherosa Ziehau #define E1000_SVCR 0x000F0 84379ebbe7SSepherosa Ziehau #define E1000_SVT 0x000F4 85379ebbe7SSepherosa Ziehau #define E1000_LPIC 0x000FC /* Low Power IDLE control */ 869c80d176SSepherosa Ziehau #define E1000_RCTL 0x00100 /* Rx Control - RW */ 879c80d176SSepherosa Ziehau #define E1000_FCTTV 0x00170 /* Flow Control Transmit Timer Value - RW */ 889c80d176SSepherosa Ziehau #define E1000_TXCW 0x00178 /* Tx Configuration Word - RW */ 899c80d176SSepherosa Ziehau #define E1000_RXCW 0x00180 /* Rx Configuration Word - RO */ 906a5a645eSSepherosa Ziehau #define E1000_PBA_ECC 0x01100 /* PBA ECC Register */ 9162583d18SSepherosa Ziehau #define E1000_EICR 0x01580 /* Ext. Interrupt Cause Read - R/clr */ 9262583d18SSepherosa Ziehau #define E1000_EITR(_n) (0x01680 + (0x4 * (_n))) 9362583d18SSepherosa Ziehau #define E1000_EICS 0x01520 /* Ext. Interrupt Cause Set - W0 */ 9462583d18SSepherosa Ziehau #define E1000_EIMS 0x01524 /* Ext. Interrupt Mask Set/Read - RW */ 9562583d18SSepherosa Ziehau #define E1000_EIMC 0x01528 /* Ext. Interrupt Mask Clear - WO */ 9662583d18SSepherosa Ziehau #define E1000_EIAC 0x0152C /* Ext. Interrupt Auto Clear - RW */ 9762583d18SSepherosa Ziehau #define E1000_EIAM 0x01530 /* Ext. Interrupt Ack Auto Clear Mask - RW */ 9862583d18SSepherosa Ziehau #define E1000_GPIE 0x01514 /* General Purpose Interrupt Enable - RW */ 9962583d18SSepherosa Ziehau #define E1000_IVAR0 0x01700 /* Interrupt Vector Allocation (array) - RW */ 10062583d18SSepherosa Ziehau #define E1000_IVAR_MISC 0x01740 /* IVAR for "other" causes - RW */ 1019c80d176SSepherosa Ziehau #define E1000_TCTL 0x00400 /* Tx Control - RW */ 1029c80d176SSepherosa Ziehau #define E1000_TCTL_EXT 0x00404 /* Extended Tx Control - RW */ 1039c80d176SSepherosa Ziehau #define E1000_TIPG 0x00410 /* Tx Inter-packet gap -RW */ 1049c80d176SSepherosa Ziehau #define E1000_TBT 0x00448 /* Tx Burst Timer - RW */ 1059c80d176SSepherosa Ziehau #define E1000_AIT 0x00458 /* Adaptive Interframe Spacing Throttle - RW */ 1069c80d176SSepherosa Ziehau #define E1000_LEDCTL 0x00E00 /* LED Control - RW */ 107379ebbe7SSepherosa Ziehau #define E1000_LEDMUX 0x08130 /* LED MUX Control */ 1089c80d176SSepherosa Ziehau #define E1000_EXTCNF_CTRL 0x00F00 /* Extended Configuration Control */ 1099c80d176SSepherosa Ziehau #define E1000_EXTCNF_SIZE 0x00F08 /* Extended Configuration Size */ 1109c80d176SSepherosa Ziehau #define E1000_PHY_CTRL 0x00F10 /* PHY Control Register in CSR */ 1116d5e2922SSepherosa Ziehau #define E1000_POEMB E1000_PHY_CTRL /* PHY OEM Bits */ 1129c80d176SSepherosa Ziehau #define E1000_PBA 0x01000 /* Packet Buffer Allocation - RW */ 1139c80d176SSepherosa Ziehau #define E1000_PBS 0x01008 /* Packet Buffer Size */ 114379ebbe7SSepherosa Ziehau #define E1000_PBECCSTS 0x0100C /* Packet Buffer ECC Status - RW */ 11574dc3754SSepherosa Ziehau #define E1000_IOSFPC 0x00F28 /* TX corrupted data */ 1169c80d176SSepherosa Ziehau #define E1000_EEMNGCTL 0x01010 /* MNG EEprom Control */ 11765aebe9fSSepherosa Ziehau #define E1000_FLASHT 0x01028 /* FLASH Timer Register */ 118a40fda39SSepherosa Ziehau #define E1000_EEMNGCTL_I210 0x01010 /* i210 MNG EEprom Mode Control */ 1199c80d176SSepherosa Ziehau #define E1000_EEARBC 0x01024 /* EEPROM Auto Read Bus Control */ 120ba0123e0SSepherosa Ziehau #define E1000_EEARBC_I210 0x12024 /* EEPROM Auto Read Bus Control */ 1219c80d176SSepherosa Ziehau #define E1000_EEWR 0x0102C /* EEPROM Write Register - RW */ 1229c80d176SSepherosa Ziehau #define E1000_FLSWCTL 0x01030 /* FLASH control register */ 1239c80d176SSepherosa Ziehau #define E1000_FLSWDATA 0x01034 /* FLASH data register */ 1249c80d176SSepherosa Ziehau #define E1000_FLSWCNT 0x01038 /* FLASH Access Counter */ 1259c80d176SSepherosa Ziehau #define E1000_FLOP 0x0103C /* FLASH Opcode Register */ 1269c80d176SSepherosa Ziehau #define E1000_I2CCMD 0x01028 /* SFPI2C Command Register - RW */ 1279c80d176SSepherosa Ziehau #define E1000_I2CPARAMS 0x0102C /* SFPI2C Parameters Register - RW */ 1284be59a01SSepherosa Ziehau #define E1000_I2CBB_EN 0x00000100 /* I2C - Bit Bang Enable */ 1294be59a01SSepherosa Ziehau #define E1000_I2C_CLK_OUT 0x00000200 /* I2C- Clock */ 1304be59a01SSepherosa Ziehau #define E1000_I2C_DATA_OUT 0x00000400 /* I2C- Data Out */ 1314be59a01SSepherosa Ziehau #define E1000_I2C_DATA_OE_N 0x00000800 /* I2C- Data Output Enable */ 1324be59a01SSepherosa Ziehau #define E1000_I2C_DATA_IN 0x00001000 /* I2C- Data In */ 1334be59a01SSepherosa Ziehau #define E1000_I2C_CLK_OE_N 0x00002000 /* I2C- Clock Output Enable */ 1344be59a01SSepherosa Ziehau #define E1000_I2C_CLK_IN 0x00004000 /* I2C- Clock In */ 1354be59a01SSepherosa Ziehau #define E1000_I2C_CLK_STRETCH_DIS 0x00008000 /* I2C- Dis Clk Stretching */ 1369c80d176SSepherosa Ziehau #define E1000_WDSTP 0x01040 /* Watchdog Setup - RW */ 1379c80d176SSepherosa Ziehau #define E1000_SWDSTS 0x01044 /* SW Device Status - RW */ 1389c80d176SSepherosa Ziehau #define E1000_FRTIMER 0x01048 /* Free Running Timer - RW */ 13962583d18SSepherosa Ziehau #define E1000_TCPTIMER 0x0104C /* TCP Timer - RW */ 14062583d18SSepherosa Ziehau #define E1000_VPDDIAG 0x01060 /* VPD Diagnostic - RO */ 1414be59a01SSepherosa Ziehau #define E1000_ICR_V2 0x01500 /* Intr Cause - new location - RC */ 1424be59a01SSepherosa Ziehau #define E1000_ICS_V2 0x01504 /* Intr Cause Set - new location - WO */ 1434be59a01SSepherosa Ziehau #define E1000_IMS_V2 0x01508 /* Intr Mask Set/Read - new location - RW */ 1444be59a01SSepherosa Ziehau #define E1000_IMC_V2 0x0150C /* Intr Mask Clear - new location - WO */ 1454be59a01SSepherosa Ziehau #define E1000_IAM_V2 0x01510 /* Intr Ack Auto Mask - new location - RW */ 1469c80d176SSepherosa Ziehau #define E1000_ERT 0x02008 /* Early Rx Threshold - RW */ 1479c80d176SSepherosa Ziehau #define E1000_FCRTL 0x02160 /* Flow Control Receive Threshold Low - RW */ 1489c80d176SSepherosa Ziehau #define E1000_FCRTH 0x02168 /* Flow Control Receive Threshold High - RW */ 1499c80d176SSepherosa Ziehau #define E1000_PSRCTL 0x02170 /* Packet Split Receive Control - RW */ 150379ebbe7SSepherosa Ziehau #define E1000_RDFH 0x02410 /* Rx Data FIFO Head - RW */ 151379ebbe7SSepherosa Ziehau #define E1000_RDFT 0x02418 /* Rx Data FIFO Tail - RW */ 152379ebbe7SSepherosa Ziehau #define E1000_RDFHS 0x02420 /* Rx Data FIFO Head Saved - RW */ 153379ebbe7SSepherosa Ziehau #define E1000_RDFTS 0x02428 /* Rx Data FIFO Tail Saved - RW */ 154379ebbe7SSepherosa Ziehau #define E1000_RDFPC 0x02430 /* Rx Data FIFO Packet Count - RW */ 1559c80d176SSepherosa Ziehau #define E1000_PBRTH 0x02458 /* PB Rx Arbitration Threshold - RW */ 1569c80d176SSepherosa Ziehau #define E1000_FCRTV 0x02460 /* Flow Control Refresh Timer Value - RW */ 1579c80d176SSepherosa Ziehau /* Split and Replication Rx Control - RW */ 1589c80d176SSepherosa Ziehau #define E1000_RDPUMB 0x025CC /* DMA Rx Descriptor uC Mailbox - RW */ 1599c80d176SSepherosa Ziehau #define E1000_RDPUAD 0x025D0 /* DMA Rx Descriptor uC Addr Command - RW */ 1609c80d176SSepherosa Ziehau #define E1000_RDPUWD 0x025D4 /* DMA Rx Descriptor uC Data Write - RW */ 1619c80d176SSepherosa Ziehau #define E1000_RDPURD 0x025D8 /* DMA Rx Descriptor uC Data Read - RW */ 1629c80d176SSepherosa Ziehau #define E1000_RDPUCTL 0x025DC /* DMA Rx Descriptor uC Control - RW */ 16362583d18SSepherosa Ziehau #define E1000_PBDIAG 0x02458 /* Packet Buffer Diagnostic - RW */ 16462583d18SSepherosa Ziehau #define E1000_RXPBS 0x02404 /* Rx Packet Buffer Size - RW */ 1654be59a01SSepherosa Ziehau #define E1000_IRPBS 0x02404 /* Same as RXPBS, renamed for newer Si - RW */ 16662583d18SSepherosa Ziehau #define E1000_PBRWAC 0x024E8 /* Rx packet buffer wrap around counter - RO */ 1679c80d176SSepherosa Ziehau #define E1000_RDTR 0x02820 /* Rx Delay Timer - RW */ 1689c80d176SSepherosa Ziehau #define E1000_RADV 0x0282C /* Rx Interrupt Absolute Delay Timer - RW */ 169379ebbe7SSepherosa Ziehau #define E1000_EMIADD 0x10 /* Extended Memory Indirect Address */ 170379ebbe7SSepherosa Ziehau #define E1000_EMIDATA 0x11 /* Extended Memory Indirect Data */ 1714be59a01SSepherosa Ziehau #define E1000_SRWR 0x12018 /* Shadow Ram Write Register - RW */ 1724be59a01SSepherosa Ziehau #define E1000_I210_FLMNGCTL 0x12038 1734be59a01SSepherosa Ziehau #define E1000_I210_FLMNGDATA 0x1203C 1744be59a01SSepherosa Ziehau #define E1000_I210_FLMNGCNT 0x12040 1754be59a01SSepherosa Ziehau 1764be59a01SSepherosa Ziehau #define E1000_I210_FLSWCTL 0x12048 1774be59a01SSepherosa Ziehau #define E1000_I210_FLSWDATA 0x1204C 1784be59a01SSepherosa Ziehau #define E1000_I210_FLSWCNT 0x12050 1794be59a01SSepherosa Ziehau 1804be59a01SSepherosa Ziehau #define E1000_I210_FLA 0x1201C 1814be59a01SSepherosa Ziehau 182*01a55482SSepherosa Ziehau #define E1000_EEC_REG 0x12010 183*01a55482SSepherosa Ziehau 184*01a55482SSepherosa Ziehau 185*01a55482SSepherosa Ziehau #define E1000_SHADOWINF 0x12068 186*01a55482SSepherosa Ziehau #define E1000_FLFWUPDATE 0x12108 187*01a55482SSepherosa Ziehau 1884be59a01SSepherosa Ziehau #define E1000_INVM_DATA_REG(_n) (0x12120 + 4*(_n)) 1894be59a01SSepherosa Ziehau #define E1000_INVM_SIZE 64 /* Number of INVM Data Registers */ 1904be59a01SSepherosa Ziehau 1914be59a01SSepherosa Ziehau /* QAV Tx mode control register */ 1924be59a01SSepherosa Ziehau #define E1000_I210_TQAVCTRL 0x3570 1934be59a01SSepherosa Ziehau 1944be59a01SSepherosa Ziehau /* QAV Tx mode control register bitfields masks */ 1954be59a01SSepherosa Ziehau /* QAV enable */ 1964be59a01SSepherosa Ziehau #define E1000_TQAVCTRL_MODE (1 << 0) 1974be59a01SSepherosa Ziehau /* Fetching arbitration type */ 1984be59a01SSepherosa Ziehau #define E1000_TQAVCTRL_FETCH_ARB (1 << 4) 1994be59a01SSepherosa Ziehau /* Fetching timer enable */ 2004be59a01SSepherosa Ziehau #define E1000_TQAVCTRL_FETCH_TIMER_ENABLE (1 << 5) 2014be59a01SSepherosa Ziehau /* Launch arbitration type */ 2024be59a01SSepherosa Ziehau #define E1000_TQAVCTRL_LAUNCH_ARB (1 << 8) 2034be59a01SSepherosa Ziehau /* Launch timer enable */ 2044be59a01SSepherosa Ziehau #define E1000_TQAVCTRL_LAUNCH_TIMER_ENABLE (1 << 9) 2054be59a01SSepherosa Ziehau /* SP waits for SR enable */ 2064be59a01SSepherosa Ziehau #define E1000_TQAVCTRL_SP_WAIT_SR (1 << 10) 2074be59a01SSepherosa Ziehau /* Fetching timer correction */ 2084be59a01SSepherosa Ziehau #define E1000_TQAVCTRL_FETCH_TIMER_DELTA_OFFSET 16 2094be59a01SSepherosa Ziehau #define E1000_TQAVCTRL_FETCH_TIMER_DELTA \ 2104be59a01SSepherosa Ziehau (0xFFFF << E1000_TQAVCTRL_FETCH_TIMER_DELTA_OFFSET) 2114be59a01SSepherosa Ziehau 2124be59a01SSepherosa Ziehau /* High credit registers where _n can be 0 or 1. */ 2134be59a01SSepherosa Ziehau #define E1000_I210_TQAVHC(_n) (0x300C + 0x40 * (_n)) 2144be59a01SSepherosa Ziehau 2154be59a01SSepherosa Ziehau /* Queues fetch arbitration priority control register */ 2164be59a01SSepherosa Ziehau #define E1000_I210_TQAVARBCTRL 0x3574 2174be59a01SSepherosa Ziehau /* Queues priority masks where _n and _p can be 0-3. */ 218ba0123e0SSepherosa Ziehau #define E1000_TQAVARBCTRL_QUEUE_PRI(_n, _p) ((_p) << (2 * (_n))) 2194be59a01SSepherosa Ziehau /* QAV Tx mode control registers where _n can be 0 or 1. */ 2204be59a01SSepherosa Ziehau #define E1000_I210_TQAVCC(_n) (0x3004 + 0x40 * (_n)) 2214be59a01SSepherosa Ziehau 2224be59a01SSepherosa Ziehau /* QAV Tx mode control register bitfields masks */ 2234be59a01SSepherosa Ziehau #define E1000_TQAVCC_IDLE_SLOPE 0xFFFF /* Idle slope */ 2244be59a01SSepherosa Ziehau #define E1000_TQAVCC_KEEP_CREDITS (1 << 30) /* Keep credits opt enable */ 2254be59a01SSepherosa Ziehau #define E1000_TQAVCC_QUEUE_MODE (1 << 31) /* SP vs. SR Tx mode */ 2264be59a01SSepherosa Ziehau 2274be59a01SSepherosa Ziehau /* Good transmitted packets counter registers */ 2284be59a01SSepherosa Ziehau #define E1000_PQGPTC(_n) (0x010014 + (0x100 * (_n))) 2294be59a01SSepherosa Ziehau 2304be59a01SSepherosa Ziehau /* Queues packet buffer size masks where _n can be 0-3 and _s 0-63 [kB] */ 231ba0123e0SSepherosa Ziehau #define E1000_I210_TXPBS_SIZE(_n, _s) ((_s) << (6 * (_n))) 2324be59a01SSepherosa Ziehau 233379ebbe7SSepherosa Ziehau #define E1000_MMDAC 13 /* MMD Access Control */ 234379ebbe7SSepherosa Ziehau #define E1000_MMDAAD 14 /* MMD Access Address/Data */ 235379ebbe7SSepherosa Ziehau 236379ebbe7SSepherosa Ziehau /* Convenience macros 2379c80d176SSepherosa Ziehau * 2389c80d176SSepherosa Ziehau * Note: "_n" is the queue number of the register to be written to. 2399c80d176SSepherosa Ziehau * 2409c80d176SSepherosa Ziehau * Example usage: 2419c80d176SSepherosa Ziehau * E1000_RDBAL_REG(current_rx_queue) 2429c80d176SSepherosa Ziehau */ 2439c80d176SSepherosa Ziehau #define E1000_RDBAL(_n) ((_n) < 4 ? (0x02800 + ((_n) * 0x100)) : \ 2449c80d176SSepherosa Ziehau (0x0C000 + ((_n) * 0x40))) 2459c80d176SSepherosa Ziehau #define E1000_RDBAH(_n) ((_n) < 4 ? (0x02804 + ((_n) * 0x100)) : \ 2469c80d176SSepherosa Ziehau (0x0C004 + ((_n) * 0x40))) 2479c80d176SSepherosa Ziehau #define E1000_RDLEN(_n) ((_n) < 4 ? (0x02808 + ((_n) * 0x100)) : \ 2489c80d176SSepherosa Ziehau (0x0C008 + ((_n) * 0x40))) 2499c80d176SSepherosa Ziehau #define E1000_SRRCTL(_n) ((_n) < 4 ? (0x0280C + ((_n) * 0x100)) : \ 2509c80d176SSepherosa Ziehau (0x0C00C + ((_n) * 0x40))) 2519c80d176SSepherosa Ziehau #define E1000_RDH(_n) ((_n) < 4 ? (0x02810 + ((_n) * 0x100)) : \ 2529c80d176SSepherosa Ziehau (0x0C010 + ((_n) * 0x40))) 2536a5a645eSSepherosa Ziehau #define E1000_RXCTL(_n) ((_n) < 4 ? (0x02814 + ((_n) * 0x100)) : \ 2546a5a645eSSepherosa Ziehau (0x0C014 + ((_n) * 0x40))) 2556a5a645eSSepherosa Ziehau #define E1000_DCA_RXCTRL(_n) E1000_RXCTL(_n) 2569c80d176SSepherosa Ziehau #define E1000_RDT(_n) ((_n) < 4 ? (0x02818 + ((_n) * 0x100)) : \ 2579c80d176SSepherosa Ziehau (0x0C018 + ((_n) * 0x40))) 2589c80d176SSepherosa Ziehau #define E1000_RXDCTL(_n) ((_n) < 4 ? (0x02828 + ((_n) * 0x100)) : \ 2599c80d176SSepherosa Ziehau (0x0C028 + ((_n) * 0x40))) 2606a5a645eSSepherosa Ziehau #define E1000_RQDPC(_n) ((_n) < 4 ? (0x02830 + ((_n) * 0x100)) : \ 2616a5a645eSSepherosa Ziehau (0x0C030 + ((_n) * 0x40))) 2629c80d176SSepherosa Ziehau #define E1000_TDBAL(_n) ((_n) < 4 ? (0x03800 + ((_n) * 0x100)) : \ 2639c80d176SSepherosa Ziehau (0x0E000 + ((_n) * 0x40))) 2649c80d176SSepherosa Ziehau #define E1000_TDBAH(_n) ((_n) < 4 ? (0x03804 + ((_n) * 0x100)) : \ 2659c80d176SSepherosa Ziehau (0x0E004 + ((_n) * 0x40))) 2669c80d176SSepherosa Ziehau #define E1000_TDLEN(_n) ((_n) < 4 ? (0x03808 + ((_n) * 0x100)) : \ 2679c80d176SSepherosa Ziehau (0x0E008 + ((_n) * 0x40))) 2689c80d176SSepherosa Ziehau #define E1000_TDH(_n) ((_n) < 4 ? (0x03810 + ((_n) * 0x100)) : \ 2699c80d176SSepherosa Ziehau (0x0E010 + ((_n) * 0x40))) 2706a5a645eSSepherosa Ziehau #define E1000_TXCTL(_n) ((_n) < 4 ? (0x03814 + ((_n) * 0x100)) : \ 2716a5a645eSSepherosa Ziehau (0x0E014 + ((_n) * 0x40))) 2726a5a645eSSepherosa Ziehau #define E1000_DCA_TXCTRL(_n) E1000_TXCTL(_n) 2739c80d176SSepherosa Ziehau #define E1000_TDT(_n) ((_n) < 4 ? (0x03818 + ((_n) * 0x100)) : \ 2749c80d176SSepherosa Ziehau (0x0E018 + ((_n) * 0x40))) 2759c80d176SSepherosa Ziehau #define E1000_TXDCTL(_n) ((_n) < 4 ? (0x03828 + ((_n) * 0x100)) : \ 2769c80d176SSepherosa Ziehau (0x0E028 + ((_n) * 0x40))) 2779c80d176SSepherosa Ziehau #define E1000_TDWBAL(_n) ((_n) < 4 ? (0x03838 + ((_n) * 0x100)) : \ 2789c80d176SSepherosa Ziehau (0x0E038 + ((_n) * 0x40))) 2799c80d176SSepherosa Ziehau #define E1000_TDWBAH(_n) ((_n) < 4 ? (0x0383C + ((_n) * 0x100)) : \ 2809c80d176SSepherosa Ziehau (0x0E03C + ((_n) * 0x40))) 2816a5a645eSSepherosa Ziehau #define E1000_TARC(_n) (0x03840 + ((_n) * 0x100)) 2829c80d176SSepherosa Ziehau #define E1000_RSRPD 0x02C00 /* Rx Small Packet Detect - RW */ 2839c80d176SSepherosa Ziehau #define E1000_RAID 0x02C08 /* Receive Ack Interrupt Delay - RW */ 2849c80d176SSepherosa Ziehau #define E1000_TXDMAC 0x03000 /* Tx DMA Control - RW */ 2859c80d176SSepherosa Ziehau #define E1000_KABGTXD 0x03004 /* AFE Band Gap Transmit Ref Data */ 2869c80d176SSepherosa Ziehau #define E1000_PSRTYPE(_i) (0x05480 + ((_i) * 4)) 2879c80d176SSepherosa Ziehau #define E1000_RAL(_i) (((_i) <= 15) ? (0x05400 + ((_i) * 8)) : \ 2889c80d176SSepherosa Ziehau (0x054E0 + ((_i - 16) * 8))) 2899c80d176SSepherosa Ziehau #define E1000_RAH(_i) (((_i) <= 15) ? (0x05404 + ((_i) * 8)) : \ 2909c80d176SSepherosa Ziehau (0x054E4 + ((_i - 16) * 8))) 291*01a55482SSepherosa Ziehau 2926a5a645eSSepherosa Ziehau #define E1000_SHRAL(_i) (0x05438 + ((_i) * 8)) 2936a5a645eSSepherosa Ziehau #define E1000_SHRAH(_i) (0x0543C + ((_i) * 8)) 2949c80d176SSepherosa Ziehau #define E1000_IP4AT_REG(_i) (0x05840 + ((_i) * 8)) 2959c80d176SSepherosa Ziehau #define E1000_IP6AT_REG(_i) (0x05880 + ((_i) * 4)) 2969c80d176SSepherosa Ziehau #define E1000_WUPM_REG(_i) (0x05A00 + ((_i) * 4)) 2979c80d176SSepherosa Ziehau #define E1000_FFMT_REG(_i) (0x09000 + ((_i) * 8)) 2989c80d176SSepherosa Ziehau #define E1000_FFVT_REG(_i) (0x09800 + ((_i) * 8)) 2999c80d176SSepherosa Ziehau #define E1000_FFLT_REG(_i) (0x05F00 + ((_i) * 8)) 3004be59a01SSepherosa Ziehau #define E1000_PBSLAC 0x03100 /* Pkt Buffer Slave Access Control */ 3014be59a01SSepherosa Ziehau #define E1000_PBSLAD(_n) (0x03110 + (0x4 * (_n))) /* Pkt Buffer DWORD */ 30262583d18SSepherosa Ziehau #define E1000_TXPBS 0x03404 /* Tx Packet Buffer Size - RW */ 3034be59a01SSepherosa Ziehau /* Same as TXPBS, renamed for newer Si - RW */ 3044be59a01SSepherosa Ziehau #define E1000_ITPBS 0x03404 3059c80d176SSepherosa Ziehau #define E1000_TDFH 0x03410 /* Tx Data FIFO Head - RW */ 3069c80d176SSepherosa Ziehau #define E1000_TDFT 0x03418 /* Tx Data FIFO Tail - RW */ 3079c80d176SSepherosa Ziehau #define E1000_TDFHS 0x03420 /* Tx Data FIFO Head Saved - RW */ 3089c80d176SSepherosa Ziehau #define E1000_TDFTS 0x03428 /* Tx Data FIFO Tail Saved - RW */ 3099c80d176SSepherosa Ziehau #define E1000_TDFPC 0x03430 /* Tx Data FIFO Packet Count - RW */ 3104be59a01SSepherosa Ziehau #define E1000_TDPUMB 0x0357C /* DMA Tx Desc uC Mail Box - RW */ 3114be59a01SSepherosa Ziehau #define E1000_TDPUAD 0x03580 /* DMA Tx Desc uC Addr Command - RW */ 3124be59a01SSepherosa Ziehau #define E1000_TDPUWD 0x03584 /* DMA Tx Desc uC Data Write - RW */ 3134be59a01SSepherosa Ziehau #define E1000_TDPURD 0x03588 /* DMA Tx Desc uC Data Read - RW */ 3144be59a01SSepherosa Ziehau #define E1000_TDPUCTL 0x0358C /* DMA Tx Desc uC Control - RW */ 3159c80d176SSepherosa Ziehau #define E1000_DTXCTL 0x03590 /* DMA Tx Control - RW */ 31662583d18SSepherosa Ziehau #define E1000_DTXTCPFLGL 0x0359C /* DMA Tx Control flag low - RW */ 31762583d18SSepherosa Ziehau #define E1000_DTXTCPFLGH 0x035A0 /* DMA Tx Control flag high - RW */ 3184be59a01SSepherosa Ziehau /* DMA Tx Max Total Allow Size Reqs - RW */ 3194be59a01SSepherosa Ziehau #define E1000_DTXMXSZRQ 0x03540 3209c80d176SSepherosa Ziehau #define E1000_TIDV 0x03820 /* Tx Interrupt Delay Value - RW */ 3219c80d176SSepherosa Ziehau #define E1000_TADV 0x0382C /* Tx Interrupt Absolute Delay Val - RW */ 3229c80d176SSepherosa Ziehau #define E1000_TSPMT 0x03830 /* TCP Segmentation PAD & Min Threshold - RW */ 323*01a55482SSepherosa Ziehau /* Statistics Register Descriptions */ 3249c80d176SSepherosa Ziehau #define E1000_CRCERRS 0x04000 /* CRC Error Count - R/clr */ 3259c80d176SSepherosa Ziehau #define E1000_ALGNERRC 0x04004 /* Alignment Error Count - R/clr */ 3269c80d176SSepherosa Ziehau #define E1000_SYMERRS 0x04008 /* Symbol Error Count - R/clr */ 3279c80d176SSepherosa Ziehau #define E1000_RXERRC 0x0400C /* Receive Error Count - R/clr */ 3289c80d176SSepherosa Ziehau #define E1000_MPC 0x04010 /* Missed Packet Count - R/clr */ 3299c80d176SSepherosa Ziehau #define E1000_SCC 0x04014 /* Single Collision Count - R/clr */ 3309c80d176SSepherosa Ziehau #define E1000_ECOL 0x04018 /* Excessive Collision Count - R/clr */ 3319c80d176SSepherosa Ziehau #define E1000_MCC 0x0401C /* Multiple Collision Count - R/clr */ 3329c80d176SSepherosa Ziehau #define E1000_LATECOL 0x04020 /* Late Collision Count - R/clr */ 3339c80d176SSepherosa Ziehau #define E1000_COLC 0x04028 /* Collision Count - R/clr */ 3349c80d176SSepherosa Ziehau #define E1000_DC 0x04030 /* Defer Count - R/clr */ 3359c80d176SSepherosa Ziehau #define E1000_TNCRS 0x04034 /* Tx-No CRS - R/clr */ 3369c80d176SSepherosa Ziehau #define E1000_SEC 0x04038 /* Sequence Error Count - R/clr */ 3379c80d176SSepherosa Ziehau #define E1000_CEXTERR 0x0403C /* Carrier Extension Error Count - R/clr */ 3389c80d176SSepherosa Ziehau #define E1000_RLEC 0x04040 /* Receive Length Error Count - R/clr */ 3399c80d176SSepherosa Ziehau #define E1000_XONRXC 0x04048 /* XON Rx Count - R/clr */ 3409c80d176SSepherosa Ziehau #define E1000_XONTXC 0x0404C /* XON Tx Count - R/clr */ 3419c80d176SSepherosa Ziehau #define E1000_XOFFRXC 0x04050 /* XOFF Rx Count - R/clr */ 3429c80d176SSepherosa Ziehau #define E1000_XOFFTXC 0x04054 /* XOFF Tx Count - R/clr */ 3439c80d176SSepherosa Ziehau #define E1000_FCRUC 0x04058 /* Flow Control Rx Unsupported Count- R/clr */ 3449c80d176SSepherosa Ziehau #define E1000_PRC64 0x0405C /* Packets Rx (64 bytes) - R/clr */ 3459c80d176SSepherosa Ziehau #define E1000_PRC127 0x04060 /* Packets Rx (65-127 bytes) - R/clr */ 3469c80d176SSepherosa Ziehau #define E1000_PRC255 0x04064 /* Packets Rx (128-255 bytes) - R/clr */ 3479c80d176SSepherosa Ziehau #define E1000_PRC511 0x04068 /* Packets Rx (255-511 bytes) - R/clr */ 3489c80d176SSepherosa Ziehau #define E1000_PRC1023 0x0406C /* Packets Rx (512-1023 bytes) - R/clr */ 3499c80d176SSepherosa Ziehau #define E1000_PRC1522 0x04070 /* Packets Rx (1024-1522 bytes) - R/clr */ 3509c80d176SSepherosa Ziehau #define E1000_GPRC 0x04074 /* Good Packets Rx Count - R/clr */ 3519c80d176SSepherosa Ziehau #define E1000_BPRC 0x04078 /* Broadcast Packets Rx Count - R/clr */ 3529c80d176SSepherosa Ziehau #define E1000_MPRC 0x0407C /* Multicast Packets Rx Count - R/clr */ 3539c80d176SSepherosa Ziehau #define E1000_GPTC 0x04080 /* Good Packets Tx Count - R/clr */ 3549c80d176SSepherosa Ziehau #define E1000_GORCL 0x04088 /* Good Octets Rx Count Low - R/clr */ 3559c80d176SSepherosa Ziehau #define E1000_GORCH 0x0408C /* Good Octets Rx Count High - R/clr */ 3569c80d176SSepherosa Ziehau #define E1000_GOTCL 0x04090 /* Good Octets Tx Count Low - R/clr */ 3579c80d176SSepherosa Ziehau #define E1000_GOTCH 0x04094 /* Good Octets Tx Count High - R/clr */ 3589c80d176SSepherosa Ziehau #define E1000_RNBC 0x040A0 /* Rx No Buffers Count - R/clr */ 3599c80d176SSepherosa Ziehau #define E1000_RUC 0x040A4 /* Rx Undersize Count - R/clr */ 3609c80d176SSepherosa Ziehau #define E1000_RFC 0x040A8 /* Rx Fragment Count - R/clr */ 3619c80d176SSepherosa Ziehau #define E1000_ROC 0x040AC /* Rx Oversize Count - R/clr */ 3629c80d176SSepherosa Ziehau #define E1000_RJC 0x040B0 /* Rx Jabber Count - R/clr */ 3639c80d176SSepherosa Ziehau #define E1000_MGTPRC 0x040B4 /* Management Packets Rx Count - R/clr */ 3649c80d176SSepherosa Ziehau #define E1000_MGTPDC 0x040B8 /* Management Packets Dropped Count - R/clr */ 3659c80d176SSepherosa Ziehau #define E1000_MGTPTC 0x040BC /* Management Packets Tx Count - R/clr */ 3669c80d176SSepherosa Ziehau #define E1000_TORL 0x040C0 /* Total Octets Rx Low - R/clr */ 3679c80d176SSepherosa Ziehau #define E1000_TORH 0x040C4 /* Total Octets Rx High - R/clr */ 3689c80d176SSepherosa Ziehau #define E1000_TOTL 0x040C8 /* Total Octets Tx Low - R/clr */ 3699c80d176SSepherosa Ziehau #define E1000_TOTH 0x040CC /* Total Octets Tx High - R/clr */ 3709c80d176SSepherosa Ziehau #define E1000_TPR 0x040D0 /* Total Packets Rx - R/clr */ 3719c80d176SSepherosa Ziehau #define E1000_TPT 0x040D4 /* Total Packets Tx - R/clr */ 3729c80d176SSepherosa Ziehau #define E1000_PTC64 0x040D8 /* Packets Tx (64 bytes) - R/clr */ 3739c80d176SSepherosa Ziehau #define E1000_PTC127 0x040DC /* Packets Tx (65-127 bytes) - R/clr */ 3749c80d176SSepherosa Ziehau #define E1000_PTC255 0x040E0 /* Packets Tx (128-255 bytes) - R/clr */ 3759c80d176SSepherosa Ziehau #define E1000_PTC511 0x040E4 /* Packets Tx (256-511 bytes) - R/clr */ 3769c80d176SSepherosa Ziehau #define E1000_PTC1023 0x040E8 /* Packets Tx (512-1023 bytes) - R/clr */ 3779c80d176SSepherosa Ziehau #define E1000_PTC1522 0x040EC /* Packets Tx (1024-1522 Bytes) - R/clr */ 3789c80d176SSepherosa Ziehau #define E1000_MPTC 0x040F0 /* Multicast Packets Tx Count - R/clr */ 3799c80d176SSepherosa Ziehau #define E1000_BPTC 0x040F4 /* Broadcast Packets Tx Count - R/clr */ 3809c80d176SSepherosa Ziehau #define E1000_TSCTC 0x040F8 /* TCP Segmentation Context Tx - R/clr */ 3819c80d176SSepherosa Ziehau #define E1000_TSCTFC 0x040FC /* TCP Segmentation Context Tx Fail - R/clr */ 3829c80d176SSepherosa Ziehau #define E1000_IAC 0x04100 /* Interrupt Assertion Count */ 383*01a55482SSepherosa Ziehau /* Interrupt Cause */ 3849c80d176SSepherosa Ziehau #define E1000_ICRXPTC 0x04104 /* Interrupt Cause Rx Pkt Timer Expire Count */ 3859c80d176SSepherosa Ziehau #define E1000_ICRXATC 0x04108 /* Interrupt Cause Rx Abs Timer Expire Count */ 3869c80d176SSepherosa Ziehau #define E1000_ICTXPTC 0x0410C /* Interrupt Cause Tx Pkt Timer Expire Count */ 3879c80d176SSepherosa Ziehau #define E1000_ICTXATC 0x04110 /* Interrupt Cause Tx Abs Timer Expire Count */ 3889c80d176SSepherosa Ziehau #define E1000_ICTXQEC 0x04118 /* Interrupt Cause Tx Queue Empty Count */ 3899c80d176SSepherosa Ziehau #define E1000_ICTXQMTC 0x0411C /* Interrupt Cause Tx Queue Min Thresh Count */ 3909c80d176SSepherosa Ziehau #define E1000_ICRXDMTC 0x04120 /* Interrupt Cause Rx Desc Min Thresh Count */ 3919c80d176SSepherosa Ziehau #define E1000_ICRXOC 0x04124 /* Interrupt Cause Receiver Overrun Count */ 3926a5a645eSSepherosa Ziehau #define E1000_CRC_OFFSET 0x05F50 /* CRC Offset register */ 3939c80d176SSepherosa Ziehau 39462583d18SSepherosa Ziehau #define E1000_VFGPRC 0x00F10 39562583d18SSepherosa Ziehau #define E1000_VFGORC 0x00F18 39662583d18SSepherosa Ziehau #define E1000_VFMPRC 0x00F3C 39762583d18SSepherosa Ziehau #define E1000_VFGPTC 0x00F14 39862583d18SSepherosa Ziehau #define E1000_VFGOTC 0x00F34 39962583d18SSepherosa Ziehau #define E1000_VFGOTLBC 0x00F50 40062583d18SSepherosa Ziehau #define E1000_VFGPTLBC 0x00F44 40162583d18SSepherosa Ziehau #define E1000_VFGORLBC 0x00F48 40262583d18SSepherosa Ziehau #define E1000_VFGPRLBC 0x00F40 40362583d18SSepherosa Ziehau /* Virtualization statistical counters */ 40462583d18SSepherosa Ziehau #define E1000_PFVFGPRC(_n) (0x010010 + (0x100 * (_n))) 40562583d18SSepherosa Ziehau #define E1000_PFVFGPTC(_n) (0x010014 + (0x100 * (_n))) 40662583d18SSepherosa Ziehau #define E1000_PFVFGORC(_n) (0x010018 + (0x100 * (_n))) 40762583d18SSepherosa Ziehau #define E1000_PFVFGOTC(_n) (0x010034 + (0x100 * (_n))) 40862583d18SSepherosa Ziehau #define E1000_PFVFMPRC(_n) (0x010038 + (0x100 * (_n))) 40962583d18SSepherosa Ziehau #define E1000_PFVFGPRLBC(_n) (0x010040 + (0x100 * (_n))) 41062583d18SSepherosa Ziehau #define E1000_PFVFGPTLBC(_n) (0x010044 + (0x100 * (_n))) 41162583d18SSepherosa Ziehau #define E1000_PFVFGORLBC(_n) (0x010048 + (0x100 * (_n))) 41262583d18SSepherosa Ziehau #define E1000_PFVFGOTLBC(_n) (0x010050 + (0x100 * (_n))) 41362583d18SSepherosa Ziehau 4144be59a01SSepherosa Ziehau /* LinkSec */ 4154be59a01SSepherosa Ziehau #define E1000_LSECTXUT 0x04300 /* Tx Untagged Pkt Cnt */ 4164be59a01SSepherosa Ziehau #define E1000_LSECTXPKTE 0x04304 /* Encrypted Tx Pkts Cnt */ 4174be59a01SSepherosa Ziehau #define E1000_LSECTXPKTP 0x04308 /* Protected Tx Pkt Cnt */ 4184be59a01SSepherosa Ziehau #define E1000_LSECTXOCTE 0x0430C /* Encrypted Tx Octets Cnt */ 4194be59a01SSepherosa Ziehau #define E1000_LSECTXOCTP 0x04310 /* Protected Tx Octets Cnt */ 4204be59a01SSepherosa Ziehau #define E1000_LSECRXUT 0x04314 /* Untagged non-Strict Rx Pkt Cnt */ 4214be59a01SSepherosa Ziehau #define E1000_LSECRXOCTD 0x0431C /* Rx Octets Decrypted Count */ 4224be59a01SSepherosa Ziehau #define E1000_LSECRXOCTV 0x04320 /* Rx Octets Validated */ 4234be59a01SSepherosa Ziehau #define E1000_LSECRXBAD 0x04324 /* Rx Bad Tag */ 4244be59a01SSepherosa Ziehau #define E1000_LSECRXNOSCI 0x04328 /* Rx Packet No SCI Count */ 4254be59a01SSepherosa Ziehau #define E1000_LSECRXUNSCI 0x0432C /* Rx Packet Unknown SCI Count */ 4264be59a01SSepherosa Ziehau #define E1000_LSECRXUNCH 0x04330 /* Rx Unchecked Packets Count */ 4274be59a01SSepherosa Ziehau #define E1000_LSECRXDELAY 0x04340 /* Rx Delayed Packet Count */ 4284be59a01SSepherosa Ziehau #define E1000_LSECRXLATE 0x04350 /* Rx Late Packets Count */ 4294be59a01SSepherosa Ziehau #define E1000_LSECRXOK(_n) (0x04360 + (0x04 * (_n))) /* Rx Pkt OK Cnt */ 4304be59a01SSepherosa Ziehau #define E1000_LSECRXINV(_n) (0x04380 + (0x04 * (_n))) /* Rx Invalid Cnt */ 4314be59a01SSepherosa Ziehau #define E1000_LSECRXNV(_n) (0x043A0 + (0x04 * (_n))) /* Rx Not Valid Cnt */ 4324be59a01SSepherosa Ziehau #define E1000_LSECRXUNSA 0x043C0 /* Rx Unused SA Count */ 4334be59a01SSepherosa Ziehau #define E1000_LSECRXNUSA 0x043D0 /* Rx Not Using SA Count */ 4344be59a01SSepherosa Ziehau #define E1000_LSECTXCAP 0x0B000 /* Tx Capabilities Register - RO */ 4354be59a01SSepherosa Ziehau #define E1000_LSECRXCAP 0x0B300 /* Rx Capabilities Register - RO */ 4364be59a01SSepherosa Ziehau #define E1000_LSECTXCTRL 0x0B004 /* Tx Control - RW */ 4374be59a01SSepherosa Ziehau #define E1000_LSECRXCTRL 0x0B304 /* Rx Control - RW */ 4384be59a01SSepherosa Ziehau #define E1000_LSECTXSCL 0x0B008 /* Tx SCI Low - RW */ 4394be59a01SSepherosa Ziehau #define E1000_LSECTXSCH 0x0B00C /* Tx SCI High - RW */ 4404be59a01SSepherosa Ziehau #define E1000_LSECTXSA 0x0B010 /* Tx SA0 - RW */ 4414be59a01SSepherosa Ziehau #define E1000_LSECTXPN0 0x0B018 /* Tx SA PN 0 - RW */ 4424be59a01SSepherosa Ziehau #define E1000_LSECTXPN1 0x0B01C /* Tx SA PN 1 - RW */ 4434be59a01SSepherosa Ziehau #define E1000_LSECRXSCL 0x0B3D0 /* Rx SCI Low - RW */ 4444be59a01SSepherosa Ziehau #define E1000_LSECRXSCH 0x0B3E0 /* Rx SCI High - RW */ 4454be59a01SSepherosa Ziehau /* LinkSec Tx 128-bit Key 0 - WO */ 4464be59a01SSepherosa Ziehau #define E1000_LSECTXKEY0(_n) (0x0B020 + (0x04 * (_n))) 4474be59a01SSepherosa Ziehau /* LinkSec Tx 128-bit Key 1 - WO */ 4484be59a01SSepherosa Ziehau #define E1000_LSECTXKEY1(_n) (0x0B030 + (0x04 * (_n))) 4494be59a01SSepherosa Ziehau #define E1000_LSECRXSA(_n) (0x0B310 + (0x04 * (_n))) /* Rx SAs - RW */ 4504be59a01SSepherosa Ziehau #define E1000_LSECRXPN(_n) (0x0B330 + (0x04 * (_n))) /* Rx SAs - RW */ 451379ebbe7SSepherosa Ziehau /* LinkSec Rx Keys - where _n is the SA no. and _m the 4 dwords of the 128 bit 45262583d18SSepherosa Ziehau * key - RW. 45362583d18SSepherosa Ziehau */ 45462583d18SSepherosa Ziehau #define E1000_LSECRXKEY(_n, _m) (0x0B350 + (0x10 * (_n)) + (0x04 * (_m))) 45562583d18SSepherosa Ziehau 4564be59a01SSepherosa Ziehau #define E1000_SSVPC 0x041A0 /* Switch Security Violation Pkt Cnt */ 45762583d18SSepherosa Ziehau #define E1000_IPSCTRL 0xB430 /* IpSec Control Register */ 45862583d18SSepherosa Ziehau #define E1000_IPSRXCMD 0x0B408 /* IPSec Rx Command Register - RW */ 45962583d18SSepherosa Ziehau #define E1000_IPSRXIDX 0x0B400 /* IPSec Rx Index - RW */ 4604be59a01SSepherosa Ziehau /* IPSec Rx IPv4/v6 Address - RW */ 4614be59a01SSepherosa Ziehau #define E1000_IPSRXIPADDR(_n) (0x0B420 + (0x04 * (_n))) 4624be59a01SSepherosa Ziehau /* IPSec Rx 128-bit Key - RW */ 4634be59a01SSepherosa Ziehau #define E1000_IPSRXKEY(_n) (0x0B410 + (0x04 * (_n))) 46462583d18SSepherosa Ziehau #define E1000_IPSRXSALT 0x0B404 /* IPSec Rx Salt - RW */ 46562583d18SSepherosa Ziehau #define E1000_IPSRXSPI 0x0B40C /* IPSec Rx SPI - RW */ 4664be59a01SSepherosa Ziehau /* IPSec Tx 128-bit Key - RW */ 4674be59a01SSepherosa Ziehau #define E1000_IPSTXKEY(_n) (0x0B460 + (0x04 * (_n))) 46862583d18SSepherosa Ziehau #define E1000_IPSTXSALT 0x0B454 /* IPSec Tx Salt - RW */ 46962583d18SSepherosa Ziehau #define E1000_IPSTXIDX 0x0B450 /* IPSec Tx SA IDX - RW */ 4709c80d176SSepherosa Ziehau #define E1000_PCS_CFG0 0x04200 /* PCS Configuration 0 - RW */ 4719c80d176SSepherosa Ziehau #define E1000_PCS_LCTL 0x04208 /* PCS Link Control - RW */ 4729c80d176SSepherosa Ziehau #define E1000_PCS_LSTAT 0x0420C /* PCS Link Status - RO */ 4739c80d176SSepherosa Ziehau #define E1000_CBTMPC 0x0402C /* Circuit Breaker Tx Packet Count */ 4749c80d176SSepherosa Ziehau #define E1000_HTDPMC 0x0403C /* Host Transmit Discarded Packets */ 4759c80d176SSepherosa Ziehau #define E1000_CBRDPC 0x04044 /* Circuit Breaker Rx Dropped Count */ 4769c80d176SSepherosa Ziehau #define E1000_CBRMPC 0x040FC /* Circuit Breaker Rx Packet Count */ 4779c80d176SSepherosa Ziehau #define E1000_RPTHC 0x04104 /* Rx Packets To Host */ 4789c80d176SSepherosa Ziehau #define E1000_HGPTC 0x04118 /* Host Good Packets Tx Count */ 4799c80d176SSepherosa Ziehau #define E1000_HTCBDPC 0x04124 /* Host Tx Circuit Breaker Dropped Count */ 4809c80d176SSepherosa Ziehau #define E1000_HGORCL 0x04128 /* Host Good Octets Received Count Low */ 4819c80d176SSepherosa Ziehau #define E1000_HGORCH 0x0412C /* Host Good Octets Received Count High */ 4829c80d176SSepherosa Ziehau #define E1000_HGOTCL 0x04130 /* Host Good Octets Transmit Count Low */ 4839c80d176SSepherosa Ziehau #define E1000_HGOTCH 0x04134 /* Host Good Octets Transmit Count High */ 4849c80d176SSepherosa Ziehau #define E1000_LENERRS 0x04138 /* Length Errors Count */ 4859c80d176SSepherosa Ziehau #define E1000_SCVPC 0x04228 /* SerDes/SGMII Code Violation Pkt Count */ 4869c80d176SSepherosa Ziehau #define E1000_HRMPC 0x0A018 /* Header Redirection Missed Packet Count */ 4879c80d176SSepherosa Ziehau #define E1000_PCS_ANADV 0x04218 /* AN advertisement - RW */ 4889c80d176SSepherosa Ziehau #define E1000_PCS_LPAB 0x0421C /* Link Partner Ability - RW */ 4899c80d176SSepherosa Ziehau #define E1000_PCS_NPTX 0x04220 /* AN Next Page Transmit - RW */ 4904be59a01SSepherosa Ziehau #define E1000_PCS_LPABNP 0x04224 /* Link Partner Ability Next Pg - RW */ 4919c80d176SSepherosa Ziehau #define E1000_RXCSUM 0x05000 /* Rx Checksum Control - RW */ 4929c80d176SSepherosa Ziehau #define E1000_RLPML 0x05004 /* Rx Long Packet Max Length */ 4939c80d176SSepherosa Ziehau #define E1000_RFCTL 0x05008 /* Receive Filter Control*/ 4949c80d176SSepherosa Ziehau #define E1000_MTA 0x05200 /* Multicast Table Array - RW Array */ 4959c80d176SSepherosa Ziehau #define E1000_RA 0x05400 /* Receive Address - RW Array */ 4964be59a01SSepherosa Ziehau #define E1000_RA2 0x054E0 /* 2nd half of Rx address array - RW Array */ 4979c80d176SSepherosa Ziehau #define E1000_VFTA 0x05600 /* VLAN Filter Table Array - RW Array */ 4989c80d176SSepherosa Ziehau #define E1000_VT_CTL 0x0581C /* VMDq Control - RW */ 4994be59a01SSepherosa Ziehau #define E1000_CIAA 0x05B88 /* Config Indirect Access Address - RW */ 5004be59a01SSepherosa Ziehau #define E1000_CIAD 0x05B8C /* Config Indirect Access Data - RW */ 5019c80d176SSepherosa Ziehau #define E1000_VFQA0 0x0B000 /* VLAN Filter Queue Array 0 - RW Array */ 5029c80d176SSepherosa Ziehau #define E1000_VFQA1 0x0B200 /* VLAN Filter Queue Array 1 - RW Array */ 5039c80d176SSepherosa Ziehau #define E1000_WUC 0x05800 /* Wakeup Control - RW */ 5049c80d176SSepherosa Ziehau #define E1000_WUFC 0x05808 /* Wakeup Filter Control - RW */ 5059c80d176SSepherosa Ziehau #define E1000_WUS 0x05810 /* Wakeup Status - RO */ 506*01a55482SSepherosa Ziehau /* Management registers */ 5079c80d176SSepherosa Ziehau #define E1000_MANC 0x05820 /* Management Control - RW */ 5089c80d176SSepherosa Ziehau #define E1000_IPAV 0x05838 /* IP Address Valid - RW */ 5099c80d176SSepherosa Ziehau #define E1000_IP4AT 0x05840 /* IPv4 Address Table - RW Array */ 5109c80d176SSepherosa Ziehau #define E1000_IP6AT 0x05880 /* IPv6 Address Table - RW Array */ 5119c80d176SSepherosa Ziehau #define E1000_WUPL 0x05900 /* Wakeup Packet Length - RW */ 5129c80d176SSepherosa Ziehau #define E1000_WUPM 0x05A00 /* Wakeup Packet Memory - RO A */ 5139c80d176SSepherosa Ziehau #define E1000_PBACL 0x05B68 /* MSIx PBA Clear - Read/Write 1's to clear */ 5149c80d176SSepherosa Ziehau #define E1000_FFLT 0x05F00 /* Flexible Filter Length Table - RW Array */ 5159c80d176SSepherosa Ziehau #define E1000_HOST_IF 0x08800 /* Host Interface */ 5164be59a01SSepherosa Ziehau #define E1000_HIBBA 0x8F40 /* Host Interface Buffer Base Address */ 5174be59a01SSepherosa Ziehau /* Flexible Host Filter Table */ 5184be59a01SSepherosa Ziehau #define E1000_FHFT(_n) (0x09000 + ((_n) * 0x100)) 5194be59a01SSepherosa Ziehau /* Ext Flexible Host Filter Table */ 5204be59a01SSepherosa Ziehau #define E1000_FHFT_EXT(_n) (0x09A00 + ((_n) * 0x100)) 52162583d18SSepherosa Ziehau 5229c80d176SSepherosa Ziehau 5239c80d176SSepherosa Ziehau #define E1000_KMRNCTRLSTA 0x00034 /* MAC-PHY interface - RW */ 5249c80d176SSepherosa Ziehau #define E1000_MANC2H 0x05860 /* Management Control To Host - RW */ 5254be59a01SSepherosa Ziehau /* Management Decision Filters */ 5264be59a01SSepherosa Ziehau #define E1000_MDEF(_n) (0x05890 + (4 * (_n))) 5274be59a01SSepherosa Ziehau #define E1000_SW_FW_SYNC 0x05B5C /* SW-FW Synchronization - RW */ 5289c80d176SSepherosa Ziehau #define E1000_CCMCTL 0x05B48 /* CCM Control Register */ 5299c80d176SSepherosa Ziehau #define E1000_GIOCTL 0x05B44 /* GIO Analog Control Register */ 5309c80d176SSepherosa Ziehau #define E1000_SCCTL 0x05B4C /* PCIc PLL Configuration Register */ 531*01a55482SSepherosa Ziehau /* PCIe Register Description */ 5329c80d176SSepherosa Ziehau #define E1000_GCR 0x05B00 /* PCI-Ex Control */ 5336a5a645eSSepherosa Ziehau #define E1000_GCR2 0x05B64 /* PCI-Ex Control #2 */ 5349c80d176SSepherosa Ziehau #define E1000_GSCL_1 0x05B10 /* PCI-Ex Statistic Control #1 */ 5359c80d176SSepherosa Ziehau #define E1000_GSCL_2 0x05B14 /* PCI-Ex Statistic Control #2 */ 5369c80d176SSepherosa Ziehau #define E1000_GSCL_3 0x05B18 /* PCI-Ex Statistic Control #3 */ 5379c80d176SSepherosa Ziehau #define E1000_GSCL_4 0x05B1C /* PCI-Ex Statistic Control #4 */ 538*01a55482SSepherosa Ziehau /* Function Active and Power State to MNG */ 539*01a55482SSepherosa Ziehau #define E1000_FACTPS 0x05B30 5409c80d176SSepherosa Ziehau #define E1000_SWSM 0x05B50 /* SW Semaphore */ 5419c80d176SSepherosa Ziehau #define E1000_FWSM 0x05B54 /* FW Semaphore */ 5424be59a01SSepherosa Ziehau /* Driver-only SW semaphore (not used by BOOT agents) */ 5434be59a01SSepherosa Ziehau #define E1000_SWSM2 0x05B58 5449c80d176SSepherosa Ziehau #define E1000_DCA_ID 0x05B70 /* DCA Requester ID Information - RO */ 5459c80d176SSepherosa Ziehau #define E1000_DCA_CTRL 0x05B74 /* DCA Control - RW */ 5466a5a645eSSepherosa Ziehau #define E1000_UFUSE 0x05B78 /* UFUSE - RO */ 5479c80d176SSepherosa Ziehau #define E1000_FFLT_DBG 0x05F04 /* Debug Register */ 5489c80d176SSepherosa Ziehau #define E1000_HICR 0x08F00 /* Host Interface Control */ 54962583d18SSepherosa Ziehau #define E1000_FWSTS 0x08F0C /* FW Status */ 5509c80d176SSepherosa Ziehau 5519c80d176SSepherosa Ziehau /* RSS registers */ 5529c80d176SSepherosa Ziehau #define E1000_CPUVEC 0x02C10 /* CPU Vector Register - RW */ 5539c80d176SSepherosa Ziehau #define E1000_MRQC 0x05818 /* Multiple Receive Control - RW */ 5549c80d176SSepherosa Ziehau #define E1000_IMIR(_i) (0x05A80 + ((_i) * 4)) /* Immediate Interrupt */ 5554be59a01SSepherosa Ziehau #define E1000_IMIREXT(_i) (0x05AA0 + ((_i) * 4)) /* Immediate INTR Ext*/ 5564be59a01SSepherosa Ziehau #define E1000_IMIRVP 0x05AC0 /* Immediate INT Rx VLAN Priority -RW */ 5574be59a01SSepherosa Ziehau #define E1000_MSIXBM(_i) (0x01600 + ((_i) * 4)) /* MSI-X Alloc Reg -RW */ 558*01a55482SSepherosa Ziehau /* Redirection Table - RW Array */ 559*01a55482SSepherosa Ziehau #define E1000_RETA(_i) (0x05C00 + ((_i) * 4)) 560*01a55482SSepherosa Ziehau /* RSS Random Key - RW Array */ 561*01a55482SSepherosa Ziehau #define E1000_RSSRK(_i) (0x05C80 + ((_i) * 4)) 5629c80d176SSepherosa Ziehau #define E1000_RSSIM 0x05864 /* RSS Interrupt Mask */ 5639c80d176SSepherosa Ziehau #define E1000_RSSIR 0x05868 /* RSS Interrupt Request */ 56462583d18SSepherosa Ziehau /* VT Registers */ 56562583d18SSepherosa Ziehau #define E1000_SWPBS 0x03004 /* Switch Packet Buffer Size - RW */ 56662583d18SSepherosa Ziehau #define E1000_MBVFICR 0x00C80 /* Mailbox VF Cause - RWC */ 56762583d18SSepherosa Ziehau #define E1000_MBVFIMR 0x00C84 /* Mailbox VF int Mask - RW */ 56862583d18SSepherosa Ziehau #define E1000_VFLRE 0x00C88 /* VF Register Events - RWC */ 56962583d18SSepherosa Ziehau #define E1000_VFRE 0x00C8C /* VF Receive Enables */ 57062583d18SSepherosa Ziehau #define E1000_VFTE 0x00C90 /* VF Transmit Enables */ 57162583d18SSepherosa Ziehau #define E1000_QDE 0x02408 /* Queue Drop Enable - RW */ 57262583d18SSepherosa Ziehau #define E1000_DTXSWC 0x03500 /* DMA Tx Switch Control - RW */ 57362583d18SSepherosa Ziehau #define E1000_WVBR 0x03554 /* VM Wrong Behavior - RWS */ 57462583d18SSepherosa Ziehau #define E1000_RPLOLR 0x05AF0 /* Replication Offload - RW */ 57562583d18SSepherosa Ziehau #define E1000_UTA 0x0A000 /* Unicast Table Array - RW */ 57662583d18SSepherosa Ziehau #define E1000_IOVTCL 0x05BBC /* IOV Control Register */ 57762583d18SSepherosa Ziehau #define E1000_VMRCTL 0X05D80 /* Virtual Mirror Rule Control */ 57862583d18SSepherosa Ziehau #define E1000_VMRVLAN 0x05D90 /* Virtual Mirror Rule VLAN */ 57962583d18SSepherosa Ziehau #define E1000_VMRVM 0x05DA0 /* Virtual Mirror Rule VM */ 58062583d18SSepherosa Ziehau #define E1000_MDFB 0x03558 /* Malicious Driver free block */ 58162583d18SSepherosa Ziehau #define E1000_LVMMC 0x03548 /* Last VM Misbehavior cause */ 58262583d18SSepherosa Ziehau #define E1000_TXSWC 0x05ACC /* Tx Switch Control */ 58362583d18SSepherosa Ziehau #define E1000_SCCRL 0x05DB0 /* Storm Control Control */ 58462583d18SSepherosa Ziehau #define E1000_BSCTRH 0x05DB8 /* Broadcast Storm Control Threshold */ 58562583d18SSepherosa Ziehau #define E1000_MSCTRH 0x05DBC /* Multicast Storm Control Threshold */ 58662583d18SSepherosa Ziehau /* These act per VF so an array friendly macro is used */ 58762583d18SSepherosa Ziehau #define E1000_V2PMAILBOX(_n) (0x00C40 + (4 * (_n))) 58862583d18SSepherosa Ziehau #define E1000_P2VMAILBOX(_n) (0x00C00 + (4 * (_n))) 58962583d18SSepherosa Ziehau #define E1000_VMBMEM(_n) (0x00800 + (64 * (_n))) 59062583d18SSepherosa Ziehau #define E1000_VFVMBMEM(_n) (0x00800 + (_n)) 59162583d18SSepherosa Ziehau #define E1000_VMOLR(_n) (0x05AD0 + (4 * (_n))) 5924be59a01SSepherosa Ziehau /* VLAN Virtual Machine Filter - RW */ 5934be59a01SSepherosa Ziehau #define E1000_VLVF(_n) (0x05D00 + (4 * (_n))) 59462583d18SSepherosa Ziehau #define E1000_VMVIR(_n) (0x03700 + (4 * (_n))) 59562583d18SSepherosa Ziehau #define E1000_DVMOLR(_n) (0x0C038 + (0x40 * (_n))) /* DMA VM offload */ 5964be59a01SSepherosa Ziehau #define E1000_VTCTRL(_n) (0x10000 + (0x100 * (_n))) /* VT Control */ 5979c80d176SSepherosa Ziehau #define E1000_TSYNCRXCTL 0x0B620 /* Rx Time Sync Control register - RW */ 5989c80d176SSepherosa Ziehau #define E1000_TSYNCTXCTL 0x0B614 /* Tx Time Sync Control register - RW */ 5999c80d176SSepherosa Ziehau #define E1000_TSYNCRXCFG 0x05F50 /* Time Sync Rx Configuration - RW */ 6009c80d176SSepherosa Ziehau #define E1000_RXSTMPL 0x0B624 /* Rx timestamp Low - RO */ 6019c80d176SSepherosa Ziehau #define E1000_RXSTMPH 0x0B628 /* Rx timestamp High - RO */ 6029c80d176SSepherosa Ziehau #define E1000_RXSATRL 0x0B62C /* Rx timestamp attribute low - RO */ 6039c80d176SSepherosa Ziehau #define E1000_RXSATRH 0x0B630 /* Rx timestamp attribute high - RO */ 6049c80d176SSepherosa Ziehau #define E1000_TXSTMPL 0x0B618 /* Tx timestamp value Low - RO */ 6059c80d176SSepherosa Ziehau #define E1000_TXSTMPH 0x0B61C /* Tx timestamp value High - RO */ 6069c80d176SSepherosa Ziehau #define E1000_SYSTIML 0x0B600 /* System time register Low - RO */ 6079c80d176SSepherosa Ziehau #define E1000_SYSTIMH 0x0B604 /* System time register High - RO */ 6089c80d176SSepherosa Ziehau #define E1000_TIMINCA 0x0B608 /* Increment attributes register - RW */ 6094be59a01SSepherosa Ziehau #define E1000_TIMADJL 0x0B60C /* Time sync time adjustment offset Low - RW */ 6104be59a01SSepherosa Ziehau #define E1000_TIMADJH 0x0B610 /* Time sync time adjustment offset High - RW */ 6116a5a645eSSepherosa Ziehau #define E1000_TSAUXC 0x0B640 /* Timesync Auxiliary Control register */ 61274dc3754SSepherosa Ziehau #define E1000_SYSSTMPL 0x0B648 /* HH Timesync system stamp low register */ 61374dc3754SSepherosa Ziehau #define E1000_SYSSTMPH 0x0B64C /* HH Timesync system stamp hi register */ 61474dc3754SSepherosa Ziehau #define E1000_PLTSTMPL 0x0B640 /* HH Timesync platform stamp low register */ 61574dc3754SSepherosa Ziehau #define E1000_PLTSTMPH 0x0B644 /* HH Timesync platform stamp hi register */ 616379ebbe7SSepherosa Ziehau #define E1000_RXMTRL 0x0B634 /* Time sync Rx EtherType and Msg Type - RW */ 617379ebbe7SSepherosa Ziehau #define E1000_RXUDP 0x0B638 /* Time Sync Rx UDP Port - RW */ 6186a5a645eSSepherosa Ziehau #define E1000_SYSTIMR 0x0B6F8 /* System time register Residue */ 6194be59a01SSepherosa Ziehau #define E1000_TSICR 0x0B66C /* Interrupt Cause Register */ 6204be59a01SSepherosa Ziehau #define E1000_TSIM 0x0B674 /* Interrupt Mask Register */ 62162583d18SSepherosa Ziehau 62262583d18SSepherosa Ziehau /* Filtering Registers */ 62362583d18SSepherosa Ziehau #define E1000_SAQF(_n) (0x05980 + (4 * (_n))) /* Source Address Queue Fltr */ 62462583d18SSepherosa Ziehau #define E1000_DAQF(_n) (0x059A0 + (4 * (_n))) /* Dest Address Queue Fltr */ 62562583d18SSepherosa Ziehau #define E1000_SPQF(_n) (0x059C0 + (4 * (_n))) /* Source Port Queue Fltr */ 62662583d18SSepherosa Ziehau #define E1000_FTQF(_n) (0x059E0 + (4 * (_n))) /* 5-tuple Queue Fltr */ 62762583d18SSepherosa Ziehau #define E1000_TTQF(_n) (0x059E0 + (4 * (_n))) /* 2-tuple Queue Fltr */ 62862583d18SSepherosa Ziehau #define E1000_SYNQF(_n) (0x055FC + (4 * (_n))) /* SYN Packet Queue Fltr */ 62962583d18SSepherosa Ziehau #define E1000_ETQF(_n) (0x05CB0 + (4 * (_n))) /* EType Queue Fltr */ 63062583d18SSepherosa Ziehau 63162583d18SSepherosa Ziehau #define E1000_RTTDCS 0x3600 /* Reedtown Tx Desc plane control and status */ 63262583d18SSepherosa Ziehau #define E1000_RTTPCS 0x3474 /* Reedtown Tx Packet Plane control and status */ 63362583d18SSepherosa Ziehau #define E1000_RTRPCS 0x2474 /* Rx packet plane control and status */ 63462583d18SSepherosa Ziehau #define E1000_RTRUP2TC 0x05AC4 /* Rx User Priority to Traffic Class */ 63562583d18SSepherosa Ziehau #define E1000_RTTUP2TC 0x0418 /* Transmit User Priority to Traffic Class */ 6364be59a01SSepherosa Ziehau /* Tx Desc plane TC Rate-scheduler config */ 6374be59a01SSepherosa Ziehau #define E1000_RTTDTCRC(_n) (0x3610 + ((_n) * 4)) 6384be59a01SSepherosa Ziehau /* Tx Packet plane TC Rate-Scheduler Config */ 6394be59a01SSepherosa Ziehau #define E1000_RTTPTCRC(_n) (0x3480 + ((_n) * 4)) 6404be59a01SSepherosa Ziehau /* Rx Packet plane TC Rate-Scheduler Config */ 6414be59a01SSepherosa Ziehau #define E1000_RTRPTCRC(_n) (0x2480 + ((_n) * 4)) 6424be59a01SSepherosa Ziehau /* Tx Desc Plane TC Rate-Scheduler Status */ 6434be59a01SSepherosa Ziehau #define E1000_RTTDTCRS(_n) (0x3630 + ((_n) * 4)) 6444be59a01SSepherosa Ziehau /* Tx Desc Plane TC Rate-Scheduler MMW */ 6454be59a01SSepherosa Ziehau #define E1000_RTTDTCRM(_n) (0x3650 + ((_n) * 4)) 6464be59a01SSepherosa Ziehau /* Tx Packet plane TC Rate-Scheduler Status */ 6474be59a01SSepherosa Ziehau #define E1000_RTTPTCRS(_n) (0x34A0 + ((_n) * 4)) 6484be59a01SSepherosa Ziehau /* Tx Packet plane TC Rate-scheduler MMW */ 6494be59a01SSepherosa Ziehau #define E1000_RTTPTCRM(_n) (0x34C0 + ((_n) * 4)) 6504be59a01SSepherosa Ziehau /* Rx Packet plane TC Rate-Scheduler Status */ 6514be59a01SSepherosa Ziehau #define E1000_RTRPTCRS(_n) (0x24A0 + ((_n) * 4)) 6524be59a01SSepherosa Ziehau /* Rx Packet plane TC Rate-Scheduler MMW */ 6534be59a01SSepherosa Ziehau #define E1000_RTRPTCRM(_n) (0x24C0 + ((_n) * 4)) 6544be59a01SSepherosa Ziehau /* Tx Desc plane VM Rate-Scheduler MMW*/ 6554be59a01SSepherosa Ziehau #define E1000_RTTDVMRM(_n) (0x3670 + ((_n) * 4)) 6564be59a01SSepherosa Ziehau /* Tx BCN Rate-Scheduler MMW */ 6574be59a01SSepherosa Ziehau #define E1000_RTTBCNRM(_n) (0x3690 + ((_n) * 4)) 65862583d18SSepherosa Ziehau #define E1000_RTTDQSEL 0x3604 /* Tx Desc Plane Queue Select */ 65962583d18SSepherosa Ziehau #define E1000_RTTDVMRC 0x3608 /* Tx Desc Plane VM Rate-Scheduler Config */ 66062583d18SSepherosa Ziehau #define E1000_RTTDVMRS 0x360C /* Tx Desc Plane VM Rate-Scheduler Status */ 66162583d18SSepherosa Ziehau #define E1000_RTTBCNRC 0x36B0 /* Tx BCN Rate-Scheduler Config */ 66262583d18SSepherosa Ziehau #define E1000_RTTBCNRS 0x36B4 /* Tx BCN Rate-Scheduler Status */ 66362583d18SSepherosa Ziehau #define E1000_RTTBCNCR 0xB200 /* Tx BCN Control Register */ 66462583d18SSepherosa Ziehau #define E1000_RTTBCNTG 0x35A4 /* Tx BCN Tagging */ 66562583d18SSepherosa Ziehau #define E1000_RTTBCNCP 0xB208 /* Tx BCN Congestion point */ 66662583d18SSepherosa Ziehau #define E1000_RTRBCNCR 0xB20C /* Rx BCN Control Register */ 66762583d18SSepherosa Ziehau #define E1000_RTTBCNRD 0x36B8 /* Tx BCN Rate Drift */ 66862583d18SSepherosa Ziehau #define E1000_PFCTOP 0x1080 /* Priority Flow Control Type and Opcode */ 66962583d18SSepherosa Ziehau #define E1000_RTTBCNIDX 0xB204 /* Tx BCN Congestion Point */ 67062583d18SSepherosa Ziehau #define E1000_RTTBCNACH 0x0B214 /* Tx BCN Control High */ 67162583d18SSepherosa Ziehau #define E1000_RTTBCNACL 0x0B210 /* Tx BCN Control Low */ 6729c80d176SSepherosa Ziehau 6736a5a645eSSepherosa Ziehau /* DMA Coalescing registers */ 6746a5a645eSSepherosa Ziehau #define E1000_DMACR 0x02508 /* Control Register */ 6756a5a645eSSepherosa Ziehau #define E1000_DMCTXTH 0x03550 /* Transmit Threshold */ 6766a5a645eSSepherosa Ziehau #define E1000_DMCTLX 0x02514 /* Time to Lx Request */ 6776a5a645eSSepherosa Ziehau #define E1000_DMCRTRH 0x05DD0 /* Receive Packet Rate Threshold */ 6786d5e2922SSepherosa Ziehau #define E1000_DMCCNT 0x05DD4 /* Current Rx Count */ 6796a5a645eSSepherosa Ziehau #define E1000_FCRTC 0x02170 /* Flow Control Rx high watermark */ 6806a5a645eSSepherosa Ziehau #define E1000_PCIEMISC 0x05BB8 /* PCIE misc config register */ 6819c80d176SSepherosa Ziehau 6826a5a645eSSepherosa Ziehau /* PCIe Parity Status Register */ 6836a5a645eSSepherosa Ziehau #define E1000_PCIEERRSTS 0x05BA8 6846a5a645eSSepherosa Ziehau 68562583d18SSepherosa Ziehau #define E1000_PROXYS 0x5F64 /* Proxying Status */ 68662583d18SSepherosa Ziehau #define E1000_PROXYFC 0x5F60 /* Proxying Filter Control */ 68762583d18SSepherosa Ziehau /* Thermal sensor configuration and status registers */ 68862583d18SSepherosa Ziehau #define E1000_THMJT 0x08100 /* Junction Temperature */ 68962583d18SSepherosa Ziehau #define E1000_THLOWTC 0x08104 /* Low Threshold Control */ 69062583d18SSepherosa Ziehau #define E1000_THMIDTC 0x08108 /* Mid Threshold Control */ 69162583d18SSepherosa Ziehau #define E1000_THHIGHTC 0x0810C /* High Threshold Control */ 69262583d18SSepherosa Ziehau #define E1000_THSTAT 0x08110 /* Thermal Sensor Status */ 69362583d18SSepherosa Ziehau 69462583d18SSepherosa Ziehau /* Energy Efficient Ethernet "EEE" registers */ 69562583d18SSepherosa Ziehau #define E1000_IPCNFG 0x0E38 /* Internal PHY Configuration */ 69662583d18SSepherosa Ziehau #define E1000_LTRC 0x01A0 /* Latency Tolerance Reporting Control */ 69762583d18SSepherosa Ziehau #define E1000_EEER 0x0E30 /* Energy Efficient Ethernet "EEE"*/ 69862583d18SSepherosa Ziehau #define E1000_EEE_SU 0x0E34 /* EEE Setup */ 69962583d18SSepherosa Ziehau #define E1000_TLPIC 0x4148 /* EEE Tx LPI Count - TLPIC */ 70062583d18SSepherosa Ziehau #define E1000_RLPIC 0x414C /* EEE Rx LPI Count - RLPIC */ 70162583d18SSepherosa Ziehau 70262583d18SSepherosa Ziehau /* OS2BMC Registers */ 70362583d18SSepherosa Ziehau #define E1000_B2OSPC 0x08FE0 /* BMC2OS packets sent by BMC */ 70462583d18SSepherosa Ziehau #define E1000_B2OGPRC 0x04158 /* BMC2OS packets received by host */ 70562583d18SSepherosa Ziehau #define E1000_O2BGPTC 0x08FE4 /* OS2BMC packets received by BMC */ 70662583d18SSepherosa Ziehau #define E1000_O2BSPC 0x0415C /* OS2BMC packets transmitted by host */ 7079c80d176SSepherosa Ziehau 7084be59a01SSepherosa Ziehau 7094be59a01SSepherosa Ziehau 7109c80d176SSepherosa Ziehau #endif 711