From owner-freebsd-hackers Tue Jul 20 21:24:51 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from skynet.ctr.columbia.edu (skynet.ctr.columbia.edu [128.59.64.70]) by hub.freebsd.org (Postfix) with SMTP id 32B88151C9; Tue, 20 Jul 1999 21:24:40 -0700 (PDT) (envelope-from wpaul@skynet.ctr.columbia.edu) Received: (from wpaul@localhost) by skynet.ctr.columbia.edu (8.6.12/8.6.9) id AAA29810; Wed, 21 Jul 1999 00:26:54 -0400 From: Bill Paul Message-Id: <199907210426.AAA29810@skynet.ctr.columbia.edu> Subject: Call for testers: Adaptec AIC-6915 fast ethernet driver To: hackers@freebsd.org, hardware@freebsd.org Date: Wed, 21 Jul 1999 00:26:53 -0400 (EDT) X-Mailer: ELM [version 2.4 PL24] Content-Type: text Content-Length: 4495 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG A driver for FreeBSD 3.x and 4.0-current is now available for testing for fast ethernet adapters based on the Adaptec AIC-6915 "Starfire" ethernet controller. This includes the following Adaptec "Duralink" models: - ANA-62011 single port 64-bit adapter - ANA-62022 dual port 64-bit adapter - ANA-62044 quad port 64-bit adapter - ANA-69011 single port 32-bit adapter - ANA-62020 single port 100baseFX These are Adaptec's replacements for its older DEC 21x4x-based multiport line of adapters. All cards support 10/100 speeds in full or half duplex. The multiport cards consist of multiple AIC-6915 chips linkec via a PCI to PCI bridge. Currently I have only tested the ANA-62022 dual port card, however all of them should work equally well. The 64-bit cards will work in a 32-bit slot on most newer machines. The Starfire supports a great many features including a 16-entry perfect RX filter, a 512-bit multicast hash table filter, a 512-bit high priority hash table, VLAN filtering, multiple RX and TX queues, and several different descriptor formats. There is also a programmable frame processor, however I haven't figured out how to use it. The FreeBSD driver uses a frame-based transmit descriptor (up to 14 packet fragments in one descriptor) and the producer/consumer queueing model with TX and RX completion descriptor queues. The perfect filter and hash filter are used for hardware multicast filtering. Support for BPF mode and promiscuous mode is also provided. The Starfire also supports TCP/IP checksum offload, however this is not yet implemented in this driver. The receive ring is programmed to have 256 descriptors. The transmit ring uses 128. This should be plenty for most server-based applications. Unfortunately, in spite of all the features in the Starfire, the chip requires receive buffers to be longword aligned, which means that received packets have to be copied in order to achieve proper payload alignemnt (which is handy on the x86 and required on the alpha). You'd think if they could go to the trouble of designing in special descriptor formats for MS-DOS and OS/2, they could handle DMAing to unaligned addresses. Oh well. This driver should work on both FreeBSD/i386 and FreeBSD/alpha. To add the driver to an existing FreeBSD 3.x system, do the following: - Download if_sf.c and if_sfreg.h from http://www.freebsd.org/~wpaul/Adaptec/3.0 and put them in /sys/pci. - Edit /sys/conf/files and add a line that says: pci/if_sf.c optional sf device-driver - Edit your kernel config file (e.g. /sys/i386/conf) and add a line that says: device sf0 - Config and compile a new kernel and boot it. To add the driver to an existing FreeBSD 4.0-current system, do one the following: - Download if_sf.c and if_sfreg.h from http://www.freebsd.org/~wpaul/Adaptec/4.0 and put them in /sys/pci. - Edit /sys/conf/files and add a line that says: pci/if_sf.c optional sf - Edit your kernel config file (e.g. /sys/i386/conf) and add a line that says: device sf0 - Config and compile a new kernel and boot it. Alternatively, if you have FreeBSD 4.0-current running on the x86 platform and don't want to recompile your kernel, you can try the following: - Download sf.ko from http://www.freebsd.org/~wpaul/Adaptec/4.0 and put it in /modules. - Edit /boot/defaults/loader.conf and add a line to the device driver modules section that says: sf_load="YES" # Adaptec PCI ethernet - Reboot The sf.ko module is compiled without BPF support. A Makefile is provided in the 4.0 directory which should allow you to recompile the module on both the x86 and alpha platforms. As usual, if you have any problems, please report them to wpaul@skynet.ctr.columbia.edu. Remember to provide lots of detailed information. Vote early and vote often. The sooner people bang on this a little, the sooner it will go into the tree. No user-servicable parts inside. Offer void where prohibited by law. Operators are standing by. -Bill -- ============================================================================= -Bill Paul (212) 854-6020 | System Manager, Master of Unix-Fu Work: wpaul@ctr.columbia.edu | Center for Telecommunications Research Home: wpaul@skynet.ctr.columbia.edu | Columbia University, New York City ============================================================================= "It is not I who am crazy; it is I who am mad!" - Ren Hoek, "Space Madness" ============================================================================= To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message