freebsd-skq/sys/pci
mjacob 181d5e327d 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
adw_pci.c
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
amd.h
cy_pci.c
cy_pcireg.h
dc21040reg.h
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
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
if_en_pci.c
if_fpa.c
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
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
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
if_sr_p.c
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
if_tireg.h
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
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
if_vx_pci.c
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
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
isp_pci.c Add in an isp_tdebug environment variable. Clean up some debugging 2000-01-04 03:41:40 +00:00
locate.pl
meteor_reg.h
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
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
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
simos.c
simos.h
ti_fw2.h
ti_fw.h
uhci_pci.c Remove the 'ivars' arguement to device_add_child() and 1999-12-03 08:41:24 +00:00
xmaciireg.h
xrpu.c Remove five now unused fields from struct cdevsw. They should never 1999-09-25 18:24:47 +00:00