|
@@ -1,585 +0,0 @@
|
|
|
-<?xml version="1.0" encoding="UTF-8"?>
|
|
|
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
|
|
- "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
|
|
|
-
|
|
|
-<book id="SiS900Guide">
|
|
|
-
|
|
|
-<bookinfo>
|
|
|
-
|
|
|
-<title>SiS 900/7016 Fast Ethernet Device Driver</title>
|
|
|
-
|
|
|
-<authorgroup>
|
|
|
-<author>
|
|
|
-<firstname>Ollie</firstname>
|
|
|
-<surname>Lho</surname>
|
|
|
-</author>
|
|
|
-
|
|
|
-<author>
|
|
|
-<firstname>Lei Chun</firstname>
|
|
|
-<surname>Chang</surname>
|
|
|
-</author>
|
|
|
-</authorgroup>
|
|
|
-
|
|
|
-<edition>Document Revision: 0.3 for SiS900 driver v1.06 & v1.07</edition>
|
|
|
-<pubdate>November 16, 2000</pubdate>
|
|
|
-
|
|
|
-<copyright>
|
|
|
- <year>1999</year>
|
|
|
- <holder>Silicon Integrated System Corp.</holder>
|
|
|
-</copyright>
|
|
|
-
|
|
|
-<legalnotice>
|
|
|
- <para>
|
|
|
- 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.
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- 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.
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- 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
|
|
|
- </para>
|
|
|
-</legalnotice>
|
|
|
-
|
|
|
-<abstract>
|
|
|
-<para>
|
|
|
-This document gives some information on installation and usage of SiS 900/7016
|
|
|
-device driver under Linux.
|
|
|
-</para>
|
|
|
-</abstract>
|
|
|
-
|
|
|
-</bookinfo>
|
|
|
-
|
|
|
-<toc></toc>
|
|
|
-
|
|
|
-<chapter id="intro">
|
|
|
- <title>Introduction</title>
|
|
|
-
|
|
|
-<para>
|
|
|
-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
|
|
|
-<xref linkend="install"/>. If you are intended to
|
|
|
-use the driver for earlier kernels, you are on your own.
|
|
|
-</para>
|
|
|
-
|
|
|
-<para>
|
|
|
-The driver is tested with usual TCP/IP applications including
|
|
|
-FTP, Telnet, Netscape etc. and is used constantly by the developers.
|
|
|
-</para>
|
|
|
-
|
|
|
-<para>
|
|
|
-Please send all comments/fixes/questions to
|
|
|
-<ulink url="mailto:lcchang@sis.com.tw">Lei-Chun Chang</ulink>.
|
|
|
-</para>
|
|
|
-</chapter>
|
|
|
-
|
|
|
-<chapter id="changes">
|
|
|
- <title>Changes</title>
|
|
|
-
|
|
|
-<para>
|
|
|
-Changes made in Revision 1.07
|
|
|
-
|
|
|
-<orderedlist>
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Separation of sis900.c and sis900.h in order to move most
|
|
|
-constant definition to sis900.h (many of those constants were
|
|
|
-corrected)
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Clean up PCI detection, the pci-scan from Donald Becker were not used,
|
|
|
-just simple pci_find_*.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-MII detection is modified to support multiple mii transceiver.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Bugs in read_eeprom, mdio_* were removed.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Lot of sis900 irrelevant comments were removed/changed and
|
|
|
-more comments were added to reflect the real situation.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Clean up of physical/virtual address space mess in buffer
|
|
|
-descriptors.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Better transmit/receive error handling.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-The driver now uses zero-copy single buffer management
|
|
|
-scheme to improve performance.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Names of variables were changed to be more consistent.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Clean up of auo-negotiation and timer code.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Automatic detection and change of PHY on the fly.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Bug in mac probing fixed.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Fix 630E equalier problem by modifying the equalizer workaround rule.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Support for ICS1893 10/100 Interated PHYceiver.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Support for media select by ifconfig.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Added kernel-doc extratable documentation.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-</orderedlist>
|
|
|
-</para>
|
|
|
-</chapter>
|
|
|
-
|
|
|
-<chapter id="tested">
|
|
|
- <title>Tested Environment</title>
|
|
|
-
|
|
|
-<para>
|
|
|
-This driver is developed on the following hardware
|
|
|
-
|
|
|
-<itemizedlist>
|
|
|
-<listitem>
|
|
|
-
|
|
|
-<para>
|
|
|
-Intel Celeron 500 with SiS 630 (rev 02) chipset
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-<listitem>
|
|
|
-
|
|
|
-<para>
|
|
|
-SiS 900 (rev 01) and SiS 7016/7014 Fast Ethernet Card
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-</itemizedlist>
|
|
|
-
|
|
|
-and tested with these software environments
|
|
|
-
|
|
|
-<itemizedlist>
|
|
|
-<listitem>
|
|
|
-
|
|
|
-<para>
|
|
|
-Red Hat Linux version 6.2
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-<listitem>
|
|
|
-
|
|
|
-<para>
|
|
|
-Linux kernel version 2.4.0
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-<listitem>
|
|
|
-
|
|
|
-<para>
|
|
|
-Netscape version 4.6
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-<listitem>
|
|
|
-
|
|
|
-<para>
|
|
|
-NcFTP 3.0.0 beta 18
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-<listitem>
|
|
|
-
|
|
|
-<para>
|
|
|
-Samba version 2.0.3
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-</itemizedlist>
|
|
|
-
|
|
|
-</para>
|
|
|
-
|
|
|
-</chapter>
|
|
|
-
|
|
|
-<chapter id="files">
|
|
|
-<title>Files in This Package</title>
|
|
|
-
|
|
|
-<para>
|
|
|
-In the package you can find these files:
|
|
|
-</para>
|
|
|
-
|
|
|
-<para>
|
|
|
-<variablelist>
|
|
|
-
|
|
|
-<varlistentry>
|
|
|
-<term>sis900.c</term>
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Driver source file in C
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-</varlistentry>
|
|
|
-
|
|
|
-<varlistentry>
|
|
|
-<term>sis900.h</term>
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Header file for sis900.c
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-</varlistentry>
|
|
|
-
|
|
|
-<varlistentry>
|
|
|
-<term>sis900.sgml</term>
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-DocBook SGML source of the document
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-</varlistentry>
|
|
|
-
|
|
|
-<varlistentry>
|
|
|
-<term>sis900.txt</term>
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-Driver document in plain text
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-</varlistentry>
|
|
|
-
|
|
|
-</variablelist>
|
|
|
-</para>
|
|
|
-</chapter>
|
|
|
-
|
|
|
-<chapter id="install">
|
|
|
- <title>Installation</title>
|
|
|
-
|
|
|
-<para>
|
|
|
-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
|
|
|
-<ulink url="http://ftp.kernel.org/pub/linux/kernel/">official kernel ftp site</ulink>
|
|
|
-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
|
|
|
-<ulink url="http://www.tldp.org/">Ethernet HOWTO</ulink> and
|
|
|
-<ulink url="http://www.tldp.org/">Networking HOWTO</ulink> available from
|
|
|
-Linux Documentation Project (LDP).
|
|
|
-</para>
|
|
|
-
|
|
|
-<para>
|
|
|
-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
|
|
|
-<filename>sis900.c</filename> and <filename>sis900.h</filename>
|
|
|
-copied into <filename class="directory">/usr/src/linux/drivers/net/</filename> first.
|
|
|
-There are two alternative ways to install the driver
|
|
|
-</para>
|
|
|
-
|
|
|
-<sect1>
|
|
|
-<title>Building the driver as loadable module</title>
|
|
|
-
|
|
|
-<para>
|
|
|
-To build the driver as a loadable kernel module you have to reconfigure
|
|
|
-the kernel to activate network support by
|
|
|
-</para>
|
|
|
-
|
|
|
-<para><screen>
|
|
|
-make menuconfig
|
|
|
-</screen></para>
|
|
|
-
|
|
|
-<para>
|
|
|
-Choose <quote>Loadable module support ---></quote>,
|
|
|
-then select <quote>Enable loadable module support</quote>.
|
|
|
-</para>
|
|
|
-
|
|
|
-<para>
|
|
|
-Choose <quote>Network Device Support ---></quote>, select
|
|
|
-<quote>Ethernet (10 or 100Mbit)</quote>.
|
|
|
-Then select <quote>EISA, VLB, PCI and on board controllers</quote>,
|
|
|
-and choose <quote>SiS 900/7016 PCI Fast Ethernet Adapter support</quote>
|
|
|
-to <quote>M</quote>.
|
|
|
-</para>
|
|
|
-
|
|
|
-<para>
|
|
|
-After reconfiguring the kernel, you can make the driver module by
|
|
|
-</para>
|
|
|
-
|
|
|
-<para><screen>
|
|
|
-make modules
|
|
|
-</screen></para>
|
|
|
-
|
|
|
-<para>
|
|
|
-The driver should be compiled with no errors. After compiling the driver,
|
|
|
-the driver can be installed to proper place by
|
|
|
-</para>
|
|
|
-
|
|
|
-<para><screen>
|
|
|
-make modules_install
|
|
|
-</screen></para>
|
|
|
-
|
|
|
-<para>
|
|
|
-Load the driver into kernel by
|
|
|
-</para>
|
|
|
-
|
|
|
-<para><screen>
|
|
|
-insmod sis900
|
|
|
-</screen></para>
|
|
|
-
|
|
|
-<para>
|
|
|
-When loading the driver into memory, some information message can be view by
|
|
|
-</para>
|
|
|
-
|
|
|
-<para>
|
|
|
-<screen>
|
|
|
-dmesg
|
|
|
-</screen>
|
|
|
-
|
|
|
-or
|
|
|
-
|
|
|
-<screen>
|
|
|
-cat /var/log/message
|
|
|
-</screen>
|
|
|
-</para>
|
|
|
-
|
|
|
-<para>
|
|
|
-If the driver is loaded properly you will have messages similar to this:
|
|
|
-</para>
|
|
|
-
|
|
|
-<para><screen>
|
|
|
-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
|
|
|
-</screen></para>
|
|
|
-
|
|
|
-<para>
|
|
|
-showing the version of the driver and the results of probing routine.
|
|
|
-</para>
|
|
|
-
|
|
|
-<para>
|
|
|
-Once the driver is loaded, network can be brought up by
|
|
|
-</para>
|
|
|
-
|
|
|
-<para><screen>
|
|
|
-/sbin/ifconfig eth0 IPADDR broadcast BROADCAST netmask NETMASK media TYPE
|
|
|
-</screen></para>
|
|
|
-
|
|
|
-<para>
|
|
|
-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
|
|
|
-<ulink url="http://www.tldp.org/">Networking HOWTO</ulink>.
|
|
|
-</para>
|
|
|
-
|
|
|
-<para>
|
|
|
-The link status is also shown by kernel messages. For example, after the
|
|
|
-network interface is activated, you may have the message:
|
|
|
-</para>
|
|
|
-
|
|
|
-<para><screen>
|
|
|
-eth0: Media Link On 100mbps full-duplex
|
|
|
-</screen></para>
|
|
|
-
|
|
|
-<para>
|
|
|
-If you try to unplug the twist pair (TP) cable you will get
|
|
|
-</para>
|
|
|
-
|
|
|
-<para><screen>
|
|
|
-eth0: Media Link Off
|
|
|
-</screen></para>
|
|
|
-
|
|
|
-<para>
|
|
|
-indicating that the link is failed.
|
|
|
-</para>
|
|
|
-</sect1>
|
|
|
-
|
|
|
-<sect1>
|
|
|
-<title>Building the driver into kernel</title>
|
|
|
-
|
|
|
-<para>
|
|
|
-If you want to make the driver into kernel, choose <quote>Y</quote>
|
|
|
-rather than <quote>M</quote> on
|
|
|
-<quote>SiS 900/7016 PCI Fast Ethernet Adapter support</quote>
|
|
|
-when configuring the kernel. Build the kernel image in the usual way
|
|
|
-</para>
|
|
|
-
|
|
|
-<para><screen>
|
|
|
-make clean
|
|
|
-
|
|
|
-make bzlilo
|
|
|
-</screen></para>
|
|
|
-
|
|
|
-<para>
|
|
|
-Next time the system reboot, you have the driver in memory.
|
|
|
-</para>
|
|
|
-
|
|
|
-</sect1>
|
|
|
-</chapter>
|
|
|
-
|
|
|
-<chapter id="problems">
|
|
|
- <title>Known Problems and Bugs</title>
|
|
|
-
|
|
|
-<para>
|
|
|
-There are some known problems and bugs. If you find any other bugs please
|
|
|
-mail to <ulink url="mailto:lcchang@sis.com.tw">lcchang@sis.com.tw</ulink>
|
|
|
-
|
|
|
-<orderedlist>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-AM79C901 HomePNA PHY is not thoroughly tested, there may be some
|
|
|
-bugs in the <quote>on the fly</quote> change of transceiver.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-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:
|
|
|
-
|
|
|
-<computeroutput>
|
|
|
-eth0: NULL pointer encountered in Rx ring, skipping
|
|
|
-</computeroutput>
|
|
|
-
|
|
|
-which can be viewed with <literal remap="tt">dmesg</literal> or
|
|
|
-<literal remap="tt">cat /var/log/message</literal>.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-The media type change from 10Mbps to 100Mbps twisted-pair ethernet
|
|
|
-by ifconfig causes the media link down.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-</orderedlist>
|
|
|
-</para>
|
|
|
-</chapter>
|
|
|
-
|
|
|
-<chapter id="RHistory">
|
|
|
- <title>Revision History</title>
|
|
|
-
|
|
|
-<para>
|
|
|
-<itemizedlist>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-November 13, 2000, Revision 1.07, seventh release, 630E problem fixed
|
|
|
-and further clean up.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-November 4, 1999, Revision 1.06, Second release, lots of clean up
|
|
|
-and optimization.
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-<listitem>
|
|
|
-<para>
|
|
|
-August 8, 1999, Revision 1.05, Initial Public Release
|
|
|
-</para>
|
|
|
-</listitem>
|
|
|
-
|
|
|
-</itemizedlist>
|
|
|
-</para>
|
|
|
-</chapter>
|
|
|
-
|
|
|
-<chapter id="acknowledgements">
|
|
|
- <title>Acknowledgements</title>
|
|
|
-
|
|
|
-<para>
|
|
|
-This driver was originally derived form
|
|
|
-<ulink url="mailto:becker@cesdis1.gsfc.nasa.gov">Donald Becker</ulink>'s
|
|
|
-<ulink url="ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/kern-2.3/pci-skeleton.c"
|
|
|
->pci-skeleton</ulink> and
|
|
|
-<ulink url="ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/kern-2.3/rtl8139.c"
|
|
|
->rtl8139</ulink> drivers. Donald also provided various suggestion
|
|
|
-regarded with improvements made in revision 1.06.
|
|
|
-</para>
|
|
|
-
|
|
|
-<para>
|
|
|
-The 1.05 revision was created by
|
|
|
-<ulink url="mailto:cmhuang@sis.com.tw">Jim Huang</ulink>, AMD 79c901
|
|
|
-support was added by <ulink url="mailto:lcs@sis.com.tw">Chin-Shan Li</ulink>.
|
|
|
-</para>
|
|
|
-</chapter>
|
|
|
-
|
|
|
-<chapter id="functions">
|
|
|
-<title>List of Functions</title>
|
|
|
-!Idrivers/net/sis900.c
|
|
|
-</chapter>
|
|
|
-
|
|
|
-</book>
|