aboutsummaryrefslogtreecommitdiff
path: root/sys/modules
diff options
context:
space:
mode:
authorBill Paul <wpaul@FreeBSD.org>1999-07-25 04:32:50 +0000
committerBill Paul <wpaul@FreeBSD.org>1999-07-25 04:32:50 +0000
commit691c1528642471e055f9dba40e16ff11eca73fd4 (patch)
tree20324d917a3c98298814d42af5291452b626ac01 /sys/modules
parenta2a0b22c90ecb1b1457b2c6b5679c62d6f91a204 (diff)
downloadsrc-691c1528642471e055f9dba40e16ff11eca73fd4.tar.gz
src-691c1528642471e055f9dba40e16ff11eca73fd4.zip
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.
Notes
Notes: svn path=/head/; revision=49076
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 eaeced95aebe..6be3e15795b4 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 000000000000..aa3df4c2e614
--- /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>