diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2008-04-03 20:30:53 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-10-10 18:31:07 -0400 |
commit | cfb739b459a4d982b75f5b92cbe7d2631999e206 (patch) | |
tree | 3baa4860ac0a6937eb39bdedcf803ab44bb697fa /drivers/staging/et131x/et131x_defs.h | |
parent | dbc6c2ccb9f0abd6a19406718730ce0f715b2998 (diff) |
Staging: add et131x network driver
This is a driver for the ET1310 network device.
Based on the driver found at https://sourceforge.net/projects/et131x/
Cleaned up immensely by Olaf Hartman <o.hartmann@telovital.com> and Christoph
Hellwig <hch@infradead.org>
Note, the powermanagement options were removed from the vendor provided
driver as they did not build properly at the time.
TODO:
- kernel coding style cleanups
- forward port for latest network driver changes
- kill useless typecasts (e.g. in et1310_phy.c)
- alloc_etherdev is initializing memory with zero?!?
- add_timer call in et131x_netdev.c is correct?
- Add power saving functionality (suspend, sleep, resume)
- Implement a few more kernel Parameter (set mac )
Cc: Olaf Hartmann <o.hartmann@telovital.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Dean Adams <dadams1969@gmail.com>
Cc: Victor Soriano <vjsoriano@agere.com>
Cc: Andre-Sebastian Liebe <andre@lianse.eu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/et131x/et131x_defs.h')
-rw-r--r-- | drivers/staging/et131x/et131x_defs.h | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/drivers/staging/et131x/et131x_defs.h b/drivers/staging/et131x/et131x_defs.h new file mode 100644 index 00000000000..886cb78698e --- /dev/null +++ b/drivers/staging/et131x/et131x_defs.h | |||
@@ -0,0 +1,128 @@ | |||
1 | /* | ||
2 | * Agere Systems Inc. | ||
3 | * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs | ||
4 | * | ||
5 | * Copyright © 2005 Agere Systems Inc. | ||
6 | * 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 | * | ||
23 | * Copyright © 2005 Agere Systems Inc. | ||
24 | * 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 | * | ||
44 | * THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, | ||
45 | * 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 */ | ||
121 | #define ET131X_PCI_VENDOR_ID 0x11C1 // Agere Systems | ||
122 | #define ET131X_PCI_DEVICE_ID_GIG 0xED00 // ET1310 1000 Base-T | ||
123 | #define ET131X_PCI_DEVICE_ID_FAST 0xED01 // ET1310 100 Base-T | ||
124 | |||
125 | /* Define order of magnitude converter */ | ||
126 | #define NANO_IN_A_MICRO 1000 | ||
127 | |||
128 | #endif /* __ET131X_DEFS_H__ */ | ||