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