**
**
**  VIA Rhine Family Fast Ethernet Adapter
**
**  FreeBSD driver
**
**  v3.14 May. 2003
**
** 
         
Introduction:
=============

  The Fast Ethernet 10/100M FreeBSD driver is enclosed. This document shows you how to 
  setup the driver.

Contents of the Subdirectory:
=============================

    freebsd.txt           This file.
    freebsd.tar           Tar file include the following file list 
    if_fet.c              The FreeBSD driver source code
    if_fet.h              The FreeBSD driver header file

Installation:
=============

    1) Put the driver disc in Drive A. Under the prompt, type "mount_msdos /dev/fd0 /mnt".
       Then, type "cp /mnt/freebsd.tar /usr/src/sys/pci".

    2) Type the following commands:
       (a) "cd /usr/src/sys/pci"
       (b) "tar xvf freebsd.tar"
       (c) "cd /usr/src/sys/conf"
       (d) "ee files"

    3) Under editing file 'files'
       (a) In FREEBSD 3.x , please add one line as below:
           "pci/if_fet.c		optional	fet	device-driver"
           and mark this line as below:
           "#pci/if_vr.c		optional	vr	device-driver"
       (b) In FREEBSD 4.x , please add one line as below:
           "pci/if_fet.c		optional	fet"
           and mark this line as below:
           "#pci/if_vr.c		optional	vr"
       Then, save the file. It's important to mark if_vr.c, or you will use the
       old driver.
       			        
    4) Type the following commands:
       (a) "cd /usr/src/sys/i386/conf"
       (b) "cp GENERIC SERVER"
       (c) "ee SERVER"
       
    5) Under editing file 'SERVER', finding the division of NIC setting, and insert one line
       as below:
       "device fet0"
       And ,mark this line as below:
       "#device vr0"
       Then, save the file. It's important to mark device vr0, or you will use the
       old driver.

    6) Now, it's ready to recompile kernel; type the following commands:
       (a) cd /usr/src/sys/i386/conf
       (b) config SERVER
       (c) cd /usr/src/sys/compile/SERVER
       (d) make depend all install

    7) Before rebooting, make sure the network-related files under /etc are well-configured. 
       The files are listed below:
       (a) /etc/hosts
       (b) /etc/resolv.conf
       (c) /etc/host.conf
       (d) /etc/rc.conf

    8) Now, get ready to reboot, type "sync;sync;sync", and "shutdown -r now".
       
    9) Under the newly compiled kernel, type "ifconfig -a", and you can see a new device fet0 (not vr0).

Speed and duplex mode Setting:
==============================
You can use ifconfig command to force speed and duplex mode of NIC,
where # below is network interface number. We only support this function in
FreeBSD 4.x now.
(eg: Use "ifconfig fet0 media 100baseTX" command to force NIC to 100Mbps half-duplex mode)

1) Auto Mode (Autonegotiation)
    ifconfig fet# media auto

2) 100Mbps full-duplex mode
    ifconfig fet# media 100baseTX mediaopt full-duplex

3) 100Mbps half-duplex mode
    ifconfig fet# media 100baseTX

4) 10Mbps full-duplex mode
    ifconfig fet# media 10baseT/UTP mediaopt full-duplex

5) 10Mbps half-duplex mode
    ifconfig fet# media 10baseT/UTP


Driver tunable parameters (Experts only)
========================================

    You can tune up the performance of driver by modified the pre-define 
constants in header file if_fet.h.

DMA_LENGTH_DEF:
DMA_LENGTH_DEF is used for controlling the DMA length.
   0: 8 DWORDs 
   1: 16 DWORDs (Default)
   2: 32 DWORDs
   3: 64 DWORDs
   4: 128 DWORDs
   5: 256 DWORDs
   6: SF(flush till emply)
   7: SF(flush till emply)

TX_THRESH_DEF:
TX_THRESH_DEF is used for controlling the transmit fifo threshold.   
   0: indicate the txfifo threshold is 128 bytes. (Default)
   1: indicate the txfifo threshold is 256 bytes.
   2: indicate the txfifo threshold is 512 bytes.
   3: indicate the txfifo threshold is 1024 bytes.
   4: indicate that we use store and forward


QPACKET_DEF:
QPACKET_DEF is used for controlling the enable/disable the transmit 
   status write back queue.   
   0: Disable 
   1: Enable (Default)

VAL_PKT_LEN:
VAL_PKT_LEN is used to drop 802.3 frame with invalid length.
   0: Disable (Default)
   1: Enable 
