1da177e4c3
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
257 lines
9.6 KiB
Text
257 lines
9.6 KiB
Text
|
|
SiS 900/7016 Fast Ethernet Device Driver
|
|
|
|
Ollie Lho
|
|
|
|
Lei Chun Chang
|
|
|
|
Copyright © 1999 by Silicon Integrated System Corp.
|
|
|
|
This document gives some information on installation and usage of SiS
|
|
900/7016 device driver under Linux.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or (at
|
|
your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
|
USA
|
|
_________________________________________________________________
|
|
|
|
Table of Contents
|
|
1. Introduction
|
|
2. Changes
|
|
3. Tested Environment
|
|
4. Files in This Package
|
|
5. Installation
|
|
|
|
Building the driver as loadable module
|
|
Building the driver into kernel
|
|
|
|
6. Known Problems and Bugs
|
|
7. Revision History
|
|
8. Acknowledgements
|
|
_________________________________________________________________
|
|
|
|
Chapter 1. Introduction
|
|
|
|
This document describes the revision 1.06 and 1.07 of SiS 900/7016
|
|
Fast Ethernet device driver under Linux. The driver is developed by
|
|
Silicon Integrated System Corp. and distributed freely under the GNU
|
|
General Public License (GPL). The driver can be compiled as a loadable
|
|
module and used under Linux kernel version 2.2.x. (rev. 1.06) With
|
|
minimal changes, the driver can also be used under 2.3.x and 2.4.x
|
|
kernel (rev. 1.07), please see Chapter 5. If you are intended to use
|
|
the driver for earlier kernels, you are on your own.
|
|
|
|
The driver is tested with usual TCP/IP applications including FTP,
|
|
Telnet, Netscape etc. and is used constantly by the developers.
|
|
|
|
Please send all comments/fixes/questions to Lei-Chun Chang.
|
|
_________________________________________________________________
|
|
|
|
Chapter 2. Changes
|
|
|
|
Changes made in Revision 1.07
|
|
|
|
1. Separation of sis900.c and sis900.h in order to move most constant
|
|
definition to sis900.h (many of those constants were corrected)
|
|
2. Clean up PCI detection, the pci-scan from Donald Becker were not
|
|
used, just simple pci_find_*.
|
|
3. MII detection is modified to support multiple mii transceiver.
|
|
4. Bugs in read_eeprom, mdio_* were removed.
|
|
5. Lot of sis900 irrelevant comments were removed/changed and more
|
|
comments were added to reflect the real situation.
|
|
6. Clean up of physical/virtual address space mess in buffer
|
|
descriptors.
|
|
7. Better transmit/receive error handling.
|
|
8. The driver now uses zero-copy single buffer management scheme to
|
|
improve performance.
|
|
9. Names of variables were changed to be more consistent.
|
|
10. Clean up of auo-negotiation and timer code.
|
|
11. Automatic detection and change of PHY on the fly.
|
|
12. Bug in mac probing fixed.
|
|
13. Fix 630E equalier problem by modifying the equalizer workaround
|
|
rule.
|
|
14. Support for ICS1893 10/100 Interated PHYceiver.
|
|
15. Support for media select by ifconfig.
|
|
16. Added kernel-doc extratable documentation.
|
|
_________________________________________________________________
|
|
|
|
Chapter 3. Tested Environment
|
|
|
|
This driver is developed on the following hardware
|
|
|
|
* Intel Celeron 500 with SiS 630 (rev 02) chipset
|
|
* SiS 900 (rev 01) and SiS 7016/7014 Fast Ethernet Card
|
|
|
|
and tested with these software environments
|
|
|
|
* Red Hat Linux version 6.2
|
|
* Linux kernel version 2.4.0
|
|
* Netscape version 4.6
|
|
* NcFTP 3.0.0 beta 18
|
|
* Samba version 2.0.3
|
|
_________________________________________________________________
|
|
|
|
Chapter 4. Files in This Package
|
|
|
|
In the package you can find these files:
|
|
|
|
sis900.c
|
|
Driver source file in C
|
|
|
|
sis900.h
|
|
Header file for sis900.c
|
|
|
|
sis900.sgml
|
|
DocBook SGML source of the document
|
|
|
|
sis900.txt
|
|
Driver document in plain text
|
|
_________________________________________________________________
|
|
|
|
Chapter 5. Installation
|
|
|
|
Silicon Integrated System Corp. is cooperating closely with core Linux
|
|
Kernel developers. The revisions of SiS 900 driver are distributed by
|
|
the usuall channels for kernel tar files and patches. Those kernel tar
|
|
files for official kernel and patches for kernel pre-release can be
|
|
download at official kernel ftp site and its mirrors. The 1.06
|
|
revision can be found in kernel version later than 2.3.15 and
|
|
pre-2.2.14, and 1.07 revision can be found in kernel version 2.4.0. If
|
|
you have no prior experience in networking under Linux, please read
|
|
Ethernet HOWTO and Networking HOWTO available from Linux Documentation
|
|
Project (LDP).
|
|
|
|
The driver is bundled in release later than 2.2.11 and 2.3.15 so this
|
|
is the most easy case. Be sure you have the appropriate packages for
|
|
compiling kernel source. Those packages are listed in Document/Changes
|
|
in kernel source distribution. If you have to install the driver other
|
|
than those bundled in kernel release, you should have your driver file
|
|
sis900.c and sis900.h copied into /usr/src/linux/drivers/net/ first.
|
|
There are two alternative ways to install the driver
|
|
_________________________________________________________________
|
|
|
|
Building the driver as loadable module
|
|
|
|
To build the driver as a loadable kernel module you have to
|
|
reconfigure the kernel to activate network support by
|
|
|
|
make menuconfig
|
|
|
|
Choose "Loadable module support --->", then select "Enable loadable
|
|
module support".
|
|
|
|
Choose "Network Device Support --->", select "Ethernet (10 or
|
|
100Mbit)". Then select "EISA, VLB, PCI and on board controllers", and
|
|
choose "SiS 900/7016 PCI Fast Ethernet Adapter support" to "M".
|
|
|
|
After reconfiguring the kernel, you can make the driver module by
|
|
|
|
make modules
|
|
|
|
The driver should be compiled with no errors. After compiling the
|
|
driver, the driver can be installed to proper place by
|
|
|
|
make modules_install
|
|
|
|
Load the driver into kernel by
|
|
|
|
insmod sis900
|
|
|
|
When loading the driver into memory, some information message can be
|
|
view by
|
|
|
|
dmesg
|
|
|
|
or
|
|
cat /var/log/message
|
|
|
|
If the driver is loaded properly you will have messages similar to
|
|
this:
|
|
|
|
sis900.c: v1.07.06 11/07/2000
|
|
eth0: SiS 900 PCI Fast Ethernet at 0xd000, IRQ 10, 00:00:e8:83:7f:a4.
|
|
eth0: SiS 900 Internal MII PHY transceiver found at address 1.
|
|
eth0: Using SiS 900 Internal MII PHY as default
|
|
|
|
showing the version of the driver and the results of probing routine.
|
|
|
|
Once the driver is loaded, network can be brought up by
|
|
|
|
/sbin/ifconfig eth0 IPADDR broadcast BROADCAST netmask NETMASK media TYPE
|
|
|
|
where IPADDR, BROADCAST, NETMASK are your IP address, broadcast
|
|
address and netmask respectively. TYPE is used to set medium type used
|
|
by the device. Typical values are "10baseT"(twisted-pair 10Mbps
|
|
Ethernet) or "100baseT" (twisted-pair 100Mbps Ethernet). For more
|
|
information on how to configure network interface, please refer to
|
|
Networking HOWTO.
|
|
|
|
The link status is also shown by kernel messages. For example, after
|
|
the network interface is activated, you may have the message:
|
|
|
|
eth0: Media Link On 100mbps full-duplex
|
|
|
|
If you try to unplug the twist pair (TP) cable you will get
|
|
|
|
eth0: Media Link Off
|
|
|
|
indicating that the link is failed.
|
|
_________________________________________________________________
|
|
|
|
Building the driver into kernel
|
|
|
|
If you want to make the driver into kernel, choose "Y" rather than "M"
|
|
on "SiS 900/7016 PCI Fast Ethernet Adapter support" when configuring
|
|
the kernel. Build the kernel image in the usual way
|
|
|
|
make clean
|
|
|
|
make bzlilo
|
|
|
|
Next time the system reboot, you have the driver in memory.
|
|
_________________________________________________________________
|
|
|
|
Chapter 6. Known Problems and Bugs
|
|
|
|
There are some known problems and bugs. If you find any other bugs
|
|
please mail to lcchang@sis.com.tw
|
|
|
|
1. AM79C901 HomePNA PHY is not thoroughly tested, there may be some
|
|
bugs in the "on the fly" change of transceiver.
|
|
2. A bug is hidden somewhere in the receive buffer management code,
|
|
the bug causes NULL pointer reference in the kernel. This fault is
|
|
caught before bad things happen and reported with the message:
|
|
eth0: NULL pointer encountered in Rx ring, skipping which can be
|
|
viewed with dmesg or cat /var/log/message.
|
|
3. The media type change from 10Mbps to 100Mbps twisted-pair ethernet
|
|
by ifconfig causes the media link down.
|
|
_________________________________________________________________
|
|
|
|
Chapter 7. Revision History
|
|
|
|
* November 13, 2000, Revision 1.07, seventh release, 630E problem
|
|
fixed and further clean up.
|
|
* November 4, 1999, Revision 1.06, Second release, lots of clean up
|
|
and optimization.
|
|
* August 8, 1999, Revision 1.05, Initial Public Release
|
|
_________________________________________________________________
|
|
|
|
Chapter 8. Acknowledgements
|
|
|
|
This driver was originally derived form Donald Becker's pci-skeleton
|
|
and rtl8139 drivers. Donald also provided various suggestion regarded
|
|
with improvements made in revision 1.06.
|
|
|
|
The 1.05 revision was created by Jim Huang, AMD 79c901 support was
|
|
added by Chin-Shan Li.
|