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 |
Francois Cami | e1f8e87 | 2008-10-15 22:01:59 -0700 | [diff] [blame^] | 6 | has been updated for 2.3.48 by Andrew Morton. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |
Matt LaPlante | 2fe0ae7 | 2006-10-03 22:50:39 +0200 | [diff] [blame] | 230 | or media=auto |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |
Matt LaPlante | fa00e7e | 2006-11-30 04:55:36 +0100 | [diff] [blame] | 251 | to partially initialise the hardware before trying to |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 | |
Matt LaPlante | 84eb8d0 | 2006-10-03 22:53:09 +0200 | [diff] [blame] | 587 | 2.) The driver cannot communicate with the adapter, reporting an "Adapter |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |
Matt LaPlante | 5d3f083 | 2006-11-30 05:21:10 +0100 | [diff] [blame] | 623 | A000-BFFF EGA Graphics Adapter |
| 624 | A000-C7FF VGA Graphics Adapter |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |
Paolo Ornati | 670e9f3 | 2006-10-03 22:57:56 +0200 | [diff] [blame] | 687 | latest drivers and technical publications. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 688 | |
| 689 | |
| 690 | 6.4 Current maintainer |
| 691 | |
| 692 | In February 2000 the maintenance of this driver was assumed by Andrew |
Francois Cami | e1f8e87 | 2008-10-15 22:01:59 -0700 | [diff] [blame^] | 693 | Morton. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 | |