5 * Include file with structures for Gigabit Ethernet
\r
6 * device driver for Network Interface Cards (NICs) utilizing the
\r
7 * Tamarack Microelectronics Inc. IPG Gigabit or Triple Speed
\r
8 * Ethernet Media Access Controller.
\r
11 * Sundance Technology, Inc.
\r
12 * 1485 Saratoga Avenue
\r
14 * San Jose, CA 95129
\r
16 * www.sundanceti.com
\r
17 * craig_rich@sundanceti.com
\r
19 * Rev Date Description
\r
20 * --------------------------------------------------------------
\r
21 * 0.1 3/30/01 New file created from original ipg.h
\r
23 * 0.2 5/22/01 Added PCI_DEVICE_ID_TAMARACK_TC9020_9021_ALT
\r
24 * to nics_supported[] array.
\r
27 /* IPG Ethernet device structure, used for removing module. */
\r
28 IPG_DEVICE_TYPE *root_ipg_ethernet_device = NULL;
\r
30 /* Transmit Frame Descriptor. The IPG supports 15 fragments,
\r
31 * however Linux requires only a single fragment. Note, each
\r
32 * TFD field is 64 bits wide.
\r
41 /* Receive Frame Descriptor. Note, each RFD field is 64 bits wide.
\r
53 dma_addr_t dmahandle;
\r
62 struct sk_buff *skb;
\r
64 /* Structure of IPG NIC specific data. */
\r
65 struct ipg_nic_private
\r
67 struct TFD *TFDList;
\r
68 struct RFD *RFDList;
\r
70 dma_addr_t TFDListDMAhandle;
\r
71 dma_addr_t RFDListDMAhandle;
\r
72 struct ipg_dmabuff TxBuffDMAhandle[IPG_TFDLIST_LENGTH];
\r
73 struct ipg_dmabuff RxBuffDMAhandle[IPG_RFDLIST_LENGTH];
\r
75 struct sk_buff *TxBuff[IPG_TFDLIST_LENGTH];
\r
76 struct sk_buff *RxBuff[IPG_RFDLIST_LENGTH];
\r
77 u16 CurrentTxFrameID;
\r
79 int LastFreedTxBuff;
\r
81 // Add by Grace 2005/05/19
\r
83 struct SJumbo Jumbo;
\r
85 int LastRestoredRxBuff;
\r
87 struct pci_dev *ipg_pci_device;
\r
88 IPG_STATS_TYPE stats;
\r
89 IPG_DEVICE_TYPE *next_ipg_ethernet_device;
\r
93 /*Jesse20040128EEPROM_VALUE */
\r
95 u16 StationAddr0; /* Station Address in EEPROM Reg 0x10 */
\r
96 u16 StationAddr1; /* Station Address in EEPROM Reg 0x11 */
\r
97 u16 StationAddr2; /* Station Address in EEPROM Reg 0x12 */
\r
100 int TFDunavailCount;
\r
101 int RFDlistendCount;
\r
102 int RFDListCheckedCount;
\r
103 int EmptyRFDListCount;
\r
114 struct nic_id nics_supported[] =
\r
116 {"IC PLUS IP1000 1000/100/10 based NIC",
\r
117 PCI_VENDOR_ID_ICPLUS,
\r
118 PCI_DEVICE_ID_IP1000},
\r
119 {"Sundance Technology ST2021 based NIC",
\r
120 PCI_VENDOR_ID_SUNDANCE,
\r
121 PCI_DEVICE_ID_SUNDANCE_ST2021},
\r
122 {"Tamarack Microelectronics TC9020/9021 based NIC",
\r
123 PCI_VENDOR_ID_SUNDANCE,
\r
124 PCI_DEVICE_ID_TAMARACK_TC9020_9021},
\r
125 {"Tamarack Microelectronics TC9020/9021 based NIC",
\r
126 PCI_VENDOR_ID_SUNDANCE,
\r
127 PCI_DEVICE_ID_TAMARACK_TC9020_9021_ALT},
\r
129 PCI_VENDOR_ID_DLINK,
\r
130 PCI_DEVICE_ID_DLINK_1002},
\r
131 {"D-Link NIC IP1000A",
\r
132 PCI_VENDOR_ID_DLINK,
\r
133 PCI_DEVICE_ID_DLINK_IP1000A},
\r
138 #ifdef IPG_LINUX2_4
\r
139 struct pci_device_id pci_devices_supported[] =
\r
141 {PCI_VENDOR_ID_ICPLUS,
\r
142 PCI_DEVICE_ID_IP1000,
\r
149 {PCI_VENDOR_ID_SUNDANCE,
\r
150 PCI_DEVICE_ID_SUNDANCE_ST2021,
\r
157 {PCI_VENDOR_ID_SUNDANCE,
\r
158 PCI_DEVICE_ID_TAMARACK_TC9020_9021,
\r
165 {PCI_VENDOR_ID_DLINK,
\r
166 PCI_DEVICE_ID_DLINK_1002,
\r
176 /* end ipg_structs.h */
\r