devices/e1000e/hw-2.6.35-ethercat.h
author Knud Baastrup <kba@deif.com>
Tue, 14 Apr 2015 13:12:24 -0400
changeset 2629 a2701af27fde
parent 2285 8ebecea534d3
permissions -rw-r--r--
Internal SDO requests now synchronized with external requests.
Internal SDO requests are managed by master FSM and can conflict with
external requests managed by slave FSM. The internal SDO requests
includes SDO requests created by an application and external request are
typical created by EtherCAT Tool for SDO upload/download or a directory
fetch initiated with ethercat sdos command. The conflict will cause a
FPWR from an external request to be overwritten by a FPWR from an
internal SDO request (or oppersite) in the same "train" of datagrams.
2285
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     1
/*******************************************************************************
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     2
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     3
  Intel PRO/1000 Linux driver
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     4
  Copyright(c) 1999 - 2009 Intel Corporation.
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     5
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     6
  This program is free software; you can redistribute it and/or modify it
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     7
  under the terms and conditions of the GNU General Public License,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     8
  version 2, as published by the Free Software Foundation.
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     9
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    10
  This program is distributed in the hope it will be useful, but WITHOUT
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    11
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    12
  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    13
  more details.
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    14
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    15
  You should have received a copy of the GNU General Public License along with
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    16
  this program; if not, write to the Free Software Foundation, Inc.,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    17
  51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    18
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    19
  The full GNU General Public License is included in this distribution in
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    20
  the file called "COPYING".
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    21
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    22
  Contact Information:
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    23
  Linux NICS <linux.nics@intel.com>
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    24
  e1000-devel Mailing List <e1000-devel@lists.sourceforge.net>
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    25
  Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    26
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    27
*******************************************************************************/
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    28
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    29
#ifndef _E1000_HW_H_
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    30
#define _E1000_HW_H_
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    31
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    32
#include <linux/types.h>
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    33
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    34
struct e1000_hw;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    35
struct e1000_adapter;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    36
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    37
#include "defines-2.6.35-ethercat.h"
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    38
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    39
#define er32(reg)	__er32(hw, E1000_##reg)
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    40
#define ew32(reg,val)	__ew32(hw, E1000_##reg, (val))
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    41
#define e1e_flush()	er32(STATUS)
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    42
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    43
#define E1000_WRITE_REG_ARRAY(a, reg, offset, value) \
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    44
	(writel((value), ((a)->hw_addr + reg + ((offset) << 2))))
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    45
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    46
#define E1000_READ_REG_ARRAY(a, reg, offset) \
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    47
	(readl((a)->hw_addr + reg + ((offset) << 2)))
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    48
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    49
enum e1e_registers {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    50
	E1000_CTRL     = 0x00000, /* Device Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    51
	E1000_STATUS   = 0x00008, /* Device Status - RO */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    52
	E1000_EECD     = 0x00010, /* EEPROM/Flash Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    53
	E1000_EERD     = 0x00014, /* EEPROM Read - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    54
	E1000_CTRL_EXT = 0x00018, /* Extended Device Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    55
	E1000_FLA      = 0x0001C, /* Flash Access - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    56
	E1000_MDIC     = 0x00020, /* MDI Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    57
	E1000_SCTL     = 0x00024, /* SerDes Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    58
	E1000_FCAL     = 0x00028, /* Flow Control Address Low - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    59
	E1000_FCAH     = 0x0002C, /* Flow Control Address High -RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    60
	E1000_FEXTNVM  = 0x00028, /* Future Extended NVM - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    61
	E1000_FCT      = 0x00030, /* Flow Control Type - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    62
	E1000_VET      = 0x00038, /* VLAN Ether Type - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    63
	E1000_ICR      = 0x000C0, /* Interrupt Cause Read - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    64
	E1000_ITR      = 0x000C4, /* Interrupt Throttling Rate - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    65
	E1000_ICS      = 0x000C8, /* Interrupt Cause Set - WO */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    66
	E1000_IMS      = 0x000D0, /* Interrupt Mask Set - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    67
	E1000_IMC      = 0x000D8, /* Interrupt Mask Clear - WO */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    68
	E1000_EIAC_82574 = 0x000DC, /* Ext. Interrupt Auto Clear - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    69
	E1000_IAM      = 0x000E0, /* Interrupt Acknowledge Auto Mask */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    70
	E1000_IVAR     = 0x000E4, /* Interrupt Vector Allocation - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    71
	E1000_EITR_82574_BASE = 0x000E8, /* Interrupt Throttling - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    72
#define E1000_EITR_82574(_n) (E1000_EITR_82574_BASE + (_n << 2))
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    73
	E1000_RCTL     = 0x00100, /* Rx Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    74
	E1000_FCTTV    = 0x00170, /* Flow Control Transmit Timer Value - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    75
	E1000_TXCW     = 0x00178, /* Tx Configuration Word - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    76
	E1000_RXCW     = 0x00180, /* Rx Configuration Word - RO */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    77
	E1000_TCTL     = 0x00400, /* Tx Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    78
	E1000_TCTL_EXT = 0x00404, /* Extended Tx Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    79
	E1000_TIPG     = 0x00410, /* Tx Inter-packet gap -RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    80
	E1000_AIT      = 0x00458, /* Adaptive Interframe Spacing Throttle -RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    81
	E1000_LEDCTL   = 0x00E00, /* LED Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    82
	E1000_EXTCNF_CTRL  = 0x00F00, /* Extended Configuration Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    83
	E1000_EXTCNF_SIZE  = 0x00F08, /* Extended Configuration Size */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    84
	E1000_PHY_CTRL     = 0x00F10, /* PHY Control Register in CSR */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    85
	E1000_PBA      = 0x01000, /* Packet Buffer Allocation - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    86
	E1000_PBS      = 0x01008, /* Packet Buffer Size */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    87
	E1000_EEMNGCTL = 0x01010, /* MNG EEprom Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    88
	E1000_EEWR     = 0x0102C, /* EEPROM Write Register - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    89
	E1000_FLOP     = 0x0103C, /* FLASH Opcode Register */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    90
	E1000_PBA_ECC  = 0x01100, /* PBA ECC Register */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    91
	E1000_ERT      = 0x02008, /* Early Rx Threshold - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    92
	E1000_FCRTL    = 0x02160, /* Flow Control Receive Threshold Low - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    93
	E1000_FCRTH    = 0x02168, /* Flow Control Receive Threshold High - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    94
	E1000_PSRCTL   = 0x02170, /* Packet Split Receive Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    95
	E1000_RDBAL    = 0x02800, /* Rx Descriptor Base Address Low - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    96
	E1000_RDBAH    = 0x02804, /* Rx Descriptor Base Address High - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    97
	E1000_RDLEN    = 0x02808, /* Rx Descriptor Length - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    98
	E1000_RDH      = 0x02810, /* Rx Descriptor Head - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    99
	E1000_RDT      = 0x02818, /* Rx Descriptor Tail - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   100
	E1000_RDTR     = 0x02820, /* Rx Delay Timer - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   101
	E1000_RXDCTL_BASE = 0x02828, /* Rx Descriptor Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   102
#define E1000_RXDCTL(_n)   (E1000_RXDCTL_BASE + (_n << 8))
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   103
	E1000_RADV     = 0x0282C, /* RX Interrupt Absolute Delay Timer - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   104
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   105
/* Convenience macros
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   106
 *
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   107
 * Note: "_n" is the queue number of the register to be written to.
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   108
 *
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   109
 * Example usage:
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   110
 * E1000_RDBAL_REG(current_rx_queue)
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   111
 *
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   112
 */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   113
#define E1000_RDBAL_REG(_n)   (E1000_RDBAL + (_n << 8))
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   114
	E1000_KABGTXD  = 0x03004, /* AFE Band Gap Transmit Ref Data */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   115
	E1000_TDBAL    = 0x03800, /* Tx Descriptor Base Address Low - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   116
	E1000_TDBAH    = 0x03804, /* Tx Descriptor Base Address High - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   117
	E1000_TDLEN    = 0x03808, /* Tx Descriptor Length - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   118
	E1000_TDH      = 0x03810, /* Tx Descriptor Head - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   119
	E1000_TDT      = 0x03818, /* Tx Descriptor Tail - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   120
	E1000_TIDV     = 0x03820, /* Tx Interrupt Delay Value - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   121
	E1000_TXDCTL_BASE = 0x03828, /* Tx Descriptor Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   122
#define E1000_TXDCTL(_n)   (E1000_TXDCTL_BASE + (_n << 8))
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   123
	E1000_TADV     = 0x0382C, /* Tx Interrupt Absolute Delay Val - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   124
	E1000_TARC_BASE = 0x03840, /* Tx Arbitration Count (0) */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   125
#define E1000_TARC(_n)   (E1000_TARC_BASE + (_n << 8))
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   126
	E1000_CRCERRS  = 0x04000, /* CRC Error Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   127
	E1000_ALGNERRC = 0x04004, /* Alignment Error Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   128
	E1000_SYMERRS  = 0x04008, /* Symbol Error Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   129
	E1000_RXERRC   = 0x0400C, /* Receive Error Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   130
	E1000_MPC      = 0x04010, /* Missed Packet Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   131
	E1000_SCC      = 0x04014, /* Single Collision Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   132
	E1000_ECOL     = 0x04018, /* Excessive Collision Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   133
	E1000_MCC      = 0x0401C, /* Multiple Collision Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   134
	E1000_LATECOL  = 0x04020, /* Late Collision Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   135
	E1000_COLC     = 0x04028, /* Collision Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   136
	E1000_DC       = 0x04030, /* Defer Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   137
	E1000_TNCRS    = 0x04034, /* Tx-No CRS - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   138
	E1000_SEC      = 0x04038, /* Sequence Error Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   139
	E1000_CEXTERR  = 0x0403C, /* Carrier Extension Error Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   140
	E1000_RLEC     = 0x04040, /* Receive Length Error Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   141
	E1000_XONRXC   = 0x04048, /* XON Rx Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   142
	E1000_XONTXC   = 0x0404C, /* XON Tx Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   143
	E1000_XOFFRXC  = 0x04050, /* XOFF Rx Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   144
	E1000_XOFFTXC  = 0x04054, /* XOFF Tx Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   145
	E1000_FCRUC    = 0x04058, /* Flow Control Rx Unsupported Count- R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   146
	E1000_PRC64    = 0x0405C, /* Packets Rx (64 bytes) - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   147
	E1000_PRC127   = 0x04060, /* Packets Rx (65-127 bytes) - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   148
	E1000_PRC255   = 0x04064, /* Packets Rx (128-255 bytes) - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   149
	E1000_PRC511   = 0x04068, /* Packets Rx (255-511 bytes) - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   150
	E1000_PRC1023  = 0x0406C, /* Packets Rx (512-1023 bytes) - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   151
	E1000_PRC1522  = 0x04070, /* Packets Rx (1024-1522 bytes) - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   152
	E1000_GPRC     = 0x04074, /* Good Packets Rx Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   153
	E1000_BPRC     = 0x04078, /* Broadcast Packets Rx Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   154
	E1000_MPRC     = 0x0407C, /* Multicast Packets Rx Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   155
	E1000_GPTC     = 0x04080, /* Good Packets Tx Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   156
	E1000_GORCL    = 0x04088, /* Good Octets Rx Count Low - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   157
	E1000_GORCH    = 0x0408C, /* Good Octets Rx Count High - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   158
	E1000_GOTCL    = 0x04090, /* Good Octets Tx Count Low - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   159
	E1000_GOTCH    = 0x04094, /* Good Octets Tx Count High - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   160
	E1000_RNBC     = 0x040A0, /* Rx No Buffers Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   161
	E1000_RUC      = 0x040A4, /* Rx Undersize Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   162
	E1000_RFC      = 0x040A8, /* Rx Fragment Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   163
	E1000_ROC      = 0x040AC, /* Rx Oversize Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   164
	E1000_RJC      = 0x040B0, /* Rx Jabber Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   165
	E1000_MGTPRC   = 0x040B4, /* Management Packets Rx Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   166
	E1000_MGTPDC   = 0x040B8, /* Management Packets Dropped Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   167
	E1000_MGTPTC   = 0x040BC, /* Management Packets Tx Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   168
	E1000_TORL     = 0x040C0, /* Total Octets Rx Low - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   169
	E1000_TORH     = 0x040C4, /* Total Octets Rx High - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   170
	E1000_TOTL     = 0x040C8, /* Total Octets Tx Low - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   171
	E1000_TOTH     = 0x040CC, /* Total Octets Tx High - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   172
	E1000_TPR      = 0x040D0, /* Total Packets Rx - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   173
	E1000_TPT      = 0x040D4, /* Total Packets Tx - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   174
	E1000_PTC64    = 0x040D8, /* Packets Tx (64 bytes) - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   175
	E1000_PTC127   = 0x040DC, /* Packets Tx (65-127 bytes) - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   176
	E1000_PTC255   = 0x040E0, /* Packets Tx (128-255 bytes) - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   177
	E1000_PTC511   = 0x040E4, /* Packets Tx (256-511 bytes) - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   178
	E1000_PTC1023  = 0x040E8, /* Packets Tx (512-1023 bytes) - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   179
	E1000_PTC1522  = 0x040EC, /* Packets Tx (1024-1522 Bytes) - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   180
	E1000_MPTC     = 0x040F0, /* Multicast Packets Tx Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   181
	E1000_BPTC     = 0x040F4, /* Broadcast Packets Tx Count - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   182
	E1000_TSCTC    = 0x040F8, /* TCP Segmentation Context Tx - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   183
	E1000_TSCTFC   = 0x040FC, /* TCP Segmentation Context Tx Fail - R/clr */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   184
	E1000_IAC      = 0x04100, /* Interrupt Assertion Count */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   185
	E1000_ICRXPTC  = 0x04104, /* Irq Cause Rx Packet Timer Expire Count */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   186
	E1000_ICRXATC  = 0x04108, /* Irq Cause Rx Abs Timer Expire Count */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   187
	E1000_ICTXPTC  = 0x0410C, /* Irq Cause Tx Packet Timer Expire Count */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   188
	E1000_ICTXATC  = 0x04110, /* Irq Cause Tx Abs Timer Expire Count */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   189
	E1000_ICTXQEC  = 0x04118, /* Irq Cause Tx Queue Empty Count */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   190
	E1000_ICTXQMTC = 0x0411C, /* Irq Cause Tx Queue MinThreshold Count */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   191
	E1000_ICRXDMTC = 0x04120, /* Irq Cause Rx Desc MinThreshold Count */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   192
	E1000_ICRXOC   = 0x04124, /* Irq Cause Receiver Overrun Count */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   193
	E1000_RXCSUM   = 0x05000, /* Rx Checksum Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   194
	E1000_RFCTL    = 0x05008, /* Receive Filter Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   195
	E1000_MTA      = 0x05200, /* Multicast Table Array - RW Array */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   196
	E1000_RAL_BASE = 0x05400, /* Receive Address Low - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   197
#define E1000_RAL(_n)   (E1000_RAL_BASE + ((_n) * 8))
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   198
#define E1000_RA        (E1000_RAL(0))
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   199
	E1000_RAH_BASE = 0x05404, /* Receive Address High - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   200
#define E1000_RAH(_n)   (E1000_RAH_BASE + ((_n) * 8))
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   201
	E1000_VFTA     = 0x05600, /* VLAN Filter Table Array - RW Array */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   202
	E1000_WUC      = 0x05800, /* Wakeup Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   203
	E1000_WUFC     = 0x05808, /* Wakeup Filter Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   204
	E1000_WUS      = 0x05810, /* Wakeup Status - RO */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   205
	E1000_MANC     = 0x05820, /* Management Control - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   206
	E1000_FFLT     = 0x05F00, /* Flexible Filter Length Table - RW Array */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   207
	E1000_HOST_IF  = 0x08800, /* Host Interface */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   208
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   209
	E1000_KMRNCTRLSTA = 0x00034, /* MAC-PHY interface - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   210
	E1000_MANC2H    = 0x05860, /* Management Control To Host - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   211
	E1000_MDEF_BASE = 0x05890, /* Management Decision Filters */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   212
#define E1000_MDEF(_n)   (E1000_MDEF_BASE + ((_n) * 4))
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   213
	E1000_SW_FW_SYNC = 0x05B5C, /* Software-Firmware Synchronization - RW */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   214
	E1000_GCR	= 0x05B00, /* PCI-Ex Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   215
	E1000_GCR2      = 0x05B64, /* PCI-Ex Control #2 */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   216
	E1000_FACTPS    = 0x05B30, /* Function Active and Power State to MNG */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   217
	E1000_SWSM      = 0x05B50, /* SW Semaphore */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   218
	E1000_FWSM      = 0x05B54, /* FW Semaphore */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   219
	E1000_SWSM2     = 0x05B58, /* Driver-only SW semaphore */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   220
	E1000_CRC_OFFSET = 0x05F50, /* CRC Offset register */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   221
	E1000_HICR      = 0x08F00, /* Host Interface Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   222
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   223
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   224
#define E1000_MAX_PHY_ADDR		4
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   225
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   226
/* IGP01E1000 Specific Registers */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   227
#define IGP01E1000_PHY_PORT_CONFIG	0x10 /* Port Config */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   228
#define IGP01E1000_PHY_PORT_STATUS	0x11 /* Status */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   229
#define IGP01E1000_PHY_PORT_CTRL	0x12 /* Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   230
#define IGP01E1000_PHY_LINK_HEALTH	0x13 /* PHY Link Health */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   231
#define IGP02E1000_PHY_POWER_MGMT	0x19 /* Power Management */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   232
#define IGP01E1000_PHY_PAGE_SELECT	0x1F /* Page Select */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   233
#define BM_PHY_PAGE_SELECT		22   /* Page Select for BM */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   234
#define IGP_PAGE_SHIFT			5
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   235
#define PHY_REG_MASK			0x1F
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   236
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   237
#define BM_WUC_PAGE			800
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   238
#define BM_WUC_ADDRESS_OPCODE		0x11
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   239
#define BM_WUC_DATA_OPCODE		0x12
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   240
#define BM_WUC_ENABLE_PAGE		769
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   241
#define BM_WUC_ENABLE_REG		17
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   242
#define BM_WUC_ENABLE_BIT		(1 << 2)
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   243
#define BM_WUC_HOST_WU_BIT		(1 << 4)
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   244
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   245
#define BM_WUC	PHY_REG(BM_WUC_PAGE, 1)
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   246
#define BM_WUFC PHY_REG(BM_WUC_PAGE, 2)
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   247
#define BM_WUS	PHY_REG(BM_WUC_PAGE, 3)
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   248
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   249
#define IGP01E1000_PHY_PCS_INIT_REG	0x00B4
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   250
#define IGP01E1000_PHY_POLARITY_MASK	0x0078
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   251
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   252
#define IGP01E1000_PSCR_AUTO_MDIX	0x1000
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   253
#define IGP01E1000_PSCR_FORCE_MDI_MDIX	0x2000 /* 0=MDI, 1=MDIX */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   254
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   255
#define IGP01E1000_PSCFR_SMART_SPEED	0x0080
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   256
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   257
#define IGP02E1000_PM_SPD		0x0001 /* Smart Power Down */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   258
#define IGP02E1000_PM_D0_LPLU		0x0002 /* For D0a states */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   259
#define IGP02E1000_PM_D3_LPLU		0x0004 /* For all other states */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   260
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   261
#define IGP01E1000_PLHR_SS_DOWNGRADE	0x8000
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   262
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   263
#define IGP01E1000_PSSR_POLARITY_REVERSED	0x0002
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   264
#define IGP01E1000_PSSR_MDIX			0x0800
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   265
#define IGP01E1000_PSSR_SPEED_MASK		0xC000
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   266
#define IGP01E1000_PSSR_SPEED_1000MBPS		0xC000
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   267
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   268
#define IGP02E1000_PHY_CHANNEL_NUM		4
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   269
#define IGP02E1000_PHY_AGC_A			0x11B1
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   270
#define IGP02E1000_PHY_AGC_B			0x12B1
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   271
#define IGP02E1000_PHY_AGC_C			0x14B1
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   272
#define IGP02E1000_PHY_AGC_D			0x18B1
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   273
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   274
#define IGP02E1000_AGC_LENGTH_SHIFT	9 /* Course - 15:13, Fine - 12:9 */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   275
#define IGP02E1000_AGC_LENGTH_MASK	0x7F
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   276
#define IGP02E1000_AGC_RANGE		15
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   277
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   278
/* manage.c */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   279
#define E1000_VFTA_ENTRY_SHIFT		5
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   280
#define E1000_VFTA_ENTRY_MASK		0x7F
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   281
#define E1000_VFTA_ENTRY_BIT_SHIFT_MASK	0x1F
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   282
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   283
#define E1000_HICR_EN			0x01  /* Enable bit - RO */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   284
/* Driver sets this bit when done to put command in RAM */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   285
#define E1000_HICR_C			0x02
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   286
#define E1000_HICR_FW_RESET_ENABLE	0x40
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   287
#define E1000_HICR_FW_RESET		0x80
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   288
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   289
#define E1000_FWSM_MODE_MASK		0xE
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   290
#define E1000_FWSM_MODE_SHIFT		1
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   291
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   292
#define E1000_MNG_IAMT_MODE		0x3
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   293
#define E1000_MNG_DHCP_COOKIE_LENGTH	0x10
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   294
#define E1000_MNG_DHCP_COOKIE_OFFSET	0x6F0
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   295
#define E1000_MNG_DHCP_COMMAND_TIMEOUT	10
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   296
#define E1000_MNG_DHCP_TX_PAYLOAD_CMD	64
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   297
#define E1000_MNG_DHCP_COOKIE_STATUS_PARSING	0x1
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   298
#define E1000_MNG_DHCP_COOKIE_STATUS_VLAN	0x2
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   299
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   300
/* nvm.c */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   301
#define E1000_STM_OPCODE  0xDB00
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   302
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   303
#define E1000_KMRNCTRLSTA_OFFSET	0x001F0000
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   304
#define E1000_KMRNCTRLSTA_OFFSET_SHIFT	16
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   305
#define E1000_KMRNCTRLSTA_REN		0x00200000
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   306
#define E1000_KMRNCTRLSTA_DIAG_OFFSET	0x3    /* Kumeran Diagnostic */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   307
#define E1000_KMRNCTRLSTA_TIMEOUTS	0x4    /* Kumeran Timeouts */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   308
#define E1000_KMRNCTRLSTA_INBAND_PARAM	0x9    /* Kumeran InBand Parameters */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   309
#define E1000_KMRNCTRLSTA_DIAG_NELPBK	0x1000 /* Nearend Loopback mode */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   310
#define E1000_KMRNCTRLSTA_K1_CONFIG	0x7
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   311
#define E1000_KMRNCTRLSTA_K1_ENABLE	0x0002
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   312
#define E1000_KMRNCTRLSTA_K1_DISABLE	0x1400
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   313
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   314
#define IFE_PHY_EXTENDED_STATUS_CONTROL	0x10
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   315
#define IFE_PHY_SPECIAL_CONTROL		0x11 /* 100BaseTx PHY Special Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   316
#define IFE_PHY_SPECIAL_CONTROL_LED	0x1B /* PHY Special and LED Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   317
#define IFE_PHY_MDIX_CONTROL		0x1C /* MDI/MDI-X Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   318
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   319
/* IFE PHY Extended Status Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   320
#define IFE_PESC_POLARITY_REVERSED	0x0100
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   321
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   322
/* IFE PHY Special Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   323
#define IFE_PSC_AUTO_POLARITY_DISABLE		0x0010
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   324
#define IFE_PSC_FORCE_POLARITY			0x0020
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   325
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   326
/* IFE PHY Special Control and LED Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   327
#define IFE_PSCL_PROBE_MODE		0x0020
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   328
#define IFE_PSCL_PROBE_LEDS_OFF		0x0006 /* Force LEDs 0 and 2 off */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   329
#define IFE_PSCL_PROBE_LEDS_ON		0x0007 /* Force LEDs 0 and 2 on */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   330
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   331
/* IFE PHY MDIX Control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   332
#define IFE_PMC_MDIX_STATUS	0x0020 /* 1=MDI-X, 0=MDI */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   333
#define IFE_PMC_FORCE_MDIX	0x0040 /* 1=force MDI-X, 0=force MDI */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   334
#define IFE_PMC_AUTO_MDIX	0x0080 /* 1=enable auto MDI/MDI-X, 0=disable */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   335
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   336
#define E1000_CABLE_LENGTH_UNDEFINED	0xFF
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   337
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   338
#define E1000_DEV_ID_82571EB_COPPER		0x105E
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   339
#define E1000_DEV_ID_82571EB_FIBER		0x105F
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   340
#define E1000_DEV_ID_82571EB_SERDES		0x1060
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   341
#define E1000_DEV_ID_82571EB_QUAD_COPPER	0x10A4
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   342
#define E1000_DEV_ID_82571PT_QUAD_COPPER	0x10D5
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   343
#define E1000_DEV_ID_82571EB_QUAD_FIBER		0x10A5
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   344
#define E1000_DEV_ID_82571EB_QUAD_COPPER_LP	0x10BC
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   345
#define E1000_DEV_ID_82571EB_SERDES_DUAL	0x10D9
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   346
#define E1000_DEV_ID_82571EB_SERDES_QUAD	0x10DA
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   347
#define E1000_DEV_ID_82572EI_COPPER		0x107D
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   348
#define E1000_DEV_ID_82572EI_FIBER		0x107E
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   349
#define E1000_DEV_ID_82572EI_SERDES		0x107F
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   350
#define E1000_DEV_ID_82572EI			0x10B9
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   351
#define E1000_DEV_ID_82573E			0x108B
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   352
#define E1000_DEV_ID_82573E_IAMT		0x108C
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   353
#define E1000_DEV_ID_82573L			0x109A
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   354
#define E1000_DEV_ID_82574L			0x10D3
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   355
#define E1000_DEV_ID_82574LA			0x10F6
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   356
#define E1000_DEV_ID_82583V                     0x150C
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   357
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   358
#define E1000_DEV_ID_80003ES2LAN_COPPER_DPT	0x1096
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   359
#define E1000_DEV_ID_80003ES2LAN_SERDES_DPT	0x1098
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   360
#define E1000_DEV_ID_80003ES2LAN_COPPER_SPT	0x10BA
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   361
#define E1000_DEV_ID_80003ES2LAN_SERDES_SPT	0x10BB
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   362
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   363
#define E1000_DEV_ID_ICH8_82567V_3		0x1501
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   364
#define E1000_DEV_ID_ICH8_IGP_M_AMT		0x1049
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   365
#define E1000_DEV_ID_ICH8_IGP_AMT		0x104A
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   366
#define E1000_DEV_ID_ICH8_IGP_C			0x104B
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   367
#define E1000_DEV_ID_ICH8_IFE			0x104C
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   368
#define E1000_DEV_ID_ICH8_IFE_GT		0x10C4
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   369
#define E1000_DEV_ID_ICH8_IFE_G			0x10C5
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   370
#define E1000_DEV_ID_ICH8_IGP_M			0x104D
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   371
#define E1000_DEV_ID_ICH9_IGP_AMT		0x10BD
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   372
#define E1000_DEV_ID_ICH9_BM			0x10E5
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   373
#define E1000_DEV_ID_ICH9_IGP_M_AMT		0x10F5
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   374
#define E1000_DEV_ID_ICH9_IGP_M			0x10BF
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   375
#define E1000_DEV_ID_ICH9_IGP_M_V		0x10CB
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   376
#define E1000_DEV_ID_ICH9_IGP_C			0x294C
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   377
#define E1000_DEV_ID_ICH9_IFE			0x10C0
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   378
#define E1000_DEV_ID_ICH9_IFE_GT		0x10C3
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   379
#define E1000_DEV_ID_ICH9_IFE_G			0x10C2
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   380
#define E1000_DEV_ID_ICH10_R_BM_LM		0x10CC
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   381
#define E1000_DEV_ID_ICH10_R_BM_LF		0x10CD
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   382
#define E1000_DEV_ID_ICH10_R_BM_V		0x10CE
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   383
#define E1000_DEV_ID_ICH10_D_BM_LM		0x10DE
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   384
#define E1000_DEV_ID_ICH10_D_BM_LF		0x10DF
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   385
#define E1000_DEV_ID_ICH10_D_BM_V		0x1525
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   386
#define E1000_DEV_ID_PCH_M_HV_LM		0x10EA
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   387
#define E1000_DEV_ID_PCH_M_HV_LC		0x10EB
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   388
#define E1000_DEV_ID_PCH_D_HV_DM		0x10EF
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   389
#define E1000_DEV_ID_PCH_D_HV_DC		0x10F0
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   390
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   391
#define E1000_REVISION_4 4
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   392
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   393
#define E1000_FUNC_1 1
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   394
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   395
#define E1000_ALT_MAC_ADDRESS_OFFSET_LAN0   0
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   396
#define E1000_ALT_MAC_ADDRESS_OFFSET_LAN1   3
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   397
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   398
enum e1000_mac_type {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   399
	e1000_82571,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   400
	e1000_82572,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   401
	e1000_82573,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   402
	e1000_82574,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   403
	e1000_82583,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   404
	e1000_80003es2lan,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   405
	e1000_ich8lan,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   406
	e1000_ich9lan,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   407
	e1000_ich10lan,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   408
	e1000_pchlan,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   409
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   410
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   411
enum e1000_media_type {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   412
	e1000_media_type_unknown = 0,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   413
	e1000_media_type_copper = 1,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   414
	e1000_media_type_fiber = 2,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   415
	e1000_media_type_internal_serdes = 3,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   416
	e1000_num_media_types
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   417
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   418
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   419
enum e1000_nvm_type {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   420
	e1000_nvm_unknown = 0,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   421
	e1000_nvm_none,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   422
	e1000_nvm_eeprom_spi,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   423
	e1000_nvm_flash_hw,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   424
	e1000_nvm_flash_sw
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   425
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   426
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   427
enum e1000_nvm_override {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   428
	e1000_nvm_override_none = 0,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   429
	e1000_nvm_override_spi_small,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   430
	e1000_nvm_override_spi_large
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   431
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   432
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   433
enum e1000_phy_type {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   434
	e1000_phy_unknown = 0,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   435
	e1000_phy_none,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   436
	e1000_phy_m88,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   437
	e1000_phy_igp,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   438
	e1000_phy_igp_2,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   439
	e1000_phy_gg82563,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   440
	e1000_phy_igp_3,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   441
	e1000_phy_ife,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   442
	e1000_phy_bm,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   443
	e1000_phy_82578,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   444
	e1000_phy_82577,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   445
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   446
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   447
enum e1000_bus_width {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   448
	e1000_bus_width_unknown = 0,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   449
	e1000_bus_width_pcie_x1,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   450
	e1000_bus_width_pcie_x2,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   451
	e1000_bus_width_pcie_x4 = 4,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   452
	e1000_bus_width_32,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   453
	e1000_bus_width_64,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   454
	e1000_bus_width_reserved
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   455
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   456
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   457
enum e1000_1000t_rx_status {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   458
	e1000_1000t_rx_status_not_ok = 0,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   459
	e1000_1000t_rx_status_ok,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   460
	e1000_1000t_rx_status_undefined = 0xFF
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   461
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   462
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   463
enum e1000_rev_polarity{
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   464
	e1000_rev_polarity_normal = 0,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   465
	e1000_rev_polarity_reversed,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   466
	e1000_rev_polarity_undefined = 0xFF
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   467
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   468
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   469
enum e1000_fc_mode {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   470
	e1000_fc_none = 0,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   471
	e1000_fc_rx_pause,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   472
	e1000_fc_tx_pause,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   473
	e1000_fc_full,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   474
	e1000_fc_default = 0xFF
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   475
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   476
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   477
enum e1000_ms_type {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   478
	e1000_ms_hw_default = 0,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   479
	e1000_ms_force_master,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   480
	e1000_ms_force_slave,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   481
	e1000_ms_auto
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   482
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   483
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   484
enum e1000_smart_speed {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   485
	e1000_smart_speed_default = 0,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   486
	e1000_smart_speed_on,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   487
	e1000_smart_speed_off
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   488
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   489
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   490
enum e1000_serdes_link_state {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   491
	e1000_serdes_link_down = 0,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   492
	e1000_serdes_link_autoneg_progress,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   493
	e1000_serdes_link_autoneg_complete,
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   494
	e1000_serdes_link_forced_up
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   495
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   496
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   497
/* Receive Descriptor */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   498
struct e1000_rx_desc {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   499
	__le64 buffer_addr; /* Address of the descriptor's data buffer */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   500
	__le16 length;      /* Length of data DMAed into data buffer */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   501
	__le16 csum;	/* Packet checksum */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   502
	u8  status;      /* Descriptor status */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   503
	u8  errors;      /* Descriptor Errors */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   504
	__le16 special;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   505
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   506
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   507
/* Receive Descriptor - Extended */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   508
union e1000_rx_desc_extended {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   509
	struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   510
		__le64 buffer_addr;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   511
		__le64 reserved;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   512
	} read;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   513
	struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   514
		struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   515
			__le32 mrq;	      /* Multiple Rx Queues */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   516
			union {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   517
				__le32 rss;	    /* RSS Hash */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   518
				struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   519
					__le16 ip_id;  /* IP id */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   520
					__le16 csum;   /* Packet Checksum */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   521
				} csum_ip;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   522
			} hi_dword;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   523
		} lower;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   524
		struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   525
			__le32 status_error;     /* ext status/error */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   526
			__le16 length;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   527
			__le16 vlan;	     /* VLAN tag */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   528
		} upper;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   529
	} wb;  /* writeback */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   530
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   531
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   532
#define MAX_PS_BUFFERS 4
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   533
/* Receive Descriptor - Packet Split */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   534
union e1000_rx_desc_packet_split {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   535
	struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   536
		/* one buffer for protocol header(s), three data buffers */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   537
		__le64 buffer_addr[MAX_PS_BUFFERS];
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   538
	} read;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   539
	struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   540
		struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   541
			__le32 mrq;	      /* Multiple Rx Queues */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   542
			union {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   543
				__le32 rss;	      /* RSS Hash */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   544
				struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   545
					__le16 ip_id;    /* IP id */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   546
					__le16 csum;     /* Packet Checksum */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   547
				} csum_ip;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   548
			} hi_dword;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   549
		} lower;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   550
		struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   551
			__le32 status_error;     /* ext status/error */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   552
			__le16 length0;	  /* length of buffer 0 */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   553
			__le16 vlan;	     /* VLAN tag */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   554
		} middle;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   555
		struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   556
			__le16 header_status;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   557
			__le16 length[3];	/* length of buffers 1-3 */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   558
		} upper;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   559
		__le64 reserved;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   560
	} wb; /* writeback */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   561
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   562
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   563
/* Transmit Descriptor */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   564
struct e1000_tx_desc {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   565
	__le64 buffer_addr;      /* Address of the descriptor's data buffer */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   566
	union {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   567
		__le32 data;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   568
		struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   569
			__le16 length;    /* Data buffer length */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   570
			u8 cso;	/* Checksum offset */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   571
			u8 cmd;	/* Descriptor control */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   572
		} flags;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   573
	} lower;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   574
	union {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   575
		__le32 data;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   576
		struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   577
			u8 status;     /* Descriptor status */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   578
			u8 css;	/* Checksum start */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   579
			__le16 special;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   580
		} fields;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   581
	} upper;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   582
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   583
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   584
/* Offload Context Descriptor */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   585
struct e1000_context_desc {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   586
	union {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   587
		__le32 ip_config;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   588
		struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   589
			u8 ipcss;      /* IP checksum start */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   590
			u8 ipcso;      /* IP checksum offset */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   591
			__le16 ipcse;     /* IP checksum end */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   592
		} ip_fields;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   593
	} lower_setup;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   594
	union {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   595
		__le32 tcp_config;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   596
		struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   597
			u8 tucss;      /* TCP checksum start */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   598
			u8 tucso;      /* TCP checksum offset */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   599
			__le16 tucse;     /* TCP checksum end */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   600
		} tcp_fields;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   601
	} upper_setup;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   602
	__le32 cmd_and_length;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   603
	union {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   604
		__le32 data;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   605
		struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   606
			u8 status;     /* Descriptor status */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   607
			u8 hdr_len;    /* Header length */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   608
			__le16 mss;       /* Maximum segment size */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   609
		} fields;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   610
	} tcp_seg_setup;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   611
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   612
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   613
/* Offload data descriptor */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   614
struct e1000_data_desc {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   615
	__le64 buffer_addr;   /* Address of the descriptor's buffer address */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   616
	union {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   617
		__le32 data;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   618
		struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   619
			__le16 length;    /* Data buffer length */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   620
			u8 typ_len_ext;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   621
			u8 cmd;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   622
		} flags;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   623
	} lower;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   624
	union {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   625
		__le32 data;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   626
		struct {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   627
			u8 status;     /* Descriptor status */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   628
			u8 popts;      /* Packet Options */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   629
			__le16 special;   /* */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   630
		} fields;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   631
	} upper;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   632
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   633
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   634
/* Statistics counters collected by the MAC */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   635
struct e1000_hw_stats {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   636
	u64 crcerrs;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   637
	u64 algnerrc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   638
	u64 symerrs;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   639
	u64 rxerrc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   640
	u64 mpc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   641
	u64 scc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   642
	u64 ecol;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   643
	u64 mcc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   644
	u64 latecol;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   645
	u64 colc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   646
	u64 dc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   647
	u64 tncrs;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   648
	u64 sec;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   649
	u64 cexterr;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   650
	u64 rlec;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   651
	u64 xonrxc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   652
	u64 xontxc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   653
	u64 xoffrxc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   654
	u64 xofftxc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   655
	u64 fcruc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   656
	u64 prc64;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   657
	u64 prc127;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   658
	u64 prc255;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   659
	u64 prc511;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   660
	u64 prc1023;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   661
	u64 prc1522;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   662
	u64 gprc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   663
	u64 bprc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   664
	u64 mprc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   665
	u64 gptc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   666
	u64 gorc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   667
	u64 gotc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   668
	u64 rnbc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   669
	u64 ruc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   670
	u64 rfc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   671
	u64 roc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   672
	u64 rjc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   673
	u64 mgprc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   674
	u64 mgpdc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   675
	u64 mgptc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   676
	u64 tor;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   677
	u64 tot;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   678
	u64 tpr;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   679
	u64 tpt;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   680
	u64 ptc64;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   681
	u64 ptc127;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   682
	u64 ptc255;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   683
	u64 ptc511;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   684
	u64 ptc1023;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   685
	u64 ptc1522;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   686
	u64 mptc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   687
	u64 bptc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   688
	u64 tsctc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   689
	u64 tsctfc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   690
	u64 iac;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   691
	u64 icrxptc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   692
	u64 icrxatc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   693
	u64 ictxptc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   694
	u64 ictxatc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   695
	u64 ictxqec;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   696
	u64 ictxqmtc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   697
	u64 icrxdmtc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   698
	u64 icrxoc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   699
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   700
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   701
struct e1000_phy_stats {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   702
	u32 idle_errors;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   703
	u32 receive_errors;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   704
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   705
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   706
struct e1000_host_mng_dhcp_cookie {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   707
	u32 signature;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   708
	u8  status;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   709
	u8  reserved0;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   710
	u16 vlan_id;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   711
	u32 reserved1;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   712
	u16 reserved2;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   713
	u8  reserved3;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   714
	u8  checksum;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   715
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   716
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   717
/* Host Interface "Rev 1" */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   718
struct e1000_host_command_header {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   719
	u8 command_id;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   720
	u8 command_length;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   721
	u8 command_options;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   722
	u8 checksum;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   723
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   724
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   725
#define E1000_HI_MAX_DATA_LENGTH     252
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   726
struct e1000_host_command_info {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   727
	struct e1000_host_command_header command_header;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   728
	u8 command_data[E1000_HI_MAX_DATA_LENGTH];
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   729
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   730
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   731
/* Host Interface "Rev 2" */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   732
struct e1000_host_mng_command_header {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   733
	u8  command_id;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   734
	u8  checksum;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   735
	u16 reserved1;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   736
	u16 reserved2;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   737
	u16 command_length;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   738
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   739
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   740
#define E1000_HI_MAX_MNG_DATA_LENGTH 0x6F8
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   741
struct e1000_host_mng_command_info {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   742
	struct e1000_host_mng_command_header command_header;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   743
	u8 command_data[E1000_HI_MAX_MNG_DATA_LENGTH];
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   744
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   745
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   746
/* Function pointers and static data for the MAC. */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   747
struct e1000_mac_operations {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   748
	s32  (*id_led_init)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   749
	bool (*check_mng_mode)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   750
	s32  (*check_for_link)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   751
	s32  (*cleanup_led)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   752
	void (*clear_hw_cntrs)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   753
	void (*clear_vfta)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   754
	s32  (*get_bus_info)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   755
	void (*set_lan_id)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   756
	s32  (*get_link_up_info)(struct e1000_hw *, u16 *, u16 *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   757
	s32  (*led_on)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   758
	s32  (*led_off)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   759
	void (*update_mc_addr_list)(struct e1000_hw *, u8 *, u32);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   760
	s32  (*reset_hw)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   761
	s32  (*init_hw)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   762
	s32  (*setup_link)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   763
	s32  (*setup_physical_interface)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   764
	s32  (*setup_led)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   765
	void (*write_vfta)(struct e1000_hw *, u32, u32);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   766
	s32  (*read_mac_addr)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   767
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   768
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   769
/* Function pointers for the PHY. */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   770
struct e1000_phy_operations {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   771
	s32  (*acquire)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   772
	s32  (*cfg_on_link_up)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   773
	s32  (*check_polarity)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   774
	s32  (*check_reset_block)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   775
	s32  (*commit)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   776
	s32  (*force_speed_duplex)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   777
	s32  (*get_cfg_done)(struct e1000_hw *hw);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   778
	s32  (*get_cable_length)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   779
	s32  (*get_info)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   780
	s32  (*read_reg)(struct e1000_hw *, u32, u16 *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   781
	s32  (*read_reg_locked)(struct e1000_hw *, u32, u16 *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   782
	void (*release)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   783
	s32  (*reset)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   784
	s32  (*set_d0_lplu_state)(struct e1000_hw *, bool);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   785
	s32  (*set_d3_lplu_state)(struct e1000_hw *, bool);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   786
	s32  (*write_reg)(struct e1000_hw *, u32, u16);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   787
	s32  (*write_reg_locked)(struct e1000_hw *, u32, u16);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   788
	void (*power_up)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   789
	void (*power_down)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   790
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   791
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   792
/* Function pointers for the NVM. */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   793
struct e1000_nvm_operations {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   794
	s32  (*acquire)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   795
	s32  (*read)(struct e1000_hw *, u16, u16, u16 *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   796
	void (*release)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   797
	s32  (*update)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   798
	s32  (*valid_led_default)(struct e1000_hw *, u16 *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   799
	s32  (*validate)(struct e1000_hw *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   800
	s32  (*write)(struct e1000_hw *, u16, u16, u16 *);
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   801
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   802
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   803
struct e1000_mac_info {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   804
	struct e1000_mac_operations ops;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   805
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   806
	u8 addr[6];
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   807
	u8 perm_addr[6];
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   808
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   809
	enum e1000_mac_type type;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   810
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   811
	u32 collision_delta;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   812
	u32 ledctl_default;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   813
	u32 ledctl_mode1;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   814
	u32 ledctl_mode2;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   815
	u32 mc_filter_type;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   816
	u32 tx_packet_delta;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   817
	u32 txcw;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   818
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   819
	u16 current_ifs_val;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   820
	u16 ifs_max_val;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   821
	u16 ifs_min_val;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   822
	u16 ifs_ratio;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   823
	u16 ifs_step_size;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   824
	u16 mta_reg_count;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   825
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   826
	/* Maximum size of the MTA register table in all supported adapters */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   827
	#define MAX_MTA_REG 128
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   828
	u32 mta_shadow[MAX_MTA_REG];
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   829
	u16 rar_entry_count;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   830
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   831
	u8  forced_speed_duplex;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   832
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   833
	bool adaptive_ifs;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   834
	bool has_fwsm;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   835
	bool arc_subsystem_valid;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   836
	bool autoneg;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   837
	bool autoneg_failed;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   838
	bool get_link_status;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   839
	bool in_ifs_mode;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   840
	bool serdes_has_link;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   841
	bool tx_pkt_filtering;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   842
	enum e1000_serdes_link_state serdes_link_state;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   843
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   844
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   845
struct e1000_phy_info {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   846
	struct e1000_phy_operations ops;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   847
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   848
	enum e1000_phy_type type;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   849
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   850
	enum e1000_1000t_rx_status local_rx;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   851
	enum e1000_1000t_rx_status remote_rx;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   852
	enum e1000_ms_type ms_type;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   853
	enum e1000_ms_type original_ms_type;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   854
	enum e1000_rev_polarity cable_polarity;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   855
	enum e1000_smart_speed smart_speed;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   856
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   857
	u32 addr;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   858
	u32 id;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   859
	u32 reset_delay_us; /* in usec */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   860
	u32 revision;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   861
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   862
	enum e1000_media_type media_type;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   863
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   864
	u16 autoneg_advertised;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   865
	u16 autoneg_mask;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   866
	u16 cable_length;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   867
	u16 max_cable_length;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   868
	u16 min_cable_length;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   869
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   870
	u8 mdix;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   871
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   872
	bool disable_polarity_correction;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   873
	bool is_mdix;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   874
	bool polarity_correction;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   875
	bool speed_downgraded;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   876
	bool autoneg_wait_to_complete;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   877
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   878
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   879
struct e1000_nvm_info {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   880
	struct e1000_nvm_operations ops;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   881
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   882
	enum e1000_nvm_type type;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   883
	enum e1000_nvm_override override;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   884
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   885
	u32 flash_bank_size;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   886
	u32 flash_base_addr;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   887
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   888
	u16 word_size;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   889
	u16 delay_usec;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   890
	u16 address_bits;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   891
	u16 opcode_bits;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   892
	u16 page_size;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   893
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   894
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   895
struct e1000_bus_info {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   896
	enum e1000_bus_width width;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   897
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   898
	u16 func;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   899
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   900
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   901
struct e1000_fc_info {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   902
	u32 high_water;          /* Flow control high-water mark */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   903
	u32 low_water;           /* Flow control low-water mark */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   904
	u16 pause_time;          /* Flow control pause timer */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   905
	u16 refresh_time;        /* Flow control refresh timer */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   906
	bool send_xon;           /* Flow control send XON */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   907
	bool strict_ieee;        /* Strict IEEE mode */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   908
	enum e1000_fc_mode current_mode; /* FC mode in effect */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   909
	enum e1000_fc_mode requested_mode; /* FC mode requested by caller */
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   910
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   911
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   912
struct e1000_dev_spec_82571 {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   913
	bool laa_is_present;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   914
	u32 smb_counter;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   915
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   916
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   917
struct e1000_dev_spec_80003es2lan {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   918
	bool  mdic_wa_enable;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   919
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   920
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   921
struct e1000_shadow_ram {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   922
	u16  value;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   923
	bool modified;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   924
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   925
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   926
#define E1000_ICH8_SHADOW_RAM_WORDS		2048
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   927
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   928
struct e1000_dev_spec_ich8lan {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   929
	bool kmrn_lock_loss_workaround_enabled;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   930
	struct e1000_shadow_ram shadow_ram[E1000_ICH8_SHADOW_RAM_WORDS];
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   931
	bool nvm_k1_enabled;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   932
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   933
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   934
struct e1000_hw {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   935
	struct e1000_adapter *adapter;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   936
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   937
	u8 __iomem *hw_addr;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   938
	u8 __iomem *flash_address;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   939
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   940
	struct e1000_mac_info  mac;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   941
	struct e1000_fc_info   fc;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   942
	struct e1000_phy_info  phy;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   943
	struct e1000_nvm_info  nvm;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   944
	struct e1000_bus_info  bus;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   945
	struct e1000_host_mng_dhcp_cookie mng_cookie;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   946
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   947
	union {
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   948
		struct e1000_dev_spec_82571	e82571;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   949
		struct e1000_dev_spec_80003es2lan e80003es2lan;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   950
		struct e1000_dev_spec_ich8lan	ich8lan;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   951
	} dev_spec;
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   952
};
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   953
8ebecea534d3 Added e1000e driver for 2.6.35.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
   954
#endif