| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 |  | 
 | 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 <andrewm@uow.edu.au> | 
 | 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 <kernel 2.3.48> | 
 | 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'  | 
 | 441 | (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 <akpm@zip.com.au> | 
 | 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 |  |