1 |
1275 |
phoenix |
|
2 |
|
|
NOTE
|
3 |
|
|
----
|
4 |
|
|
|
5 |
|
|
This document was contributed by Cirrus Logic for kernel 2.2.5. This version
|
6 |
|
|
has been updated for 2.3.48 by Andrew Morton
|
7 |
|
|
|
8 |
|
|
Cirrus make a copy of this driver available at their website, as
|
9 |
|
|
described below. In general, you should use the driver version which
|
10 |
|
|
comes with your Linux distribution.
|
11 |
|
|
|
12 |
|
|
|
13 |
|
|
|
14 |
|
|
CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS
|
15 |
|
|
Linux Network Interface Driver ver. 2.00
|
16 |
|
|
===============================================================================
|
17 |
|
|
|
18 |
|
|
|
19 |
|
|
TABLE OF CONTENTS
|
20 |
|
|
|
21 |
|
|
1.0 CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS
|
22 |
|
|
1.1 Product Overview
|
23 |
|
|
1.2 Driver Description
|
24 |
|
|
1.2.1 Driver Name
|
25 |
|
|
1.2.2 File in the Driver Package
|
26 |
|
|
1.3 System Requirements
|
27 |
|
|
1.4 Licensing Information
|
28 |
|
|
|
29 |
|
|
2.0 ADAPTER INSTALLATION and CONFIGURATION
|
30 |
|
|
2.1 CS8900-based Adapter Configuration
|
31 |
|
|
2.2 CS8920-based Adapter Configuration
|
32 |
|
|
|
33 |
|
|
3.0 LOADING THE DRIVER AS A MODULE
|
34 |
|
|
|
35 |
|
|
4.0 COMPILING THE DRIVER
|
36 |
|
|
4.1 Compiling the Driver as a Loadable Module
|
37 |
|
|
4.2 Compiling the driver to support memory mode
|
38 |
|
|
4.3 Compiling the driver to support Rx DMA
|
39 |
|
|
4.4 Compiling the Driver into the Kernel
|
40 |
|
|
|
41 |
|
|
5.0 TESTING AND TROUBLESHOOTING
|
42 |
|
|
5.1 Known Defects and Limitations
|
43 |
|
|
5.2 Testing the Adapter
|
44 |
|
|
5.2.1 Diagnostic Self-Test
|
45 |
|
|
5.2.2 Diagnostic Network Test
|
46 |
|
|
5.3 Using the Adapter's LEDs
|
47 |
|
|
5.4 Resolving I/O Conflicts
|
48 |
|
|
|
49 |
|
|
6.0 TECHNICAL SUPPORT
|
50 |
|
|
6.1 Contacting Cirrus Logic's Technical Support
|
51 |
|
|
6.2 Information Required Before Contacting Technical Support
|
52 |
|
|
6.3 Obtaining the Latest Driver Version
|
53 |
|
|
6.4 Current maintainer
|
54 |
|
|
6.5 Kernel boot parameters
|
55 |
|
|
|
56 |
|
|
|
57 |
|
|
1.0 CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS
|
58 |
|
|
===============================================================================
|
59 |
|
|
|
60 |
|
|
|
61 |
|
|
1.1 PRODUCT OVERVIEW
|
62 |
|
|
|
63 |
|
|
The CS8900-based ISA Ethernet Adapters from Cirrus Logic follow
|
64 |
|
|
IEEE 802.3 standards and support half or full-duplex operation in ISA bus
|
65 |
|
|
computers on 10 Mbps Ethernet networks. The adapters are designed for operation
|
66 |
|
|
in 16-bit ISA or EISA bus expansion slots and are available in
|
67 |
|
|
10BaseT-only or 3-media configurations (10BaseT, 10Base2, and AUI for 10Base-5
|
68 |
|
|
or fiber networks).
|
69 |
|
|
|
70 |
|
|
CS8920-based adapters are similar to the CS8900-based adapter with additional
|
71 |
|
|
features for Plug and Play (PnP) support and Wakeup Frame recognition. As
|
72 |
|
|
such, the configuration procedures differ somewhat between the two types of
|
73 |
|
|
adapters. Refer to the "Adapter Configuration" section for details on
|
74 |
|
|
configuring both types of adapters.
|
75 |
|
|
|
76 |
|
|
|
77 |
|
|
1.2 DRIVER DESCRIPTION
|
78 |
|
|
|
79 |
|
|
The CS8900/CS8920 Ethernet Adapter driver for Linux supports the Linux
|
80 |
|
|
v2.3.48 or greater kernel. It can be compiled directly into the kernel
|
81 |
|
|
or loaded at run-time as a device driver module.
|
82 |
|
|
|
83 |
|
|
1.2.1 Driver Name: cs89x0
|
84 |
|
|
|
85 |
|
|
1.2.2 Files in the Driver Archive:
|
86 |
|
|
|
87 |
|
|
The files in the driver at Cirrus' website include:
|
88 |
|
|
|
89 |
|
|
readme.txt - this file
|
90 |
|
|
build - batch file to compile cs89x0.c.
|
91 |
|
|
cs89x0.c - driver C code
|
92 |
|
|
cs89x0.h - driver header file
|
93 |
|
|
cs89x0.o - pre-compiled module (for v2.2.5 kernel)
|
94 |
|
|
config/Config.in - sample file to include cs89x0 driver in the kernel.
|
95 |
|
|
config/Makefile - sample file to include cs89x0 driver in the kernel.
|
96 |
|
|
config/Space.c - sample file to include cs89x0 driver in the kernel.
|
97 |
|
|
|
98 |
|
|
|
99 |
|
|
|
100 |
|
|
1.3 SYSTEM REQUIREMENTS
|
101 |
|
|
|
102 |
|
|
The following hardware is required:
|
103 |
|
|
|
104 |
|
|
* Cirrus Logic LAN (CS8900/20-based) Ethernet ISA Adapter
|
105 |
|
|
|
106 |
|
|
* IBM or IBM-compatible PC with:
|
107 |
|
|
* An 80386 or higher processor
|
108 |
|
|
* 16 bytes of contiguous IO space available between 210h - 370h
|
109 |
|
|
* One available IRQ (5,10,11,or 12 for the CS8900, 3-7,9-15 for CS8920).
|
110 |
|
|
|
111 |
|
|
* Appropriate cable (and connector for AUI, 10BASE-2) for your network
|
112 |
|
|
topology.
|
113 |
|
|
|
114 |
|
|
The following software is required:
|
115 |
|
|
|
116 |
|
|
* LINUX kernel version 2.3.48 or higher
|
117 |
|
|
|
118 |
|
|
* CS8900/20 Setup Utility (DOS-based)
|
119 |
|
|
|
120 |
|
|
* LINUX kernel sources for your kernel (if compiling into kernel)
|
121 |
|
|
|
122 |
|
|
* GNU Toolkit (gcc and make) v2.6 or above (if compiling into kernel
|
123 |
|
|
or a module)
|
124 |
|
|
|
125 |
|
|
|
126 |
|
|
|
127 |
|
|
1.4 LICENSING INFORMATION
|
128 |
|
|
|
129 |
|
|
This program is free software; you can redistribute it and/or modify it under
|
130 |
|
|
the terms of the GNU General Public License as published by the Free Software
|
131 |
|
|
Foundation, version 1.
|
132 |
|
|
|
133 |
|
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
134 |
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
135 |
|
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
136 |
|
|
more details.
|
137 |
|
|
|
138 |
|
|
For a full copy of the GNU General Public License, write to the Free Software
|
139 |
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
140 |
|
|
|
141 |
|
|
|
142 |
|
|
|
143 |
|
|
2.0 ADAPTER INSTALLATION and CONFIGURATION
|
144 |
|
|
===============================================================================
|
145 |
|
|
|
146 |
|
|
Both the CS8900 and CS8920-based adapters can be configured using parameters
|
147 |
|
|
stored in an on-board EEPROM. You must use the DOS-based CS8900/20 Setup
|
148 |
|
|
Utility if you want to change the adapter's configuration in EEPROM.
|
149 |
|
|
|
150 |
|
|
When loading the driver as a module, you can specify many of the adapter's
|
151 |
|
|
configuration parameters on the command-line to override the EEPROM's settings
|
152 |
|
|
or for interface configuration when an EEPROM is not used. (CS8920-based
|
153 |
|
|
adapters must use an EEPROM.) See Section 3.0 LOADING THE DRIVER AS A MODULE.
|
154 |
|
|
|
155 |
|
|
Since the CS8900/20 Setup Utility is a DOS-based application, you must install
|
156 |
|
|
and configure the adapter in a DOS-based system using the CS8900/20 Setup
|
157 |
|
|
Utility before installation in the target LINUX system. (Not required if
|
158 |
|
|
installing a CS8900-based adapter and the default configuration is acceptable.)
|
159 |
|
|
|
160 |
|
|
|
161 |
|
|
2.1 CS8900-BASED ADAPTER CONFIGURATION
|
162 |
|
|
|
163 |
|
|
CS8900-based adapters shipped from Cirrus Logic have been configured
|
164 |
|
|
with the following "default" settings:
|
165 |
|
|
|
166 |
|
|
Operation Mode: Memory Mode
|
167 |
|
|
IRQ: 10
|
168 |
|
|
Base I/O Address: 300
|
169 |
|
|
Memory Base Address: D0000
|
170 |
|
|
Optimization: DOS Client
|
171 |
|
|
Transmission Mode: Half-duplex
|
172 |
|
|
BootProm: None
|
173 |
|
|
Media Type: Autodetect (3-media cards) or
|
174 |
|
|
10BASE-T (10BASE-T only adapter)
|
175 |
|
|
|
176 |
|
|
You should only change the default configuration settings if conflicts with
|
177 |
|
|
another adapter exists. To change the adapter's configuration, run the
|
178 |
|
|
CS8900/20 Setup Utility.
|
179 |
|
|
|
180 |
|
|
|
181 |
|
|
2.2 CS8920-BASED ADAPTER CONFIGURATION
|
182 |
|
|
|
183 |
|
|
CS8920-based adapters are shipped from Cirrus Logic configured as Plug
|
184 |
|
|
and Play (PnP) enabled. However, since the cs89x0 driver does NOT
|
185 |
|
|
support PnP, you must install the CS8920 adapter in a DOS-based PC and
|
186 |
|
|
run the CS8900/20 Setup Utility to disable PnP and configure the
|
187 |
|
|
adapter before installation in the target Linux system. Failure to do
|
188 |
|
|
this will leave the adapter inactive and the driver will be unable to
|
189 |
|
|
communicate with the adapter.
|
190 |
|
|
|
191 |
|
|
|
192 |
|
|
****************************************************************
|
193 |
|
|
* CS8920-BASED ADAPTERS: *
|
194 |
|
|
* *
|
195 |
|
|
* CS8920-BASED ADAPTERS ARE PLUG and PLAY ENABLED BY DEFAULT. *
|
196 |
|
|
* THE CS89X0 DRIVER DOES NOT SUPPORT PnP. THEREFORE, YOU MUST *
|
197 |
|
|
* RUN THE CS8900/20 SETUP UTILITY TO DISABLE PnP SUPPORT AND *
|
198 |
|
|
* TO ACTIVATE THE ADAPTER. *
|
199 |
|
|
****************************************************************
|
200 |
|
|
|
201 |
|
|
|
202 |
|
|
|
203 |
|
|
|
204 |
|
|
3.0 LOADING THE DRIVER AS A MODULE
|
205 |
|
|
===============================================================================
|
206 |
|
|
|
207 |
|
|
If the driver is compiled as a loadable module, you can load the driver module
|
208 |
|
|
with the 'modprobe' command. Many of the adapter's configuration parameters can
|
209 |
|
|
be specified as command-line arguments to the load command. This facility
|
210 |
|
|
provides a means to override the EEPROM's settings or for interface
|
211 |
|
|
configuration when an EEPROM is not used.
|
212 |
|
|
|
213 |
|
|
Example:
|
214 |
|
|
|
215 |
|
|
insmod cs89x0.o io=0x200 irq=0xA media=aui
|
216 |
|
|
|
217 |
|
|
This example loads the module and configures the adapter to use an IO port base
|
218 |
|
|
address of 200h, interrupt 10, and use the AUI media connection. The following
|
219 |
|
|
configuration options are available on the command line:
|
220 |
|
|
|
221 |
|
|
* io=### - specify IO address (200h-360h)
|
222 |
|
|
* irq=## - specify interrupt level
|
223 |
|
|
* use_dma=1 - Enable DMA
|
224 |
|
|
* dma=# - specify dma channel (Driver is compiled to support
|
225 |
|
|
Rx DMA only)
|
226 |
|
|
* dmasize=# (16 or 64) - DMA size 16K or 64K. Default value is set to 16.
|
227 |
|
|
* media=rj45 - specify media type
|
228 |
|
|
or media=bnc
|
229 |
|
|
or media=aui
|
230 |
|
|
or medai=auto
|
231 |
|
|
* duplex=full - specify forced half/full/autonegotiate duplex
|
232 |
|
|
or duplex=half
|
233 |
|
|
or duplex=auto
|
234 |
|
|
* debug=# - debug level (only available if the driver was compiled
|
235 |
|
|
for debugging)
|
236 |
|
|
|
237 |
|
|
NOTES:
|
238 |
|
|
|
239 |
|
|
a) If an EEPROM is present, any specified command-line parameter
|
240 |
|
|
will override the corresponding configuration value stored in
|
241 |
|
|
EEPROM.
|
242 |
|
|
|
243 |
|
|
b) The "io" parameter must be specified on the command-line.
|
244 |
|
|
|
245 |
|
|
c) The driver's hardware probe routine is designed to avoid
|
246 |
|
|
writing to I/O space until it knows that there is a cs89x0
|
247 |
|
|
card at the written addresses. This could cause problems
|
248 |
|
|
with device probing. To avoid this behaviour, add one
|
249 |
|
|
to the `io=' module parameter. This doesn't actually change
|
250 |
|
|
the I/O address, but it is a flag to tell the driver
|
251 |
|
|
topartially initialise the hardware before trying to
|
252 |
|
|
identify the card. This could be dangerous if you are
|
253 |
|
|
not sure that there is a cs89x0 card at the provided address.
|
254 |
|
|
|
255 |
|
|
For example, to scan for an adapter located at IO base 0x300,
|
256 |
|
|
specify an IO address of 0x301.
|
257 |
|
|
|
258 |
|
|
d) The "duplex=auto" parameter is only supported for the CS8920.
|
259 |
|
|
|
260 |
|
|
e) The minimum command-line configuration required if an EEPROM is
|
261 |
|
|
not present is:
|
262 |
|
|
|
263 |
|
|
io
|
264 |
|
|
irq
|
265 |
|
|
media type (no autodetect)
|
266 |
|
|
|
267 |
|
|
f) The following additional parameters are CS89XX defaults (values
|
268 |
|
|
used with no EEPROM or command-line argument).
|
269 |
|
|
|
270 |
|
|
* DMA Burst = enabled
|
271 |
|
|
* IOCHRDY Enabled = enabled
|
272 |
|
|
* UseSA = enabled
|
273 |
|
|
* CS8900 defaults to half-duplex if not specified on command-line
|
274 |
|
|
* CS8920 defaults to autoneg if not specified on command-line
|
275 |
|
|
* Use reset defaults for other config parameters
|
276 |
|
|
* dma_mode = 0
|
277 |
|
|
|
278 |
|
|
g) You can use ifconfig to set the adapter's Ethernet address.
|
279 |
|
|
|
280 |
|
|
h) Many Linux distributions use the 'modprobe' command to load
|
281 |
|
|
modules. This program uses the '/etc/conf.modules' file to
|
282 |
|
|
determine configuration information which is passed to a driver
|
283 |
|
|
module when it is loaded. All the configuration options which are
|
284 |
|
|
described above may be placed within /etc/conf.modules.
|
285 |
|
|
|
286 |
|
|
For example:
|
287 |
|
|
|
288 |
|
|
> cat /etc/conf.modules
|
289 |
|
|
...
|
290 |
|
|
alias eth0 cs89x0
|
291 |
|
|
options cs89x0 io=0x0200 dma=5 use_dma=1
|
292 |
|
|
...
|
293 |
|
|
|
294 |
|
|
In this example we are telling the module system that the
|
295 |
|
|
ethernet driver for this machine should use the cs89x0 driver. We
|
296 |
|
|
are asking 'modprobe' to pass the 'io', 'dma' and 'use_dma'
|
297 |
|
|
arguments to the driver when it is loaded.
|
298 |
|
|
|
299 |
|
|
i) Cirrus recommend that the cs89x0 use the ISA DMA channels 5, 6 or
|
300 |
|
|
7. You will probably find that other DMA channels will not work.
|
301 |
|
|
|
302 |
|
|
j) The cs89x0 supports DMA for receiving only. DMA mode is
|
303 |
|
|
significantly more efficient. Flooding a 400 MHz Celeron machine
|
304 |
|
|
with large ping packets consumes 82% of its CPU capacity in non-DMA
|
305 |
|
|
mode. With DMA this is reduced to 45%.
|
306 |
|
|
|
307 |
|
|
k) If your Linux kernel was compiled with inbuilt plug-and-play
|
308 |
|
|
support you will be able to find information about the cs89x0 card
|
309 |
|
|
with the command
|
310 |
|
|
|
311 |
|
|
cat /proc/isapnp
|
312 |
|
|
|
313 |
|
|
l) If during DMA operation you find erratic behavior or network data
|
314 |
|
|
corruption you should use your PC's BIOS to slow the EISA bus clock.
|
315 |
|
|
|
316 |
|
|
m) If the cs89x0 driver is compiled directly into the kernel
|
317 |
|
|
(non-modular) then its I/O address is automatically determined by
|
318 |
|
|
ISA bus probing. The IRQ number, media options, etc are determined
|
319 |
|
|
from the card's EEPROM.
|
320 |
|
|
|
321 |
|
|
n) If the cs89x0 driver is compiled directly into the kernel, DMA
|
322 |
|
|
mode may be selected by providing the kernel with a boot option
|
323 |
|
|
'cs89x0_dma=N' where 'N' is the desired DMA channel number (5, 6 or 7).
|
324 |
|
|
|
325 |
|
|
Kernel boot options may be provided on the LILO command line:
|
326 |
|
|
|
327 |
|
|
LILO boot: linux cs89x0_dma=5
|
328 |
|
|
|
329 |
|
|
or they may be placed in /etc/lilo.conf:
|
330 |
|
|
|
331 |
|
|
image=/boot/bzImage-2.3.48
|
332 |
|
|
append="cs89x0_dma=5"
|
333 |
|
|
label=linux
|
334 |
|
|
root=/dev/hda5
|
335 |
|
|
read-only
|
336 |
|
|
|
337 |
|
|
The DMA Rx buffer size is hardwired to 16 kbytes in this mode.
|
338 |
|
|
(64k mode is not available).
|
339 |
|
|
|
340 |
|
|
|
341 |
|
|
4.0 COMPILING THE DRIVER
|
342 |
|
|
===============================================================================
|
343 |
|
|
|
344 |
|
|
The cs89x0 driver can be compiled directly into the kernel or compiled into
|
345 |
|
|
a loadable device driver module.
|
346 |
|
|
|
347 |
|
|
|
348 |
|
|
4.1 COMPILING THE DRIVER AS A LOADABLE MODULE
|
349 |
|
|
|
350 |
|
|
To compile the driver into a loadable module, use the following command
|
351 |
|
|
(single command line, without quotes):
|
352 |
|
|
|
353 |
|
|
"gcc -D__KERNEL__ -I/usr/src/linux/include -I/usr/src/linux/net/inet -Wall
|
354 |
|
|
-Wstrict-prototypes -O2 -fomit-frame-pointer -DMODULE -DCONFIG_MODVERSIONS
|
355 |
|
|
-c cs89x0.c"
|
356 |
|
|
|
357 |
|
|
4.2 COMPILING THE DRIVER TO SUPPORT MEMORY MODE
|
358 |
|
|
|
359 |
|
|
Support for memory mode was not carried over into the 2.3 series kernels.
|
360 |
|
|
|
361 |
|
|
4.3 COMPILING THE DRIVER TO SUPPORT Rx DMA
|
362 |
|
|
|
363 |
|
|
The compile-time optionality for DMA was removed in the 2.3 kernel
|
364 |
|
|
series. DMA support is now unconditionally part of the driver. It is
|
365 |
|
|
enabled by the 'use_dma=1' module option.
|
366 |
|
|
|
367 |
|
|
4.4 COMPILING THE DRIVER INTO THE KERNEL
|
368 |
|
|
|
369 |
|
|
If your Linux distribution already has support for the cs89x0 driver
|
370 |
|
|
then simply copy the source file to the /usr/src/linux/drivers/net
|
371 |
|
|
directory to replace the original ones and run the make utility to
|
372 |
|
|
rebuild the kernel. See Step 3 for rebuilding the kernel.
|
373 |
|
|
|
374 |
|
|
If your Linux does not include the cs89x0 driver, you need to edit three
|
375 |
|
|
configuration files, copy the source file to the /usr/src/linux/drivers/net
|
376 |
|
|
directory, and then run the make utility to rebuild the kernel.
|
377 |
|
|
|
378 |
|
|
1. Edit the following configuration files by adding the statements as
|
379 |
|
|
indicated. (When possible, try to locate the added text to the section of the
|
380 |
|
|
file containing similar statements).
|
381 |
|
|
|
382 |
|
|
|
383 |
|
|
a.) In /usr/src/linux/drivers/net/Config.in, add:
|
384 |
|
|
|
385 |
|
|
tristate 'CS89x0 support' CONFIG_CS89x0
|
386 |
|
|
|
387 |
|
|
Example:
|
388 |
|
|
|
389 |
|
|
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
|
390 |
|
|
tristate 'ICL EtherTeam 16i/32 support' CONFIG_ETH16I
|
391 |
|
|
fi
|
392 |
|
|
|
393 |
|
|
tristate 'CS89x0 support' CONFIG_CS89x0
|
394 |
|
|
|
395 |
|
|
tristate 'NE2000/NE1000 support' CONFIG_NE2000
|
396 |
|
|
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
|
397 |
|
|
tristate 'NI5210 support' CONFIG_NI52
|
398 |
|
|
|
399 |
|
|
|
400 |
|
|
b.) In /usr/src/linux/drivers/net/Makefile, add the following lines:
|
401 |
|
|
|
402 |
|
|
ifeq ($(CONFIG_CS89x0),y)
|
403 |
|
|
L_OBJS += cs89x0.o
|
404 |
|
|
else
|
405 |
|
|
ifeq ($(CONFIG_CS89x0),m)
|
406 |
|
|
M_OBJS += cs89x0.o
|
407 |
|
|
endif
|
408 |
|
|
endif
|
409 |
|
|
|
410 |
|
|
|
411 |
|
|
c.) In /linux/drivers/net/Space.c file, add the line:
|
412 |
|
|
|
413 |
|
|
extern int cs89x0_probe(struct device *dev);
|
414 |
|
|
|
415 |
|
|
|
416 |
|
|
Example:
|
417 |
|
|
|
418 |
|
|
extern int ultra_probe(struct device *dev);
|
419 |
|
|
extern int wd_probe(struct device *dev);
|
420 |
|
|
extern int el2_probe(struct device *dev);
|
421 |
|
|
|
422 |
|
|
extern int cs89x0_probe(struct device *dev);
|
423 |
|
|
|
424 |
|
|
extern int ne_probe(struct device *dev);
|
425 |
|
|
extern int hp_probe(struct device *dev);
|
426 |
|
|
extern int hp_plus_probe(struct device *dev);
|
427 |
|
|
|
428 |
|
|
|
429 |
|
|
Also add:
|
430 |
|
|
|
431 |
|
|
#ifdef CONFIG_CS89x0
|
432 |
|
|
{ cs89x0_probe,0 },
|
433 |
|
|
#endif
|
434 |
|
|
|
435 |
|
|
|
436 |
|
|
2.) Copy the driver source files (cs89x0.c and cs89x0.h)
|
437 |
|
|
into the /usr/src/linux/drivers/net directory.
|
438 |
|
|
|
439 |
|
|
|
440 |
|
|
3.) Go to /usr/src/linux directory and run 'make config' followed by 'make dep'
|
441 |
|
|
and finally 'make' (or make bzImage) to rebuild the kernel.
|
442 |
|
|
|
443 |
|
|
4.) Use the DOS 'setup' utility to disable plug and play on the NIC.
|
444 |
|
|
|
445 |
|
|
|
446 |
|
|
5.0 TESTING AND TROUBLESHOOTING
|
447 |
|
|
===============================================================================
|
448 |
|
|
|
449 |
|
|
5.1 KNOWN DEFECTS and LIMITATIONS
|
450 |
|
|
|
451 |
|
|
Refer to the RELEASE.TXT file distributed as part of this archive for a list of
|
452 |
|
|
known defects, driver limitations, and work arounds.
|
453 |
|
|
|
454 |
|
|
|
455 |
|
|
5.2 TESTING THE ADAPTER
|
456 |
|
|
|
457 |
|
|
Once the adapter has been installed and configured, the diagnostic option of
|
458 |
|
|
the CS8900/20 Setup Utility can be used to test the functionality of the
|
459 |
|
|
adapter and its network connection. Use the diagnostics 'Self Test' option to
|
460 |
|
|
test the functionality of the adapter with the hardware configuration you have
|
461 |
|
|
assigned. You can use the diagnostics 'Network Test' to test the ability of the
|
462 |
|
|
adapter to communicate across the Ethernet with another PC equipped with a
|
463 |
|
|
CS8900/20-based adapter card (it must also be running the CS8900/20 Setup
|
464 |
|
|
Utility).
|
465 |
|
|
|
466 |
|
|
NOTE: The Setup Utility's diagnostics are designed to run in a
|
467 |
|
|
DOS-only operating system environment. DO NOT run the diagnostics
|
468 |
|
|
from a DOS or command prompt session under Windows 95, Windows NT,
|
469 |
|
|
OS/2, or other operating system.
|
470 |
|
|
|
471 |
|
|
To run the diagnostics tests on the CS8900/20 adapter:
|
472 |
|
|
|
473 |
|
|
1.) Boot DOS on the PC and start the CS8900/20 Setup Utility.
|
474 |
|
|
|
475 |
|
|
2.) The adapter's current configuration is displayed. Hit the ENTER key to
|
476 |
|
|
get to the main menu.
|
477 |
|
|
|
478 |
|
|
4.) Select 'Diagnostics' (ALT-G) from the main menu.
|
479 |
|
|
* Select 'Self-Test' to test the adapter's basic functionality.
|
480 |
|
|
* Select 'Network Test' to test the network connection and cabling.
|
481 |
|
|
|
482 |
|
|
|
483 |
|
|
5.2.1 DIAGNOSTIC SELF-TEST
|
484 |
|
|
|
485 |
|
|
The diagnostic self-test checks the adapter's basic functionality as well as
|
486 |
|
|
its ability to communicate across the ISA bus based on the system resources
|
487 |
|
|
assigned during hardware configuration. The following tests are performed:
|
488 |
|
|
|
489 |
|
|
* IO Register Read/Write Test
|
490 |
|
|
The IO Register Read/Write test insures that the CS8900/20 can be
|
491 |
|
|
accessed in IO mode, and that the IO base address is correct.
|
492 |
|
|
|
493 |
|
|
* Shared Memory Test
|
494 |
|
|
The Shared Memory test insures the CS8900/20 can be accessed in memory
|
495 |
|
|
mode and that the range of memory addresses assigned does not conflict
|
496 |
|
|
with other devices in the system.
|
497 |
|
|
|
498 |
|
|
* Interrupt Test
|
499 |
|
|
The Interrupt test insures there are no conflicts with the assigned IRQ
|
500 |
|
|
signal.
|
501 |
|
|
|
502 |
|
|
* EEPROM Test
|
503 |
|
|
The EEPROM test insures the EEPROM can be read.
|
504 |
|
|
|
505 |
|
|
* Chip RAM Test
|
506 |
|
|
The Chip RAM test insures the 4K of memory internal to the CS8900/20 is
|
507 |
|
|
working properly.
|
508 |
|
|
|
509 |
|
|
* Internal Loop-back Test
|
510 |
|
|
The Internal Loop Back test insures the adapter's transmitter and
|
511 |
|
|
receiver are operating properly. If this test fails, make sure the
|
512 |
|
|
adapter's cable is connected to the network (check for LED activity for
|
513 |
|
|
example).
|
514 |
|
|
|
515 |
|
|
* Boot PROM Test
|
516 |
|
|
The Boot PROM test insures the Boot PROM is present, and can be read.
|
517 |
|
|
Failure indicates the Boot PROM was not successfully read due to a
|
518 |
|
|
hardware problem or due to a conflicts on the Boot PROM address
|
519 |
|
|
assignment. (Test only applies if the adapter is configured to use the
|
520 |
|
|
Boot PROM option.)
|
521 |
|
|
|
522 |
|
|
Failure of a test item indicates a possible system resource conflict with
|
523 |
|
|
another device on the ISA bus. In this case, you should use the Manual Setup
|
524 |
|
|
option to reconfigure the adapter by selecting a different value for the system
|
525 |
|
|
resource that failed.
|
526 |
|
|
|
527 |
|
|
|
528 |
|
|
5.2.2 DIAGNOSTIC NETWORK TEST
|
529 |
|
|
|
530 |
|
|
The Diagnostic Network Test verifies a working network connection by
|
531 |
|
|
transferring data between two CS8900/20 adapters installed in different PCs
|
532 |
|
|
on the same network. (Note: the diagnostic network test should not be run
|
533 |
|
|
between two nodes across a router.)
|
534 |
|
|
|
535 |
|
|
This test requires that each of the two PCs have a CS8900/20-based adapter
|
536 |
|
|
installed and have the CS8900/20 Setup Utility running. The first PC is
|
537 |
|
|
configured as a Responder and the other PC is configured as an Initiator.
|
538 |
|
|
Once the Initiator is started, it sends data frames to the Responder which
|
539 |
|
|
returns the frames to the Initiator.
|
540 |
|
|
|
541 |
|
|
The total number of frames received and transmitted are displayed on the
|
542 |
|
|
Initiator's display, along with a count of the number of frames received and
|
543 |
|
|
transmitted OK or in error. The test can be terminated anytime by the user at
|
544 |
|
|
either PC.
|
545 |
|
|
|
546 |
|
|
To setup the Diagnostic Network Test:
|
547 |
|
|
|
548 |
|
|
1.) Select a PC with a CS8900/20-based adapter and a known working network
|
549 |
|
|
connection to act as the Responder. Run the CS8900/20 Setup Utility
|
550 |
|
|
and select 'Diagnostics -> Network Test -> Responder' from the main
|
551 |
|
|
menu. Hit ENTER to start the Responder.
|
552 |
|
|
|
553 |
|
|
2.) Return to the PC with the CS8900/20-based adapter you want to test and
|
554 |
|
|
start the CS8900/20 Setup Utility.
|
555 |
|
|
|
556 |
|
|
3.) From the main menu, Select 'Diagnostic -> Network Test -> Initiator'.
|
557 |
|
|
Hit ENTER to start the test.
|
558 |
|
|
|
559 |
|
|
You may stop the test on the Initiator at any time while allowing the Responder
|
560 |
|
|
to continue running. In this manner, you can move to additional PCs and test
|
561 |
|
|
them by starting the Initiator on another PC without having to stop/start the
|
562 |
|
|
Responder.
|
563 |
|
|
|
564 |
|
|
|
565 |
|
|
|
566 |
|
|
5.3 USING THE ADAPTER'S LEDs
|
567 |
|
|
|
568 |
|
|
The 2 and 3-media adapters have two LEDs visible on the back end of the board
|
569 |
|
|
located near the 10Base-T connector.
|
570 |
|
|
|
571 |
|
|
Link Integrity LED: A "steady" ON of the green LED indicates a valid 10Base-T
|
572 |
|
|
connection. (Only applies to 10Base-T. The green LED has no significance for
|
573 |
|
|
a 10Base-2 or AUI connection.)
|
574 |
|
|
|
575 |
|
|
TX/RX LED: The yellow LED lights briefly each time the adapter transmits or
|
576 |
|
|
receives data. (The yellow LED will appear to "flicker" on a typical network.)
|
577 |
|
|
|
578 |
|
|
|
579 |
|
|
5.4 RESOLVING I/O CONFLICTS
|
580 |
|
|
|
581 |
|
|
An IO conflict occurs when two or more adapter use the same ISA resource (IO
|
582 |
|
|
address, memory address or IRQ). You can usually detect an IO conflict in one
|
583 |
|
|
of four ways after installing and or configuring the CS8900/20-based adapter:
|
584 |
|
|
|
585 |
|
|
1.) The system does not boot properly (or at all).
|
586 |
|
|
|
587 |
|
|
2.) The driver can not communicate with the adapter, reporting an "Adapter
|
588 |
|
|
not found" error message.
|
589 |
|
|
|
590 |
|
|
3.) You cannot connect to the network or the driver will not load.
|
591 |
|
|
|
592 |
|
|
4.) If you have configured the adapter to run in memory mode but the driver
|
593 |
|
|
reports it is using IO mode when loading, this is an indication of a
|
594 |
|
|
memory address conflict.
|
595 |
|
|
|
596 |
|
|
If an IO conflict occurs, run the CS8900/20 Setup Utility and perform a
|
597 |
|
|
diagnostic self-test. Normally, the ISA resource in conflict will fail the
|
598 |
|
|
self-test. If so, reconfigure the adapter selecting another choice for the
|
599 |
|
|
resource in conflict. Run the diagnostics again to check for further IO
|
600 |
|
|
conflicts.
|
601 |
|
|
|
602 |
|
|
In some cases, such as when the PC will not boot, it may be necessary to remove
|
603 |
|
|
the adapter and reconfigure it by installing it in another PC to run the
|
604 |
|
|
CS8900/20 Setup Utility. Once reinstalled in the target system, run the
|
605 |
|
|
diagnostics self-test to ensure the new configuration is free of conflicts
|
606 |
|
|
before loading the driver again.
|
607 |
|
|
|
608 |
|
|
When manually configuring the adapter, keep in mind the typical ISA system
|
609 |
|
|
resource usage as indicated in the tables below.
|
610 |
|
|
|
611 |
|
|
I/O Address Device IRQ Device
|
612 |
|
|
----------- -------- --- --------
|
613 |
|
|
200-20F Game I/O adapter 3 COM2, Bus Mouse
|
614 |
|
|
230-23F Bus Mouse 4 COM1
|
615 |
|
|
270-27F LPT3: third parallel port 5 LPT2
|
616 |
|
|
2F0-2FF COM2: second serial port 6 Floppy Disk controller
|
617 |
|
|
320-32F Fixed disk controller 7 LPT1
|
618 |
|
|
8 Real-time Clock
|
619 |
|
|
9 EGA/VGA display adapter
|
620 |
|
|
12 Mouse (PS/2)
|
621 |
|
|
Memory Address Device 13 Math Coprocessor
|
622 |
|
|
-------------- --------------------- 14 Hard Disk controller
|
623 |
|
|
A000-BFFF EGA Graphics Adpater
|
624 |
|
|
A000-C7FF VGA Graphics Adpater
|
625 |
|
|
B000-BFFF Mono Graphics Adapter
|
626 |
|
|
B800-BFFF Color Graphics Adapter
|
627 |
|
|
E000-FFFF AT BIOS
|
628 |
|
|
|
629 |
|
|
|
630 |
|
|
|
631 |
|
|
|
632 |
|
|
6.0 TECHNICAL SUPPORT
|
633 |
|
|
===============================================================================
|
634 |
|
|
|
635 |
|
|
6.1 CONTACTING CIRRUS LOGIC'S TECHNICAL SUPPORT
|
636 |
|
|
|
637 |
|
|
Cirrus Logic's CS89XX Technical Application Support can be reached at:
|
638 |
|
|
|
639 |
|
|
Telephone :(800) 888-5016 (from inside U.S. and Canada)
|
640 |
|
|
:(512) 442-7555 (from outside the U.S. and Canada)
|
641 |
|
|
Fax :(512) 912-3871
|
642 |
|
|
Email :ethernet@crystal.cirrus.com
|
643 |
|
|
WWW :http://www.cirrus.com
|
644 |
|
|
|
645 |
|
|
|
646 |
|
|
6.2 INFORMATION REQUIRED BEFORE CONTACTING TECHNICAL SUPPORT
|
647 |
|
|
|
648 |
|
|
Before contacting Cirrus Logic for technical support, be prepared to provide as
|
649 |
|
|
Much of the following information as possible.
|
650 |
|
|
|
651 |
|
|
1.) Adapter type (CRD8900, CDB8900, CDB8920, etc.)
|
652 |
|
|
|
653 |
|
|
2.) Adapter configuration
|
654 |
|
|
|
655 |
|
|
* IO Base, Memory Base, IO or memory mode enabled, IRQ, DMA channel
|
656 |
|
|
* Plug and Play enabled/disabled (CS8920-based adapters only)
|
657 |
|
|
* Configured for media auto-detect or specific media type (which type).
|
658 |
|
|
|
659 |
|
|
3.) PC System's Configuration
|
660 |
|
|
|
661 |
|
|
* Plug and Play system (yes/no)
|
662 |
|
|
* BIOS (make and version)
|
663 |
|
|
* System make and model
|
664 |
|
|
* CPU (type and speed)
|
665 |
|
|
* System RAM
|
666 |
|
|
* SCSI Adapter
|
667 |
|
|
|
668 |
|
|
4.) Software
|
669 |
|
|
|
670 |
|
|
* CS89XX driver and version
|
671 |
|
|
* Your network operating system and version
|
672 |
|
|
* Your system's OS version
|
673 |
|
|
* Version of all protocol support files
|
674 |
|
|
|
675 |
|
|
5.) Any Error Message displayed.
|
676 |
|
|
|
677 |
|
|
|
678 |
|
|
|
679 |
|
|
6.3 OBTAINING THE LATEST DRIVER VERSION
|
680 |
|
|
|
681 |
|
|
You can obtain the latest CS89XX drivers and support software from Cirrus Logic's
|
682 |
|
|
Web site. You can also contact Cirrus Logic's Technical Support (email:
|
683 |
|
|
ethernet@crystal.cirrus.com) and request that you be registered for automatic
|
684 |
|
|
software-update notification.
|
685 |
|
|
|
686 |
|
|
Cirrus Logic maintains a web page at http://www.cirrus.com with the
|
687 |
|
|
the latest drivers and technical publications.
|
688 |
|
|
|
689 |
|
|
|
690 |
|
|
6.4 Current maintainer
|
691 |
|
|
|
692 |
|
|
In February 2000 the maintenance of this driver was assumed by Andrew
|
693 |
|
|
Morton
|
694 |
|
|
|
695 |
|
|
6.5 Kernel module parameters
|
696 |
|
|
|
697 |
|
|
For use in embedded environments with no cs89x0 EEPROM, the kernel boot
|
698 |
|
|
parameter `cs89x0_media=' has been implemented. Usage is:
|
699 |
|
|
|
700 |
|
|
cs89x0_media=rj45 or
|
701 |
|
|
cs89x0_media=aui or
|
702 |
|
|
cs89x0_media=bnc
|
703 |
|
|
|