Pull sn2-reduce-kmalloc-wrap into release branch
[sfrench/cifs-2.6.git] / Documentation / networking / sis900.txt
1
2 SiS 900/7016 Fast Ethernet Device Driver
3
4 Ollie Lho
5
6 Lei Chun Chang
7
8    Copyright © 1999 by Silicon Integrated System Corp.
9    
10    This document gives some information on installation and usage of SiS
11    900/7016 device driver under Linux.
12    
13    This program is free software; you can redistribute it and/or modify
14    it under the terms of the GNU General Public License as published by
15    the Free Software Foundation; either version 2 of the License, or (at
16    your option) any later version.
17    
18    This program is distributed in the hope that it will be useful, but
19    WITHOUT ANY WARRANTY; without even the implied warranty of
20    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21    General Public License for more details.
22    
23    You should have received a copy of the GNU General Public License
24    along with this program; if not, write to the Free Software
25    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
26    USA
27      _________________________________________________________________
28    
29    Table of Contents
30    1. Introduction
31    2. Changes
32    3. Tested Environment
33    4. Files in This Package
34    5. Installation
35           
36         Building the driver as loadable module
37         Building the driver into kernel
38                 
39    6. Known Problems and Bugs
40    7. Revision History
41    8. Acknowledgements
42      _________________________________________________________________
43    
44 Chapter 1. Introduction
45
46    This document describes the revision 1.06 and 1.07 of SiS 900/7016
47    Fast Ethernet device driver under Linux. The driver is developed by
48    Silicon Integrated System Corp. and distributed freely under the GNU
49    General Public License (GPL). The driver can be compiled as a loadable
50    module and used under Linux kernel version 2.2.x. (rev. 1.06) With
51    minimal changes, the driver can also be used under 2.3.x and 2.4.x
52    kernel (rev. 1.07), please see Chapter 5. If you are intended to use
53    the driver for earlier kernels, you are on your own.
54    
55    The driver is tested with usual TCP/IP applications including FTP,
56    Telnet, Netscape etc. and is used constantly by the developers.
57    
58    Please send all comments/fixes/questions to Lei-Chun Chang.
59      _________________________________________________________________
60    
61 Chapter 2. Changes
62
63    Changes made in Revision 1.07
64    
65     1. Separation of sis900.c and sis900.h in order to move most constant
66        definition to sis900.h (many of those constants were corrected)
67     2. Clean up PCI detection, the pci-scan from Donald Becker were not
68        used, just simple pci_find_*.
69     3. MII detection is modified to support multiple mii transceiver.
70     4. Bugs in read_eeprom, mdio_* were removed.
71     5. Lot of sis900 irrelevant comments were removed/changed and more
72        comments were added to reflect the real situation.
73     6. Clean up of physical/virtual address space mess in buffer
74        descriptors.
75     7. Better transmit/receive error handling.
76     8. The driver now uses zero-copy single buffer management scheme to
77        improve performance.
78     9. Names of variables were changed to be more consistent.
79    10. Clean up of auo-negotiation and timer code.
80    11. Automatic detection and change of PHY on the fly.
81    12. Bug in mac probing fixed.
82    13. Fix 630E equalier problem by modifying the equalizer workaround
83        rule.
84    14. Support for ICS1893 10/100 Interated PHYceiver.
85    15. Support for media select by ifconfig.
86    16. Added kernel-doc extratable documentation.
87      _________________________________________________________________
88    
89 Chapter 3. Tested Environment
90
91    This driver is developed on the following hardware
92    
93      * Intel Celeron 500 with SiS 630 (rev 02) chipset
94      * SiS 900 (rev 01) and SiS 7016/7014 Fast Ethernet Card
95        
96    and tested with these software environments
97    
98      * Red Hat Linux version 6.2
99      * Linux kernel version 2.4.0
100      * Netscape version 4.6
101      * NcFTP 3.0.0 beta 18
102      * Samba version 2.0.3
103      _________________________________________________________________
104    
105 Chapter 4. Files in This Package
106
107    In the package you can find these files:
108    
109    sis900.c
110           Driver source file in C
111           
112    sis900.h
113           Header file for sis900.c
114           
115    sis900.sgml
116           DocBook SGML source of the document
117           
118    sis900.txt
119           Driver document in plain text
120      _________________________________________________________________
121    
122 Chapter 5. Installation
123
124    Silicon Integrated System Corp. is cooperating closely with core Linux
125    Kernel developers. The revisions of SiS 900 driver are distributed by
126    the usuall channels for kernel tar files and patches. Those kernel tar
127    files for official kernel and patches for kernel pre-release can be
128    download at official kernel ftp site and its mirrors. The 1.06
129    revision can be found in kernel version later than 2.3.15 and
130    pre-2.2.14, and 1.07 revision can be found in kernel version 2.4.0. If
131    you have no prior experience in networking under Linux, please read
132    Ethernet HOWTO and Networking HOWTO available from Linux Documentation
133    Project (LDP).
134    
135    The driver is bundled in release later than 2.2.11 and 2.3.15 so this
136    is the most easy case. Be sure you have the appropriate packages for
137    compiling kernel source. Those packages are listed in Document/Changes
138    in kernel source distribution. If you have to install the driver other
139    than those bundled in kernel release, you should have your driver file
140    sis900.c and sis900.h copied into /usr/src/linux/drivers/net/ first.
141    There are two alternative ways to install the driver
142      _________________________________________________________________
143    
144 Building the driver as loadable module
145
146    To build the driver as a loadable kernel module you have to
147    reconfigure the kernel to activate network support by
148    
149 make menuconfig
150
151    Choose "Loadable module support --->", then select "Enable loadable
152    module support".
153    
154    Choose "Network Device Support --->", select "Ethernet (10 or
155    100Mbit)". Then select "EISA, VLB, PCI and on board controllers", and
156    choose "SiS 900/7016 PCI Fast Ethernet Adapter support" to "M".
157    
158    After reconfiguring the kernel, you can make the driver module by
159    
160 make modules
161
162    The driver should be compiled with no errors. After compiling the
163    driver, the driver can be installed to proper place by
164    
165 make modules_install
166
167    Load the driver into kernel by
168    
169 insmod sis900
170
171    When loading the driver into memory, some information message can be
172    view by
173    
174 dmesg
175
176    or
177 cat /var/log/message
178
179    If the driver is loaded properly you will have messages similar to
180    this:
181    
182 sis900.c: v1.07.06  11/07/2000
183 eth0: SiS 900 PCI Fast Ethernet at 0xd000, IRQ 10, 00:00:e8:83:7f:a4.
184 eth0: SiS 900 Internal MII PHY transceiver found at address 1.
185 eth0: Using SiS 900 Internal MII PHY as default
186
187    showing the version of the driver and the results of probing routine.
188    
189    Once the driver is loaded, network can be brought up by
190    
191 /sbin/ifconfig eth0 IPADDR broadcast BROADCAST netmask NETMASK media TYPE
192
193    where IPADDR, BROADCAST, NETMASK are your IP address, broadcast
194    address and netmask respectively. TYPE is used to set medium type used
195    by the device. Typical values are "10baseT"(twisted-pair 10Mbps
196    Ethernet) or "100baseT" (twisted-pair 100Mbps Ethernet). For more
197    information on how to configure network interface, please refer to
198    Networking HOWTO.
199    
200    The link status is also shown by kernel messages. For example, after
201    the network interface is activated, you may have the message:
202    
203 eth0: Media Link On 100mbps full-duplex
204
205    If you try to unplug the twist pair (TP) cable you will get
206    
207 eth0: Media Link Off
208
209    indicating that the link is failed.
210      _________________________________________________________________
211    
212 Building the driver into kernel
213
214    If you want to make the driver into kernel, choose "Y" rather than "M"
215    on "SiS 900/7016 PCI Fast Ethernet Adapter support" when configuring
216    the kernel. Build the kernel image in the usual way
217    
218 make clean
219
220 make bzlilo
221
222    Next time the system reboot, you have the driver in memory.
223      _________________________________________________________________
224    
225 Chapter 6. Known Problems and Bugs
226
227    There are some known problems and bugs. If you find any other bugs
228    please mail to lcchang@sis.com.tw
229    
230     1. AM79C901 HomePNA PHY is not thoroughly tested, there may be some
231        bugs in the "on the fly" change of transceiver.
232     2. A bug is hidden somewhere in the receive buffer management code,
233        the bug causes NULL pointer reference in the kernel. This fault is
234        caught before bad things happen and reported with the message:
235        eth0: NULL pointer encountered in Rx ring, skipping which can be
236        viewed with dmesg or cat /var/log/message.
237     3. The media type change from 10Mbps to 100Mbps twisted-pair ethernet
238        by ifconfig causes the media link down.
239      _________________________________________________________________
240    
241 Chapter 7. Revision History
242
243      * November 13, 2000, Revision 1.07, seventh release, 630E problem
244        fixed and further clean up.
245      * November 4, 1999, Revision 1.06, Second release, lots of clean up
246        and optimization.
247      * August 8, 1999, Revision 1.05, Initial Public Release
248      _________________________________________________________________
249    
250 Chapter 8. Acknowledgements
251
252    This driver was originally derived form Donald Becker's pci-skeleton
253    and rtl8139 drivers. Donald also provided various suggestion regarded
254    with improvements made in revision 1.06.
255    
256    The 1.05 revision was created by Jim Huang, AMD 79c901 support was
257    added by Chin-Shan Li.