1 |
1275 |
phoenix |
|
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 dep
|
219 |
|
|
|
220 |
|
|
make clean
|
221 |
|
|
|
222 |
|
|
make bzlilo
|
223 |
|
|
|
224 |
|
|
Next time the system reboot, you have the driver in memory.
|
225 |
|
|
_________________________________________________________________
|
226 |
|
|
|
227 |
|
|
Chapter 6. Known Problems and Bugs
|
228 |
|
|
|
229 |
|
|
There are some known problems and bugs. If you find any other bugs
|
230 |
|
|
please mail to lcchang@sis.com.tw
|
231 |
|
|
|
232 |
|
|
1. AM79C901 HomePNA PHY is not thoroughly tested, there may be some
|
233 |
|
|
bugs in the "on the fly" change of transceiver.
|
234 |
|
|
2. A bug is hidden somewhere in the receive buffer management code,
|
235 |
|
|
the bug causes NULL pointer reference in the kernel. This fault is
|
236 |
|
|
caught before bad things happen and reported with the message:
|
237 |
|
|
eth0: NULL pointer encountered in Rx ring, skipping which can be
|
238 |
|
|
viewed with dmesg or cat /var/log/message.
|
239 |
|
|
3. The media type change from 10Mbps to 100Mbps twisted-pair ethernet
|
240 |
|
|
by ifconfig causes the media link down.
|
241 |
|
|
_________________________________________________________________
|
242 |
|
|
|
243 |
|
|
Chapter 7. Revision History
|
244 |
|
|
|
245 |
|
|
* November 13, 2000, Revision 1.07, seventh release, 630E problem
|
246 |
|
|
fixed and furthur clean up.
|
247 |
|
|
* November 4, 1999, Revision 1.06, Second release, lots of clean up
|
248 |
|
|
and optimization.
|
249 |
|
|
* August 8, 1999, Revision 1.05, Initial Public Release
|
250 |
|
|
_________________________________________________________________
|
251 |
|
|
|
252 |
|
|
Chapter 8. Acknowledgements
|
253 |
|
|
|
254 |
|
|
This driver was originally derived form Donald Becker's pci-skeleton
|
255 |
|
|
and rtl8139 drivers. Donald also provided various suggestion regarded
|
256 |
|
|
with improvements made in revision 1.06.
|
257 |
|
|
|
258 |
|
|
The 1.05 revision was created by Jim Huang, AMD 79c901 support was
|
259 |
|
|
added by Chin-Shan Li.
|