linux/Documentation/networking/cs89x0.txt
<<
>>
Prefs
   1
   2NOTE
   3----
   4
   5This document was contributed by Cirrus Logic for kernel 2.2.5.  This version
   6has been updated for 2.3.48 by Andrew Morton.
   7
   8Cirrus make a copy of this driver available at their website, as
   9described below.  In general, you should use the driver version which
  10comes with your Linux distribution.
  11
  12
  13
  14CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS
  15Linux Network Interface Driver ver. 2.00 <kernel 2.3.48>
  16===============================================================================
  17 
  18
  19TABLE OF CONTENTS
  20
  211.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
  292.0 ADAPTER INSTALLATION and CONFIGURATION
  30    2.1 CS8900-based Adapter Configuration
  31    2.2 CS8920-based Adapter Configuration 
  32
  333.0 LOADING THE DRIVER AS A MODULE
  34
  354.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
  415.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
  496.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
  571.0 CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS
  58===============================================================================
  59
  60
  611.1 PRODUCT OVERVIEW
  62
  63The CS8900-based ISA Ethernet Adapters from Cirrus Logic follow 
  64IEEE 802.3 standards and support half or full-duplex operation in ISA bus 
  65computers on 10 Mbps Ethernet networks.  The adapters are designed for operation 
  66in 16-bit ISA or EISA bus expansion slots and are available in 
  6710BaseT-only or 3-media configurations (10BaseT, 10Base2, and AUI for 10Base-5 
  68or fiber networks).  
  69
  70CS8920-based adapters are similar to the CS8900-based adapter with additional 
  71features for Plug and Play (PnP) support and Wakeup Frame recognition.  As 
  72such, the configuration procedures differ somewhat between the two types of 
  73adapters.  Refer to the "Adapter Configuration" section for details on 
  74configuring both types of adapters.
  75
  76
  771.2 DRIVER DESCRIPTION
  78
  79The CS8900/CS8920 Ethernet Adapter driver for Linux supports the Linux
  80v2.3.48 or greater kernel.  It can be compiled directly into the kernel
  81or loaded at run-time as a device driver module.
  82
  831.2.1 Driver Name: cs89x0
  84
  851.2.2 Files in the Driver Archive:
  86
  87The 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
 1001.3 SYSTEM REQUIREMENTS
 101
 102The 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
 114The 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
 1271.4 LICENSING INFORMATION
 128
 129This program is free software; you can redistribute it and/or modify it under
 130the terms of the GNU General Public License as published by the Free Software
 131Foundation, version 1.
 132
 133This program is distributed in the hope that it will be useful, but WITHOUT
 134ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
 135FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
 136more details.
 137
 138For a full copy of the GNU General Public License, write to the Free Software
 139Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 140
 141
 142
 1432.0 ADAPTER INSTALLATION and CONFIGURATION
 144===============================================================================
 145
 146Both the CS8900 and CS8920-based adapters can be configured using parameters 
 147stored in an on-board EEPROM. You must use the DOS-based CS8900/20 Setup 
 148Utility if you want to change the adapter's configuration in EEPROM.  
 149
 150When loading the driver as a module, you can specify many of the adapter's 
 151configuration parameters on the command-line to override the EEPROM's settings 
 152or for interface configuration when an EEPROM is not used. (CS8920-based 
 153adapters must use an EEPROM.) See Section 3.0 LOADING THE DRIVER AS A MODULE.
 154
 155Since the CS8900/20 Setup Utility is a DOS-based application, you must install 
 156and configure the adapter in a DOS-based system using the CS8900/20 Setup 
 157Utility before installation in the target LINUX system.  (Not required if 
 158installing a CS8900-based adapter and the default configuration is acceptable.)
 159     
 160
 1612.1 CS8900-BASED ADAPTER CONFIGURATION
 162
 163CS8900-based adapters shipped from Cirrus Logic have been configured 
 164with 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
 176You should only change the default configuration settings if conflicts with 
 177another adapter exists. To change the adapter's configuration, run the 
 178CS8900/20 Setup Utility. 
 179
 180
 1812.2 CS8920-BASED ADAPTER CONFIGURATION
 182
 183CS8920-based adapters are shipped from Cirrus Logic configured as Plug
 184and Play (PnP) enabled.  However, since the cs89x0 driver does NOT
 185support PnP, you must install the CS8920 adapter in a DOS-based PC and
 186run the CS8900/20 Setup Utility to disable PnP and configure the
 187adapter before installation in the target Linux system.  Failure to do
 188this will leave the adapter inactive and the driver will be unable to
 189communicate 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
 2043.0 LOADING THE DRIVER AS A MODULE
 205===============================================================================
 206
 207If the driver is compiled as a loadable module, you can load the driver module
 208with the 'modprobe' command.  Many of the adapter's configuration parameters can 
 209be specified as command-line arguments to the load command.  This facility 
 210provides a means to override the EEPROM's settings or for interface 
 211configuration when an EEPROM is not used.
 212
 213Example:
 214
 215    insmod cs89x0.o io=0x200 irq=0xA media=aui
 216
 217This example loads the module and configures the adapter to use an IO port base
 218address of 200h, interrupt 10, and use the AUI media connection.  The following
 219configuration 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 media=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
 237NOTES:
 238
 239a) If an EEPROM is present, any specified command-line parameter
 240   will override the corresponding configuration value stored in
 241   EEPROM.
 242
 243b) The "io" parameter must be specified on the command-line.  
 244
 245c) 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   to partially 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
 258d) The "duplex=auto" parameter is only supported for the CS8920.
 259
 260e) 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
 267f) 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
 278g) You can use ifconfig to set the adapter's Ethernet address.
 279
 280h) 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
 299i) 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
 302j) 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
 307k) 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
 313l) 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
 316m) 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
 321n) 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
 3414.0 COMPILING THE DRIVER
 342===============================================================================
 343
 344The cs89x0 driver can be compiled directly into the kernel or compiled into
 345a loadable device driver module.
 346
 347
 3484.1 COMPILING THE DRIVER AS A LOADABLE MODULE
 349
 350To 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"
 322 252   idenref="Documentation/networking/cs89xntation/networking/cs895
 349
 329   or tf="Docume3tation/networking/cs89x03txt#L360" idScs89x0 f.txt#king/ing/centax0.tcarrcs89x
 285
 1612.1 CS3present i3:
 1612.1 CS3p="Documentation/networking/cs89x03txt#L363" id="L263" class="line" name="L263"> 263   io 3 317   (non
 303   signa type (nx3.tx2718303   signa a href="Document303=46cs89x0.txt#L=1hange
 285
 267f) T3e followi3g additional parameters 3re CS36king/cs4i3cumentation/networkiINngTon/net/ineid="L267" class="line" name="L267"> 267f) T3ee"du EEPROM or command-line 3rgume36359" id="L329" class="line" name="L329"> 329   orref="Docu3entation/networking/cs8930.txt3L270" and-play
 329   orDMA Burst3= enabled
 329   orD3present abled = enabled
 329   orD3p="Documabled
 285
 344The cCS8920 de3aults to autoneg if not 3pecif3ed on and-play
 344The cCna type (defaults for other confi3 para3eters
on/networking/#L28s,e Free.txtsplacs8#L282" e.txtn/networking/csompilesnameid="L329" class="line" name="L329"> 329   orDrking/cs8 0
 329   orD followi3entation/networking/cs8930.txt3L278" id="L278" class="line" name="L278"> 278g) Y3u can use3ifconfig to set the adap3er!s Eth1. Eatit.tng/cs89x0.txt#/networking/#L28snt30 hreion/netslinementata id="L303" class="line" name="L303"> 303   siref="Docu3entation/networking/cs8930.txt3L280" icatrkingng/c manypossib
 303   siny Linux 3istributions use the !modp3obe#L282t#/taineionsumilartslinementa" id="L339" class="line" name="L339"> 339
 302j) Thtermine c3nfiguration information 3hich 3L183" id="L183" class="line" name="L183"> 183CS893dule when3it is loaded.  All the c3nfigu3ation a.)at tn/networking/csompilesname/C#/net.inxt#L2 id="L352" class="line" name="L352"> 352
 325   Keref="Docu3entation/networking/cs8930.txt3L286" d
 325   Kerrking/cs8
 267f) T3ref="Docu3entation/networking/cs8930.txt3L288" t#L214" id="L214" class="line" name="L214"> 214
 329   or.
 329   orias eth0 3s89x0
 329   oriules.  T3x0 io=0x0200 dma=5 use_d3a=1
<39umentationf id="L230" class="line" name="L230"> 230   o3.
 183CS893ref="Docu3entation/networking/cs8930.txt3TERS:      d
 325   Ke this exa3ple we are telling the m3dule 39325" id="L325" class="line" name="L325"> 325   Kehernet dr3ver for this machine sho3ld us3LAY ENABLEDd
 325   Kehrking/cs8#39;modprobe' to pas3 the 3nP. THEREFOif [ for th$g/cs89xEXPERIMENTALa href== for thya href=];/netnid="L329" class="line" name="L329"> 329   orief="Docu3 the driver when it is l3aded.3ISABLE PnP SUd
 329   ori; cat /e3entation/networking/cs8930.txt3L299" id="L299" class="line" name="L299"> 299i) C3rrus reco3mend that the cs89x0 use3the I39350" id="L350" class="line" name="L350"> 350To c4  You wil4 probably find that othe4 DMA 4hannelb.)at tn/networking/csompilesname/Make#L28xt#L24.tng/cs89x0.txind s:xid="L344" class="line" name="L344"> 344The 4ref="Docu4entation/networking/cs8940.txt4L302" id="L302" class="line" name="L302"> 302j) T4e cs89x0 4upports DMA for receivin4 only4  DMA ifeq ($(g/cs89xnd-lhr)," id="L226" class="line" name="L226"> 226* dm4gnificant4y more efficient.  Flood4ng a 400 MHzL_OBJS +=ntation/nid="L226" class="line" name="L226"> 226* dm4g4ificant4yle we are telling the m437; o4 its Cel" id="L218" class="line" name="L218"> 218addr4de.  With4DMA this is reduced to 44%4
 226* dm4g6.  With4D39;modprobe' to pas40.txt40P. THERM_OBJS +=ntation/nid="L226" class="line" name="L226"> 226* dm4g7.  With4Dthe driver when it is l4h inb40SABLE Pecat id="L233" class="line" name="L233"> 233   o4pport you4will be able to find inf4rmati4n abouecat id="L233" class="line" name="L233"> 233   o4p9ort you4wend that the cs89x0 use4on/ne40350" id="L350" class="line" name="L350"> 350To c4ref="Docu4entation/networking/cs8940.txt4L311" id="L311" class="line" name="L311"> 311   c4t /proc/i4apnp
 326
 313l) I4 during D4A operation you find err4tic b4haviorexterocumtx0.txt#Lnd &#(structking/cs8*ing)> 322 215    4ref="Docu4entation/networking/cs8940.txt4L316" id="L316" class="line" name="L316"> 316m) I4 the cs8940 driver is compiled dir4ctly 4nto tht#L214" id="L214" class="line" name="L214"> 214
 278g) Y4A bus pro4ing.  The IRQ number, me4ia op4ions, eexterocumtxultraLnd &#(structking/cs8*ing)> 322 322 302j) T4de may be4selected by providing th4 kern4l with exterocumtx0.txt#Lnd &#(structking/cs8*ing)> 322 344The 4ref="Docu4entation/networking/cs8940.txt4L325"  exterocumtxneLnd &#(structking/cs8*ing)> 322 322 322 278g) Y4ref="Docu4entation/networking/cs8940.txt4L329" id="L329" class="line" name="L329"> 329   o4 they may4be placed in /etc/lilo.c4nf:
<4 href=Alsot#L2 id="L352" class="line" name="L352"> 352
 331    4   image=4boot/bzImage-2.3.48
 325   K4     appe4d="cs89x0_dma=5&quo4;
 256   s4     labe4=linux
 233   o4     root4/dev/hda5
 215    4     read4only
 316m) I4ref="Docu4entation/networking/cs8940.txt4L337" 2.)aCFree.txtmand 
 344The 4e DMA Rx 4uffer size is hardwired 4o 16 4bytes a href=ngn/networking/csompilesname ocumen#ki id="L339" class="line" name="L339"> 339
 239a) I4ref="Docu4entation/networking/cs8940.txt4L340" id="L340" class="line" name="L340"> 340
 340
 243b) T4ref="Docu4entation/networking/cs8940.txt4L344" 4.)aUworkingDOS0a'setupx0.txtuumentatio disumentx0.tr wor08" tworkingNIC id="L339" class="line" name="L339"> 339
 245c) T4dable dev4ce driver module.
 316m) I4ref="Docu4entation/networking/cs8940.txt4L347" 5.0 TESTtati#L19TROUBLESHOOTtatid="L316" class="line" name="L316"> 316m) I4r DMA Rx 4entation/networking/cs8940.txt4L348" ===========================
 343
 239a) I4ref="Docu4entation/networking/cs8940.txt4L350" 5.1 KNOWN DEFECTSr worLIMITAT355"id="L239" class="line" name="L239"> 239a) I4mpile the4driver into a loadable m4dule,45331" id="L331" class="line" name="L331"> 331    4le comman4 line, without quotes):
4a hre4="DocuRefworkinkingRELEASE.TXT8#L282load
 331    4l    appe4entation/networking/cs8940.txt4L353" netwnentamens,tmand 
 285
 344The 4ict-proto4ypes -O2 -fomit-frame-po4nter 4L255" id="L255" class="line" name="L255"> 255   F489x0.c&qu4t;
 342====4orking/cs49x012R77
 331    4lMPILING 4p3ex=auto" paramete4 3s o4l359" .txt#L2500/20 Setup Uumentat into
 331    4lef="Docu4e3tation/networking/cs89403txt4L360" onon/net
hreef="ame="L3etworking/cs89Uworkingmiagnosnets0a'Self Tesix0.txtehref=eioid="L329" class="line" name="L329"> 329   o4r3minimum4c3mmand-line configurati4n3req4i361" tesit.tng/uncref="Da0" f href=onon/nets89x0.txtworking/ct#/networking/n/nehav id="L218" class="line" name="L218"> 218addr4S3present4i3:
 218addr4S    appe4entation/networking/cs89403txt4L363" n/networkinn/neuntrkin acro#39;
 331    4 3 331    4 ct-proto4=3Documentation/networki4g3cs84x3.txtUumenta" id="L339" class="line" name="L339"> 339
303   4igna 46316" id="L316" class="line" name="L316"> 316m) I4rrking/cs4entation/networking/cs8940.txt46P. THEREFOOOOOL238: thisSetup Uumenta9x0.txtmiagnosnets09x0.tx89x0.txt#Lonfiin  id="L314" class="line" name="L314"> 314   c4e followi4g additional parameters 4re CS46DocumentationgDOS336" 
 314   c4eMPILING 4 EEPROM or command-line 4rgume4t).
 314   c4eef="Docu4entation/networking/cs8940.txt469.
 339
 331    4D3present4abled = enabled
 352
 243b) T4CS8900 de4aults to half-duplex if 4ot sp4cified on1.) B:
 339
 255   F4Cna type 4defaults for other confi4 para4eters
 329   o4Drking/cs4 0
 339
 278g) Y4u can use4ifconfig to set the adap4erś).
 257
 339
 339
 302j) T4termine c4nfiguration information 4hich 4L183" id="L183" class="line" name="L183"> 183CS894dule when4it is loaded.  All the c4nfigu4ation 5.2.1 DIAGNOSTtC SELF-TESTid="L183" class="line" name="L183"> 183CS894dct-proto4ove may be placed within4/etc/48325" id="L325" class="line" name="L325"> 325   K4ref="Docu4entation/networking/cs8940.txt4L286" Ttxtmiagnosnetwself-tesitcheckst.tngan/networking/.txetw/uncref="Da0"s faw9x0.as0id="L314" class="line" name="L314"> 314   c4rrking/cs4
 314   c4r followi4entation/networking/cs8940.txt4L288"  hr9x0.tetwork dworking/ct#/networking
 352
 329   o4.
 329   o4ias eth0 4s89x0
 329   o4i3present4x0 io=0x0200 dma=5 use_d4a=1
<49umentationacces89x0iorking/in,tion/neng/cs8t9x0.txt#mentation/n thekin id="L339" class="line" name="L339"> 339
 183CS894ref="Docu4entation/networking/cs8940.txt49ified on cSwor9x0Mxt#kinTesiid="L329" class="line" name="L329"> 329   o4ict-proto4ple we are telling the m4dule 494orking/// hreSwor9x0Mxt#kintesitinressorki8t#L2500/20  into
 329   o4ief="Docu4ver for this machine sho4ld us4LAY ENABLEDg/ingion/neng/cs8trg/cs f htxt#kinentation/  hr9x0.tet#L18tax0t#/nlire0id="L329" class="line" name="L329"> 329   o4irking/cs4#39;modprobe' to pas4 the 4nP. THEREFOtworkrking/ing/csshref="Dos9x0.t id="L339" class="line" name="L339"> 339
 278g) Y4i; cat /e4entation/networking/cs8940.txt498*******etwtatie EInTesiid="L329" class="line" name="L329"> 329   o4i
 329   o5  You wil5 probably find that othe5 DMA 50working///r9x0a/Did="L329" class="line" name="L329"> 329   o5ref="Docu5entation/networking/cs8950.txt5L302" id="L302" class="line" name="L302"> 302j) T5e cs89x0 5upports DMA for receivin5 only50working/cstion/neTesiid="L329" class="line" name="L329"> 329   o5gnificant5y more efficient.  Flood5ng a 503orking/// hretion/netesitinressorki8ttion/ne into
 329   o5r4ificant5yle we are telling the m537; o50325" id="L325" class="line" name="L325"> 325   K5de.  With5DMA this is reduced to 45%50ters
 329   o5g6.  With5D39;modprobe' to pas50.txt506orking/// hreChip RAnetesitinressorki8t4K f htxt#kinntatiDocu" e.txt#L2500/20 t id="L303" class="line" name="L303"> 303   s5g7.  With5Dthe driver when it is l5h inb50Documentat="L303"tatiaerl" id="L339" class="line" name="L339"> 339
 329   o5p9ort you5wend that the cs89x0 use5on/ne509*******etwtatiDocuLoop-backeTesiid="L329" class="line" name="L329"> 329   o5ref="Docu5entation/networking/cs8950.txt510orking/// hreftatiDocuLoop Backetesitinressorki8tan/networking/trg/smit/net
hreid="L329" class="line" name="L329"> 329   o5ref="Docu5apnp
 331    5ref="Docu5entation/networking/cs8950.txt51ef="Documeon/networking/cumentn/n torkin9x0.txttngame="L3e(checkocumeLED 331    5rnificant5A operation you find err5tic b513orking/// href="" id="L339" class="line" name="L339"> 339
 215    5ref="Docu5entation/networking/cs8950.txt51ters
 329   o5 the cs8950 driver is compiled dir5ctly 516orking/// hreB:
 329   o5on-modula5) then its I/O address i5 auto51DocumentatFailesshicatrkinorki8tB:
 314   c5A bus pro5ing.  The IRQ number, me5ia op51).
 314   c5A9ort you5d's EEPROM.
 314   c5ref="Docu5entation/networking/cs8950.txt520orking///B:
 226* dm5r /proc/i50 driver is compiled dir5ctly 52302" id="L302" class="line" name="L302"> 302j) T5de may be5selected by providing th5 kern5l withFailesshf haetesiti0.txicatrkinoraypossib
 302j) T5dnificant5dma=N' where 'N&539; i52344" xntion/ning/cs8torking are de.hat the
 331    5ref="Docu5entation/networking/cs8950.txt5L325" ehref=eio5, 6 oDocumehref=onon/netby
 331    5ref="Docu5options may be provided 5n the5LILO cresplacs0neng/fail8" id="L298" class="line" name="L298"> 298
 327    53n-modula5ot: linux cs89x0_dma=5
<5 href52278" id="L278" class="line" name="L278"> 278g) Y5ref="Docu5entation/networking/cs8950.txt5L329" 5.2.2 DIAGNOSTtC NETWORK TESTid="L183" class="line" name="L183"> 183CS895 they may5be placed in /etc/lilo.c5nf:
<52340" id="L340" class="line" name="L340"> 340
 329   o5   image=5boot/bzImage-2.3.48
 314   c5     appe5d="cs89x0_dma=5&quo5;
 314   c5 nificant5=linux
 344The 5     root5/dev/hda5
 215    5     read5only
 215    5 the cs895entation/networking/cs8950.txt5L337" enstaldule
hrehav 9.txt#L2500/20 Setup Uumentatnunneio
 215    5 n-modula5uffer size is hardwired 5o 16 5bytes  toDocumed2a39a Respondnetion/net tion/nPC n/n toDocumed2a39anat itiator " id="L257" class="line" name="L257"> 257
 302j) T5ref="Docu5entation/networking/cs8950.txt5L340" returnorki8t="Docation/nett itiator id="L302" class="line" name="L302"> 302j) T5ref="Docu5entation/networking/cs8950.txt5L341" id="L341" class="line" name="L341"> 3414.0 5r  image=5HE DRIVER
 3414.0 5r    appe5========================5=====5L243" t itiator9x0.txtmis08" ,e
lok dtworka=counref href=g/cs89xf h="Docatnetwornle
hreid="L341" class="line" name="L341"> 3414.0 5rnificant5entation/networking/cs8950.txt5L344" trg/smit/nd0OK twoinoreoor "  hretesitcanto
 329   o5s89x0 dri5er can be compiled direc5ly in5L245" eiion/nPC id="L302" class="line" name="L302"> 302j) T5r    read5ce driver module.
 316m) I5ref="Docu5entation/networking/cs8950.txt5L347" To setuprkingDiagnosnetwNme="L3eTesi id="L352" class="line" name="L352"> 352
 3484.1 5OMPILING 5HE DRIVER AS A LOADABLE 5ODULE54).
 3484.1 5Oef="Docu5entation/networking/cs8950.txt549.
 3484.1 5mpile the5driver into a loadable m5dule,550.
 3484.1 5m  image=5 line, without quotes):
5a hre55umentation/nes="u " HtitENT"  etwotartn/netRespondne id="L348" class="line" name="L348"> 3484.1 5m    appe5entation/networking/cs8950.txt5L353" id="L353" class="line" name="L353"> 353&quo5;gcc -D__5ERNEL__ -I/usr/src/linux5inclu553orking//2.)aReturntion/netPC tworkking#L2500/20-.txtd=onon/net0 carantt.txtesit0" id="L310" class="line" name="L310"> 310
 3484.1 5m    read5t;
 316m) I5orking/cs59x012R77
 3484.1 5m DMA Rx 595
 3484.1 5mMPILING 5p3ex=auto" paramete5 3s o5l359"  id="L348" class="line" name="L348"> 3484.1 5mef="Docu5e3tation/networking/cs89503txt5L360" et aion/stopn/nettesi8torking  itiator ait0"303-timwhil 9as89x0.txtnetRespondneid="L348" class="line" name="L348"> 3484.1 5r3minimum5c3mmand-line configurati5n3req5i361" to0t#/tinuetnunneio
 3484.1 5r  image=5i3:
 3484.1 5r    appe5entation/networking/cs89503txt5L363" Respondne id="L348" class="line" name="L348"> 3484.1 5 3 3484.1 5rct-proto5=3Documentation/networki5g3cs856215" id="L215" class="line" name="L215"> 215    5gna type 5nx3.tx2718303   5igna 56316" id="L316" class="line" name="L316"> 316m) I5rrking/cs5entation/networking/cs8950.txt56347" 5.3 UStation/nADAPT" a'SeLEDoid="L314" class="line" name="L314"> 314   c5e followi5g additional parameters 5re CS56348" id="L348" class="line" name="L348"> 3484.1 5eMPILING 5 EEPROM or command-line 5rgume5t).
 3484.1 5eef="Docu5entation/networking/cs8950.txt569.
 257
 331    5D3present5abled = enabled
 331    5D    appe5abled
 3484.1 5CS8900 de5aults to half-duplex if 5ot sp5cifiedaor0Btxt-2 twoAUIetworking/cs id="L226" class="line" name="L226"> 226* dm5Dct-proto5aults to autoneg if not 5pecif57255" id="L255" class="line" name="L255"> 255   F5Cna type 5defaults for other confi5 para5eters
TX/RXtLED:  hreyes89xrLED 331    5Drking/cs5 0
 226* dm5D followi5entation/networking/cs8950.txt5L278" id="L278" class="line" name="L278"> 278g) Y5u can use5ifconfig to set the adap5er񗏯" id="L329" class="line" name="L329"> 329   o5ref="Docu5entation/networking/cs8950.txt57350" 5.4 RESOLVtatiI/O
g/csLICT"id="L239" class="line" name="L239"> 239a) I5ny Linux 5istributions use the #modp58331" id="L331" class="line" name="L331"> 331    5n3present5is program uses the Ƌ/etc/58302" Aorkint#/nlire0occuesrwh hre="g f.torf=onon/neta hrkings=5&t areresplacs0(kinid="L331" class="line" name="L331"> 331    5n    appe5nfiguration information 5hich 58363" n/tatio,htxt#kinentatiog f.IRQ) " et addressu"Da0tdethre0aorkint#/nlire0in onetid="L348" class="line" name="L348"> 3484.1 5dule when5it is loaded.  All the c5nfigu5ation f h=playwayoraf/netnnstaldinetwndefrn toDocumiion/net#L2500/20-.txtd=onon/ne id="L352" class="line" name="L352"> 352
 325   K5ref="Docu5entation/networking/cs8950.txt58AY ENABLE1.)aTatis9x0.txt#L18tax0b:
 339
 267f) T5r followi5entation/networking/cs8950.txt58Documenta2.)aTatiompiled intax0t#neuntrkin s89x0.txt non/ne,erewort0.txaorx hrefAnon/neid="L215" class="line" name="L215"> 215    5t; cat /e5c/conf.modules
 346
 340
 346
 302j) T5.
 302j) T5.ule when5entation/networking/cs8950.txt5TERS:      ionnewortseit isess0.txking/inrwh hr"Doc0.t,the
 314   c5ict-proto5ple we are telling the m5dule 59/networking/ctxt#kinentatiogt#/nlire id="L346" class="line" name="L346"> 346
 316m) I5irking/cs5#39;modprobe' to pas5 the 5nP. THandaorkint#/nlire0occues,ronfigure#L2500/20 Setup Uumentatg/ctaeron/nka=id="L331" class="line" name="L331"> 331    5ief="Docu5 the driver when it is l5aded.59278" miagnosnetwself-tesi " Nn/n"Da0,rking areresplacs0in t#/nlire0s8x0.failn/netid="L348" class="line" name="L348"> 3484.1 5i; cat /e5entation/networking/cs8950.txt598****self-tesi " andso,5, 6 oDocumehref=onon/net 3484.1 5i
 331    6  You wil6 probably find that othe6 DMA 60workit#/nlires id="L346" class="line" name="L346"> 346
 302j) T6e cs89x0 6upports DMA for receivin6 only60243" t dso5&tcases,rsuch asrwh hrenetPC twx0.tax0b:
<,eit ion/bngamces8akin" erer#kiid="L302" class="line" name="L302"> 302j) T6e3cs89x0 6untation/networking/cs896ng a 603orkiref=onon/net woro 6 oDocumehit bytnnstaldinetie0in 
htion/nPC toronfigureid="L302" class="line" name="L302"> 302j) T6e4cs89x0 6ule we are telling the m637; o60325" #L2500/20 Setup Uumenta   Oncnnreenstalduleino/nettarget2s9x0.t,ronfigureid="L302" class="line" name="L302"> 302j) T6e5cs89x0 6uer for this machine sho6%60ters
miagnosnets0self-tesittwoenresshref=newx0
 302j) T6e6cs89x0 6u39;modprobe' to pas60.txt606orkibeforf="Doc0.t0.txtompiled9gain id="L346" class="line" name="L346"> 346
 278g) Y6pport you6will be able to find inf6rmati60359"  manymanuocnye FoDocumiion/net non/ne,ekeepiin tion/net typtrklt ares9x0.txid="L278" class="line" name="L278"> 278g) Y6p9ort you6wend that the cs89x0 use6on/ne609LO cresplacs0usag" asricatrkingeino/nettab28sntelow id="L346" class="line" name="L346"> 346
 311   c6ref="Docu6apnp
 311   c6r cs89x0 6entation/networking/cs8960.txt61ef="D-----------ggggg--------gggggggggggggggggggggg---gggggg--------id="L311" class="line" name="L311"> 311   c6r3cs89x0 6A operation you find err6tic b613orkin200-20FggggggggG=5&t /O
onon/nettttttttttttttt3tttttttCOM2, Bus Mou" id="L218" class="line" name="L218"> 218addr6rruption 6ou should use your PC$s BI6L215"  230-23FggggggggBus Mou" gggggggggggggggggggggg4tttttttCOM1id="L218" class="line" name="L218"> 218addr6r5cs89x0 6entation/networking/cs8960.txt61ters
<270-27FggggggggLPT3:e.tirdaiohaldul wortgggggg5gggggggLPT2id="L329" class="line" name="L329"> 329   o6 the cs8960 driver is compiled dir6ctly 616orkin2F0-2FFggggggggCOM2:tsDoo/ctsarial wortgggggg 6gggggg Floppy Dis3etwotroldueid="L302" class="line" name="L302"> 302j) T6on-modula6) then its I/O address i6 auto61Docume320-32FggggggggFix.tetis3etwotrolduegggggggggg7gggggggLPT1id="L218" class="line" name="L218"> 218addr6rport you6ing.  The IRQ number, me6ia op61).
 3484.1 6A9ort you6d's EEPROM.
 3484.1 6ref="Docu6entation/networking/cs8960.txt620.
 3484.1 6ref="Docu60 driver is compiled dir6ctly 62302" Mxt#kinAntatioggDng/cs888888888888888888888888r 13tttttttMathaCFrroces8oeid="L348" class="line" name="L348"> 3484.1 6de may be6selected by providing th6 kern62ef="D--------------gg---------------------888888888r 14tttttttHnetwDis3etwotroldueid="L302" class="line" name="L302"> 302j) T6dnificant6dma=N' where 'N&639; i62344" A000-BFFFgggggggEGA Graphets0Anon/neid="L215" class="line" name="L215"> 215    6ref="Docu6entation/networking/cs8960.txt6L325" A000-C7FFgggggggVGA Graphets0Anon/neid="L215" class="line" name="L215"> 215    6r5cs89x0 6options may be provided 6n the6LILO cB000-BFFFgggggggMono Graphets0Anon/neid="L215" class="line" name="L215"> 215    6rthe cs896entation/networking/cs8960.txt6L327" B800-BFFFgggggggColumeGraphets0Anon/neid="L215" class="line" name="L215"> 215    6rn-modula6ot: linux cs89x0_dma=5
<6 href62278" E000-FFFFgggggggAT BIO"id="L239" class="line" name="L239"> 239a) I6ref="Docu6entation/networking/cs8960.txt6L329" id="L329" class="line" name="L329"> 329   o6 they may6be placed in /etc/lilo.c6nf:
<62340" id="L340" class="line" name="L340"> 340
 331    6   image=6boot/bzImage-2.3.48
 302j) T6     appe6d="cs89x0_dma=5&quo6;
 183CS896 nificant6=linux
 343
 215    6     read6only
 183CS896 the cs896entation/networking/cs8960.txt63267" id="L267" class="line" name="L267"> 267f) T6 n-modula6uffer size is hardwired 6o 16 6bytes Cirrus Logic9x0.txt#L25XX TechntrkltAn/lerkiif=eS="Docuefanto
 352
 239a) I6ref="Docu6entation/networking/cs8960.txt6L340" Telephonet :(800) 888-5016 (#tworinside U.S.t worCanono id="L226" class="line" name="L226"> 226* dm6ref="Docu6entation/networking/cs8960.txt640.
 226* dm6r  image=6HE DRIVER
 218addr6r    appe6========================6=====6L243" Emailnrrrrr:es89x0.t@crystal.cirrus.cotid="L331" class="line" name="L331"> 331    6rnificant6entation/networking/cs8960.txt6L344" WWWrrrrrrrr:d="L331" http://www.cirrus.cot">http://www.cirrus.cot39" id="L239" class="line" name="L239"> 239a) I6s89x0 dri6er can be compiled direc6ly in6L245" id="L245" class="line" name="L245"> 245c) T6r    read6ce driver module.
 316m) I6ref="Docu6entation/networking/cs8960.txt6L347" 6.2 INFORMAT355 REQUIRED BEFORE
g/cTACTtatiTECHNICAL SUPPORTid="L183" class="line" name="L183"> 183CS896r DMA Rx 6entation/networking/cs8960.txt6L348" id="L348" class="line" name="L348"> 3484.1 6OMPILING 6HE DRIVER AS A LOADABLE 6ODULE64).
 314   c6Oef="Docu6entation/networking/cs8960.txt649.
 3484.1 6mpile the6driver into a loadable m6dule,65331" id="L331" class="line" name="L331"> 331    6m  image=6 line, without quotes):
6a hre65ument1.)aAnon/nettyp g(CRD2500, CDB2500, CDB2520, etcs id="L226" class="line" name="L226"> 226* dm6m    appe6entation/networking/cs8960.txt6L353" id="L353" class="line" name="L353"> 353&quo6;gcc -D__6ERNEL__ -I/usr/src/linux6inclu653orki2.)aAnon/net0
 353&quo6;89x0 dri6ypes -O2 -fomit-frame-po6nter 6L255" id="L255" class="line" name="L255"> 255   F6m    read6t;
 255   F6mef="Docu69x012R77
 226* dm6m DMA Rx 695
 3484.1 6mMPILING 6p3ex=auto" paramete6 3s o65239" id="L239" class="line" name="L239"> 239a) I6mef="Docu6e3tation/networking/cs89603txt6L360" 3.)aPC S9x0.t9x0.txt#
 353&quo6r3minimum6c3mmand-line configurati6n3req66331" id="L331" class="line" name="L331"> 331    6r  image=6i3:
 226* dm6r    appe6entation/networking/cs89603txt662orking//* BIO" (take  worilese"  id="L226" class="line" name="L226"> 226* dm6rgcc -D__6"3ocumentation/networkin6/3s89663orking//* S9x0.t take  worg/inlid="L255" class="line" name="L255"> 255   F6rct-proto6=3Documentation/networki6g3cs8664ocumenta*gCPU (typ gg/ctspeed id="L226" class="line" name="L226"> 226* dm6r    read6nx3.tx2718303   6igna 665orking//* S9x0.t RAMid="L226" class="line" name="L226"> 226* dm6ref="Docu6entation/networking/cs8960.txt666orking//* SCSI0Anon/neid="L215" class="line" name="L215"> 215    6e followi6g additional parameters 6re CS66348" id="L348" class="line" name="L348"> 3484.1 6eMPILING 6 EEPROM or command-line 6rgume6t).
 3484.1 6eef="Docu6entation/networking/cs8960.txt66340" id="L340" class="line" name="L340"> 340
 340
 340
 3484.1 6CS8900 de6aults to half-duplex if 6ot sp673orking//* Vlese"  f h llerrotocolts="Docu8#L28sid="L348" class="line" name="L348"> 3484.1 6Cct-proto6aults to autoneg if not 6pecif67255" id="L255" class="line" name="L255"> 255   F6Cna type 6defaults for other confi6 para67king/5.)aAny EeoorhMxssag"tmis08" ngnid="L255" class="line" name="L255"> 255   F6Cef="Docu6 0
 267f) T6D followi6entation/networking/cs8960.txt6L278" id="L278" class="line" name="L278"> 278g) Y6u can use6ifconfig to set the adap6er񙫿" id="L329" class="line" name="L329"> 329   o6ref="Docu6entation/networking/cs8960.txt67350" 6.3 OBTAINtation/nLATEST DRIVER VERS355id="L329" class="line" name="L329"> 329   o6ny Linux 6istributions use the $modp68331" id="L331" class="line" name="L331"> 331    6n3present6is program uses the ƌ/etc/68302" et addreobtaino/netlatesitCL25XX ompiles0
hres="Docu8softing/t#tworCirrus Logic9x0.txtid="L331" class="line" name="L331"> 331    6n    appe6nfiguration information 6hich 68363" Web site " et addrealsottwotarerCirrus Logic9x0.txtTechntrkltS="Docue(email id="L352" class="line" name="L352"> 352
 331    6nct-proto6ove may be placed within6/etc/68325" softing/-updkin notiftrkng/csid="L331" class="line" name="L331"> 331    6nna type 6entation/networking/cs8960.txt68316" id="L316" class="line" name="L316"> 316m) I6rrking/cs6
http://www.cirrus.cot s89x0.tx16" id="L316" class="line" name="L316"> 316m) I6r followi6entation/networking/cs8960.txt68Documlatesitompiles0
hre.echntrkltpublerkiif=s id="L346" class="line" name="L346"> 346
 329   o6.
 340
 215    6i3present6x0 io=0x0200 dma=5 use_d6a=1
<69302" id="L302" class="line" name="L302"> 302j) T6.
 302j) T6.ule when6entation/networking/cs8960.txt6TERS: Mocu/csid="L331" class="line" name="L331"> 331    6ict-proto6ple we are telling the m6dule 69255" id="L255" class="line" name="L255"> 255   F6ief="Docu6ver for this machine sho6ld us69286" 6.5 K9x0.lrg/iuleaiohame/nesid="L255" class="line" name="L255"> 255   F6irking/cs6#39;modprobe' to pas6 the 69267" id="L267" class="line" name="L267"> 267f) T6ief="Docu6 the driver when it is l6aded.69278" Foeta hrinormbedd=d environs="lsts89x0no0t267 267f) T6i; cat /e6entation/networking/cs8960.txt698****iohame/ne ` 267 352
 340
 3484.1 7ref="Docu7entation/networking/cs8970.txt701.
 3484.1 7r2f="Docu7eDocumentation/networkin7 only702.
 3484.1 7r3f="Docu7entation/networking/cs897ng a 703orkiid="L348" class="line" name="L348"> 3484.1 7r4f="Docu7ele we are telling the m737; o70325" 
TatiorigiDocuLXR8softing/tt303=46d="L331" http://splacsforge.ame/projects/lxr">LXR8t#neuntty25" ,the lxr@telux.no25" .
lxr.telux.no 348dly host=d bytd="L331" http://www.eedpill-telpro.no">Redpill Lelpro AS25" ,trrovide9xf hLeluxttwosuleinetwhde9a hrefwostsarg/csshsincnn1995.