1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-30 12:04:07 +00:00
freebsd/sys/pci
Matt Jacob 78dda2ae0c Add first pass of the Intel Gigabit Ethernet (wiseman) driver. This
driver seems relatively functional, but could use some souping up,
particularly in the performance area. This has both NetBSD and FreeBSD
attachment code and a fair amount of effort has been put into making
it easy to port to different *BSD platforms.

The basic design is a one tfd per mbuf transmit (with no transmit
related interrupts- tfds are gc'd as needed). The receive ring
uses a 2K buffer per rfd with a +2 byte adjust for the ethernet
header (so the payload is aligned). There's support that *almost*
works for doing large packets- the rfd chaining code works, but there's
some problem with getting good checksums at the IP reassembly level
(ditto for doing short tfd's too).

The chip has support for TCP checksums insertion for transmit and
TCP checksum calculation on receive (for both you have to do some
appropriate backoff && twiddling), but this isn't in place.

This is nearly entirely reverse engineered from the released Intel
driver, so there's a lot of "We have to do this but do not know why"
stuff. There is somebody who has the chip specs who works in FreeBSD
but they're being a bit standoffish about even sharing hints which
is somewhat annoying. It's also apparent that all I had to work with
were the first rev boards.

This driver has been lightly tested on intel && alpha, but only
point-to-point. There may be some issues with switches- use of
boot time environment variables that override EEPROM settings
(e.g., 'set wx_ilos=1' which inverts the sense of optical signal
loss) may help with this.

I had this out for review for three weeks, and nobody said anything
negative or positive, ergo, this checkin has no 'reviewed by' field
which I would have preferred.
2000-01-04 11:12:42 +00:00
..
adv_pci.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
adw_pci.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ahc_pci.c When booting verbose, indicate if we are using manual termination 1999-12-12 04:54:14 +00:00
alpm.c Remove the 'ivars' arguement to device_add_child() and 1999-12-03 08:41:24 +00:00
amd.c Properly set the alignment argument to bus_dma_tag_create(). If we 1999-08-16 01:52:21 +00:00
amd.h First cut at a driver for the amd53c974 PCI SCSI host adapter. This 1999-05-22 21:50:40 +00:00
cy_pci.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
cy_pcireg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
dc21040reg.h s/Id/FreeBSD/ 1999-08-09 12:52:49 +00:00
ida_pci.c Removal of sys/device.h 1999-10-05 21:19:41 +00:00
ide_pci.c Remove some horrible #if 0'd code that has no hope of working now. It 1999-12-12 14:47:23 +00:00
ide_pcireg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
if_ar_p.c Add support for the PCI version of the Digi SYNC/570i cards. 1999-10-17 09:40:04 +00:00
if_dc.c It appears that under certain circumstances that I still can't quite pin 2000-01-03 15:28:47 +00:00
if_dcreg.h Fix some problems reported by Mike Pritchard: 1999-12-13 21:45:13 +00:00
if_de.c Remove NBPF conditionality of bpf calls in most of our network drivers. 1999-09-25 12:06:01 +00:00
if_devar.h A little more tidying up. 1999-08-09 14:43:39 +00:00
if_en_pci.c Clean up after removing sys/eventhandler.h from sys/systm.h at the last 1999-08-21 22:10:49 +00:00
if_fpa.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
if_fxp.c Make the fxp driver work on alpha, rather than panic the machine on boot 1999-09-30 19:03:12 +00:00
if_fxpreg.h Make the fxp driver work on alpha, rather than panic the machine on boot 1999-09-30 19:03:12 +00:00
if_fxpvar.h Make the fxp driver work on alpha, rather than panic the machine on boot 1999-09-30 19:03:12 +00:00
if_lnc_p.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
if_mn.c Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
if_rl.c Fix a small typo in the comments. 1999-12-28 06:04:29 +00:00
if_rlreg.h Make some tweaks to the RealTek driver: 1999-10-21 19:42:03 +00:00
if_sf.c Modify the Adaptec "starfire" driver to reset the PHY on the MII bus 1999-12-05 20:02:45 +00:00
if_sfreg.h Modify the Adaptec "starfire" driver to reset the PHY on the MII bus 1999-12-05 20:02:45 +00:00
if_sis.c Change contigmalloc() lower memory bound from 1MB to 0 to improve 1999-09-25 17:29:02 +00:00
if_sisreg.h This commit adds driver support for the Silicon Integrated Systems 1999-09-05 21:01:03 +00:00
if_sk.c Call sk_start() at the end of sk_intr() if there's packets in the 1999-09-25 04:50:27 +00:00
if_skreg.h Fix the mechanism used to choose the unit numbers for the IP interfaces 1999-09-18 04:01:31 +00:00
if_sr_p.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
if_ste.c Spruce up the Sundance ST201 driver: 1999-12-07 20:14:42 +00:00
if_stereg.h Spruce up the Sundance ST201 driver: 1999-12-07 20:14:42 +00:00
if_ti.c As suggested by phk, unconditionalize BPF support in these drivers. Since 1999-09-23 03:32:57 +00:00
if_tireg.h Update the Tigon driver firmware images to the latest release from 1999-09-22 06:43:16 +00:00
if_tl.c Change contigmalloc() lower memory bound from 1MB to 0 to improve 1999-09-25 17:29:02 +00:00
if_tlreg.h Make some small performance tweaks to the tl driver. This should hopefully 1999-09-19 22:39:24 +00:00
if_tx.c Change incorrect NULLs to 0s 1999-12-21 11:14:12 +00:00
if_txvar.h Added code to enable BusMaster operations. 1999-10-29 09:56:52 +00:00
if_vr.c Change contigmalloc() lower memory bound from 1MB to 0 to improve 1999-09-25 17:29:02 +00:00
if_vrreg.h Convert the VIA Rhine driver to miibus. 1999-09-19 22:03:31 +00:00
if_vx_pci.c Clean up after removing sys/eventhandler.h from sys/systm.h at the last 1999-08-21 22:10:49 +00:00
if_wb.c Change contigmalloc() lower memory bound from 1MB to 0 to improve 1999-09-25 17:29:02 +00:00
if_wbreg.h Convert the Adaptec and Winbond drivers to miibus. 1999-08-30 23:08:32 +00:00
if_wx.c Add first pass of the Intel Gigabit Ethernet (wiseman) driver. This 2000-01-04 11:12:42 +00:00
if_wxreg.h Add first pass of the Intel Gigabit Ethernet (wiseman) driver. This 2000-01-04 11:12:42 +00:00
if_wxvar.h Add first pass of the Intel Gigabit Ethernet (wiseman) driver. This 2000-01-04 11:12:42 +00:00
if_xl.c It appears that under certain circumstances that I still can't quite pin 2000-01-03 15:28:47 +00:00
if_xlreg.h Update the xl driver to recognize yet another 3c905B/3c905C class NIC: 1999-12-16 18:33:57 +00:00
intpm.c Remove the 'ivars' arguement to device_add_child() and 1999-12-03 08:41:24 +00:00
intpmreg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
isp_pci.c Add in an isp_tdebug environment variable. Clean up some debugging 2000-01-04 03:41:40 +00:00
locate.pl MFS: Change path to perl. 1999-08-30 14:41:09 +00:00
meteor_reg.h Convert DEVFS hooks in (most) drivers to make_dev(). 1999-08-23 20:59:21 +00:00
meteor.c Remove five now unused fields from struct cdevsw. They should never 1999-09-25 18:24:47 +00:00
ncr.c Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
ncrreg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ohci_pci.c Remove the 'ivars' arguement to device_add_child() and 1999-12-03 08:41:24 +00:00
pccbb.c Initial import of cardbus bridge driver (cbb) from the latest 1999-11-18 07:14:54 +00:00
pccbbreg.h Initial import of cardbus bridge driver (cbb) from the latest 1999-11-18 07:14:54 +00:00
pccbbvar.h Initial import of cardbus bridge driver (cbb) from the latest 1999-11-18 07:14:54 +00:00
pci_compat.c * Implement bus_set/get/delete_resource for pci. 1999-10-14 21:38:33 +00:00
pci_if.m $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pci.c Make the usb and ide/ata device identification a little saner. Rather than 1999-12-10 17:44:22 +00:00
pcic_p.c Fill in the blanks for some of the Texas Instruments cardbus controllers. 1999-12-31 07:22:24 +00:00
pcic_p.h Fill in the blanks for some of the Texas Instruments cardbus controllers. 1999-12-31 07:22:24 +00:00
pcireg.h Add the 16550 programming interface code for PCIS_SIMPLECOMM_UART. 1999-10-09 16:00:56 +00:00
pcisupport.c Update NeoMagic entries. 2000-01-03 10:04:01 +00:00
pcivar.h Make the usb and ide/ata device identification a little saner. Rather than 1999-12-10 17:44:22 +00:00
scsiiom.c Use [u]intptr_t instead of [unsigned] long to convert and/or represent 1998-08-10 17:21:49 +00:00
simos.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
simos.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ti_fw2.h Update the Tigon driver firmware images to the latest release from 1999-09-22 06:43:16 +00:00
ti_fw.h Update the Tigon driver firmware images to the latest release from 1999-09-22 06:43:16 +00:00
uhci_pci.c Remove the 'ivars' arguement to device_add_child() and 1999-12-03 08:41:24 +00:00
xmaciireg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
xrpu.c Remove five now unused fields from struct cdevsw. They should never 1999-09-25 18:24:47 +00:00