blob: 9d609e530621e4d71cc311b7f35140efa0ed39df [file] [log] [blame]
Greg Kroah-Hartmancfb739b2008-04-03 17:30:53 -07001/*
2 * Agere Systems Inc.
3 * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs
4 *
Alan Cox64f93032009-06-10 17:30:41 +01005 * Copyright © 2005 Agere Systems Inc.
Greg Kroah-Hartmancfb739b2008-04-03 17:30:53 -07006 * All rights reserved.
7 * http://www.agere.com
8 *
9 *------------------------------------------------------------------------------
10 *
11 * et131x_defs.h - Defines, structs, enums, prototypes, etc. to assist with OS
12 * compatibility
13 *
14 *------------------------------------------------------------------------------
15 *
16 * SOFTWARE LICENSE
17 *
18 * This software is provided subject to the following terms and conditions,
19 * which you should read carefully before using the software. Using this
20 * software indicates your acceptance of these terms and conditions. If you do
21 * not agree with these terms and conditions, do not use the software.
22 *
Alan Cox64f93032009-06-10 17:30:41 +010023 * Copyright © 2005 Agere Systems Inc.
Greg Kroah-Hartmancfb739b2008-04-03 17:30:53 -070024 * All rights reserved.
25 *
26 * Redistribution and use in source or binary forms, with or without
27 * modifications, are permitted provided that the following conditions are met:
28 *
29 * . Redistributions of source code must retain the above copyright notice, this
30 * list of conditions and the following Disclaimer as comments in the code as
31 * well as in the documentation and/or other materials provided with the
32 * distribution.
33 *
34 * . Redistributions in binary form must reproduce the above copyright notice,
35 * this list of conditions and the following Disclaimer in the documentation
36 * and/or other materials provided with the distribution.
37 *
38 * . Neither the name of Agere Systems Inc. nor the names of the contributors
39 * may be used to endorse or promote products derived from this software
40 * without specific prior written permission.
41 *
42 * Disclaimer
43 *
Alan Cox64f93032009-06-10 17:30:41 +010044 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
Greg Kroah-Hartmancfb739b2008-04-03 17:30:53 -070045 * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF
46 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY
47 * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN
48 * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY
49 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
50 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
51 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
52 * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT
53 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
54 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
55 * DAMAGE.
56 *
57 */
58
59#ifndef __ET131X_DEFS_H__
60#define __ET131X_DEFS_H__
61
62/* Packet and header sizes */
63#define NIC_MIN_PACKET_SIZE 60
64#define NIC_HEADER_SIZE ETH_HLEN /* 14 */
65
66/* Multicast list size */
67#define NIC_MAX_MCAST_LIST 128
68
69/* Supported Filters */
70#define ET131X_PACKET_TYPE_DIRECTED 0x0001
71#define ET131X_PACKET_TYPE_MULTICAST 0x0002
72#define ET131X_PACKET_TYPE_BROADCAST 0x0004
73#define ET131X_PACKET_TYPE_PROMISCUOUS 0x0008
74#define ET131X_PACKET_TYPE_ALL_MULTICAST 0x0010
75
76/* Tx Timeout */
77#define ET131X_TX_TIMEOUT (1 * HZ)
78#define NIC_SEND_HANG_THRESHOLD 0
79
80/* MP_TCB flags */
81#define fMP_DEST_MULTI 0x00000001
82#define fMP_DEST_BROAD 0x00000002
83
84/* MP_ADAPTER flags */
85#define fMP_ADAPTER_RECV_LOOKASIDE 0x00000004
86#define fMP_ADAPTER_INTERRUPT_IN_USE 0x00000008
87#define fMP_ADAPTER_SECONDARY 0x00000010
88
89/* MP_SHARED flags */
90#define fMP_ADAPTER_SHUTDOWN 0x00100000
91#define fMP_ADAPTER_LOWER_POWER 0x00200000
92
93#define fMP_ADAPTER_NON_RECOVER_ERROR 0x00800000
94#define fMP_ADAPTER_RESET_IN_PROGRESS 0x01000000
95#define fMP_ADAPTER_NO_CABLE 0x02000000
96#define fMP_ADAPTER_HARDWARE_ERROR 0x04000000
97#define fMP_ADAPTER_REMOVE_IN_PROGRESS 0x08000000
98#define fMP_ADAPTER_HALT_IN_PROGRESS 0x10000000
99#define fMP_ADAPTER_LINK_DETECTION 0x20000000
100
101#define fMP_ADAPTER_FAIL_SEND_MASK 0x3ff00000
102#define fMP_ADAPTER_NOT_READY_MASK 0x3ff00000
103
104/* Some offsets in PCI config space that are actually used. */
105#define ET1310_PCI_PM_CAPABILITY 0x40
106#define ET1310_PCI_PM_CSR 0x44
107#define ET1310_PCI_MAX_PYLD 0x4C
108#define ET1310_PCI_DEV_CTRL 0x50
109#define ET1310_PCI_DEV_STAT 0x52
110#define ET1310_NMI_DISABLE 0x61
111#define ET1310_PCI_MAC_ADDRESS 0xA4
112#define ET1310_PCI_EEPROM_STATUS 0xB2
113#define ET1310_PCI_PHY_INDEX_REG 0xB4
114#define ET1310_PCI_ACK_NACK 0xC0
115#define ET1310_PCI_REPLAY 0xC2
116#define ET1310_PCI_L0L1LATENCY 0xCF
117#define ET1310_PCI_SEL_PHY_CTRL 0xE4
118#define ET1310_PCI_ADVANCED_ERR 0x100
119
120/* PCI Vendor/Product IDs */
Alan Cox64f93032009-06-10 17:30:41 +0100121#define ET131X_PCI_VENDOR_ID 0x11C1 /* Agere Systems */
122#define ET131X_PCI_DEVICE_ID_GIG 0xED00 /* ET1310 1000 Base-T 8 */
123#define ET131X_PCI_DEVICE_ID_FAST 0xED01 /* ET1310 100 Base-T */
Greg Kroah-Hartmancfb739b2008-04-03 17:30:53 -0700124
125/* Define order of magnitude converter */
126#define NANO_IN_A_MICRO 1000
127
128#endif /* __ET131X_DEFS_H__ */