summaryrefslogtreecommitdiffstats
path: root/sys/modules
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>1999-07-25 04:32:50 +0000
committerwpaul <wpaul@FreeBSD.org>1999-07-25 04:32:50 +0000
commit97307ab479f01e32a804d2373409fa9d33e57b4a (patch)
tree00d7c7170d40b5465143c9eaec52f2920fa55a91 /sys/modules
parentd4d099c14dc9cd65845505d1852e974126a29806 (diff)
downloadFreeBSD-src-97307ab479f01e32a804d2373409fa9d33e57b4a.zip
FreeBSD-src-97307ab479f01e32a804d2373409fa9d33e57b4a.tar.gz
This commit adds device driver support for Adaptec Duralink PCI fast
ethernet controllers based on the AIC-6915 "Starfire" controller chip. There are single port, dual port and quad port cards, plus one 100baseFX card. All are 64-bit PCI devices, except one single port model. The Starfire would be a very nice chip were it not for the fact that receive buffers have to be longword aligned. This requires buffer copying in order to achieve proper payload alignment on the alpha. Payload alignment is enforced on both the alpha and x86 platforms. The Starfire has several different DMA descriptor formats and transfer mechanisms. This driver uses frame descriptors for transmission which can address up to 14 packet fragments, and a single fragment descriptor for receive. It also uses the producer/consumer model and completion queues for both transmit and receive. The transmit ring has 128 descriptors and the receive ring has 256. This driver supports both FreeBSD/i386 and FreeBSD/alpha, and uses newbus so that it can be compiled as a loadable kernel module. Support for BPF and hardware multicast filtering is included.
Diffstat (limited to 'sys/modules')
-rw-r--r--sys/modules/Makefile4
-rw-r--r--sys/modules/sf/Makefile28
2 files changed, 30 insertions, 2 deletions
diff --git a/sys/modules/Makefile b/sys/modules/Makefile
index eaeced9..6be3e15 100644
--- a/sys/modules/Makefile
+++ b/sys/modules/Makefile
@@ -1,9 +1,9 @@
-# $Id: Makefile,v 1.66 1999/07/23 05:47:55 wpaul Exp $
+# $Id: Makefile,v 1.67 1999/07/24 20:55:04 wpaul Exp $
# XXX present but broken: atapi ip_mroute_mod joy pcic
SUBDIR= ax ccd cd9660 coda fdesc fxp if_disc if_ppp if_sl if_tun ipfw \
- kernfs mfs msdos mx nfs ntfs nullfs portal procfs sk ti tl \
+ kernfs mfs msdos mx nfs ntfs nullfs portal procfs sf sk ti tl \
umapfs union vn xl
# XXX some of these can move to the general case when de-i386'ed
diff --git a/sys/modules/sf/Makefile b/sys/modules/sf/Makefile
new file mode 100644
index 0000000..aa3df4c
--- /dev/null
+++ b/sys/modules/sf/Makefile
@@ -0,0 +1,28 @@
+# $Id: Makefile,v 1.1 1999/07/23 05:48:01 wpaul Exp $
+
+S = ${.CURDIR}/../..
+.PATH: $S/pci
+KMOD = sf
+SRCS = if_sf.c sf.h bpf.h opt_bdg.h device_if.h bus_if.h pci_if.h
+CLEANFILES += sf.h bpf.h opt_bdg.h device_if.h bus_if.h pci_if.h
+CFLAGS += ${DEBUG_FLAGS}
+
+sf.h:
+ echo "#define NFXP 1" > sf.h
+
+bpf.h:
+ echo "#define NBPF 1" > bpf.h
+
+opt_bdg.h:
+ touch opt_bdg.h
+
+device_if.h: $S/kern/makedevops.pl $S/kern/device_if.m
+ perl $S/kern/makedevops.pl -h $S/kern/device_if.m
+
+bus_if.h: $S/kern/makedevops.pl $S/kern/bus_if.m
+ perl $S/kern/makedevops.pl -h $S/kern/bus_if.m
+
+pci_if.h: $S/kern/makedevops.pl $S/pci/pci_if.m
+ perl $S/kern/makedevops.pl -h $S/pci/pci_if.m
+
+.include <bsd.kmod.mk>
OpenPOWER on IntegriCloud