** ** ** VIA Rhine Family Fast Ethernet Adapter ** ** FreeBSD driver ** ** v3.10 Jan. 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