summaryrefslogtreecommitdiffstats
path: root/sys/pci
Commit message (Collapse)AuthorAgeFilesLines
* Defs for three (unused so far) bits in PCI command/status registerluigi2001-10-251-3/+3
| | | | were off by one bit.
* Implement TCP/IP checksum off-loading on send for the 3c905B and lateralc2001-10-221-1/+12
| | | | generation cards.
* Remove this driver from FreeBSD.mjacob2001-10-203-2962/+0
| | | | | | | | | | | | | | | | | Jonathon Lemon's driver (gx) is at least as fast and has more features and is likely to be better supported. It is also possible that Intel might support this chipset in FreeBSD with their own driver. Somewhat secretive and furtive rumblings from certain Yahoo employees have indicated that this might happen soon. I'm a little unhappy at the lack of discussion on the net list about this, or on developers, or on hackers, or the lack of mention on audit. This then leaves me to try and figure out the right thing to do. I've concluded that the right thing to do is to remove wx from FreeBSD, as this is probably best for FreeBSD.
* Whack on this soon to be deprecated driver.mjacob2001-10-153-32/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | What the heck, the OpenBSD version will benefit. 1. Add wx_txint_delay as a tunable (defaults to 5000 now, or ~5ms) and switch to using delayed TXDW interrupts. Since the chip continues to reload the TIDV with this value for each descriptor written back, this allows continued deferral of the actual interrupt until the last packet completes (assuming that 5ms between multiple packets transmitting is reasonable). 2. Add two other SYSCTL entities: hw.wx.dump_stats hw.wx.clear_stats to be used, hackey hackey, to get the watchdog routine to dump/clear the current softc statistics. Usage would be: sysctl -w hw.wx.dump_stats=UNIT to cause the current stats to be dumped for UNIT. 3. Attempt to clean up wx_detach routine so we don't panic. Well, things still panic, but given that the code is just like other NIC drivers, I suspect it's actually something elsewhere, like e1000phy, that's actually blowing up. 4. Skip the entire test for runt packets- after doing somet thinking and experimenting, I believe that the chip only doesn't like it if the whole frame to xmit is < 16 bytes- each TFD can be some fragment of that. This should improve performance a chunk because of all of the (14 byte ETHERHEADER + DATA) mbuf chains. 5. Keep track of total frame length. Try not to xmit an odd byte frame- this is supposed to get around some dumb Cisco switch problems. 6. On the last packet, also set Interrupt Delay && Report Packet Sent (see #1 above) 7. Attempt to do xmit garbage collection *first* in order to avoid setting IFF_OACTIVE if at all possible. MFC after: 1 week
* Note that this driver is soon to be deprecated and removed from FreeBSD.mjacob2001-10-091-1/+6
|
* Let's not kid ourselves- we don't *really* support jumbframes yet.mjacob2001-10-021-0/+7
| | | | | | We only support the size of frame we are currently allocating, which is MCLBYTES - sizeof (struct ether_header) usable, so don't set an MTU that would go over this.
* Various fixes and improvements- some from the folks at Sitara Networks (thx)mjacob2001-10-022-14/+34
|
* Remove all OpenBSD/NetBSD code. It was the right place to start from, butmjacob2001-10-022-646/+61
| | | | | | | | | | | | | | | | | | | | | | it now really gets in the way. This allows us to fix several problems- not least of which was problems of ordering about when you'd have a device softc for an miibus child available or not. Move some steps of things around. Put the ifnet/arpcom structure at the head of the softc (PR 29249). Don't do tx gc in the interrupt service routine- that seems to make things a bit more efficient. Enable jumbo support by default- but this version of 'jumbo' is broken because it really is just using multiple tfd/rfd's to match a packet, which will never be > CLSIZE anyway. This should begin the first steps toward cleaning this driver up. PR: 29249 MFC after: 1 week
* Do not call mii_pollstat() from within device tick routines; the statusjlemon2001-09-296-38/+28
| | | | | | information is updated by mii_tick(). Pointed out by: wpaul (a while back)
* Fix typo in a comment.luigi2001-09-271-1/+1
| | | | MFC-after: 3 days
* Implement TCP/IP checksum off-loading on receive. Announcealc2001-09-231-3/+21
| | | | | | rxcsum capabilities. Reviewed by: wpaul
* Add probe line for the AMD 761 northbridge chip. At least it detects now,cokane2001-09-201-0/+2
| | | | | | | | | | seems to set up memory spaces correctly. This change actually did work for me using -STABLE, XFree86 4.0.3 ~ some snapshot of DRI awhile back. I sent mail to dfr to no avail, perhaps someone else would like to test it with DRI. Anyway, people have been nagging me about this change for awhile, so here's the commit.
* Have the driver advertise that it is capable of hardware checksums, andjlemon2001-09-181-2/+19
| | | | allow the user to control the setting. (checksums are enabled by default)
* SMBus support for the AMD 756 power management unit. See smbus(4),murray2001-09-161-0/+634
| | | | | | | | | | | amdpm(4) and smb(4). This device can be used with userland programs such as sysutils/lmmon to retrieve sensor information from the motherboard. PR: kern/23989 Obtained from: Matthew C. Forman <mcf@dmu.ac.uk> Based on: alpm(4)
* KSE Milestone 2julian2001-09-123-16/+16
| | | | | | | | | | | | | | Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
* Update tx(4) to always enable vlan(4) support.brooks2001-09-051-6/+0
| | | | Approved by: semenu
* Make vlan(4) loadable, unloadable, and clonable. As a side effect,brooks2001-09-051-26/+5
| | | | | | | interfaces must now always enable VLAN support. Reviewed by: jlemon MFC after: 3 weeks
* Add support for Conexant LANfinity miniPCI controllers. People who havewpaul2001-09-042-3/+49
| | | | | | | | | | laptops with this chip should test this and report back as I don't have access to this hardware myself. People with -stable systems should try the patch at: http://www.freebsd.org/~wpaul/conexant.patch.gz Submitted by: Phil Kernick <Phil@Kernick.org>
* Remove long overdue obsolete file ide_pcireg.hsos2001-09-041-63/+0
|
* The fxp driver has lived in dev/fxp for some time, remove old files.jlemon2001-08-313-2464/+0
|
* Recognise VIA Apollo KT133A bridge.dfr2001-08-301-0/+2
| | | | | | PR: 30061 Submitted by: John Merryweather Cooper <jmcoopr@webmail.bmi.net> MFC after: 1 week
* Add support for the 3c656B cardbus adapter. This is one half of awpaul2001-08-282-6/+23
| | | | | | | | | | | dual function card. It needs pretty much the same flags as the 656C, except that it seems to need both the INVERT_MII_PWR and INVERT_LED_PWR flags set. Tested with cardbus in -current as of today. Also added support for the 3c656, which looks to be the same as the 656B, except it doesn't need the EEPROM_8BIT flag. I think. This one is untested, but the added support should not break any of the other cards.
* John Polstramjacob2001-08-241-2/+1
| | | | | bogus additional write to WXREG_IMASK that enabled *all* interrupt causes while I was trying to disable the chip. Oops.
* Fix a bug in the ste_setmulti() routine. The NIC has 4 16-bit multicastwpaul2001-08-232-5/+11
| | | | | hash registers, not 2 32-bit ones. This would prevent the multicasr filter from being programmed correctly in some cases.
* After one more day of testing, make what I hope are the final tweaks towpaul2001-08-161-3/+5
| | | | | | | | | | | prevent/workaround TX lockups in this driver. The secret seems to be to not let the TX DMA queue become too full. If we have too many packets in the queue, we should wait for them to drain a bit before trying to queue more. This should prevent the lockup from occurring, and if it does occur, there is special code in sf_start() to kick the NIC in the head and get it going again. Special thanks to Glen Neff for helping me test this fix.
* Still more changes to try to prevent TX lockups. Will wait for one morewpaul2001-08-162-7/+48
| | | | | | | | | night of testing before merging to -stable. Also added to code to detect TX underruns and automatically increase the TX threshold to avoid them. Carefully placed diagnostig printf() about this under #ifdef DIAGNOSTIC to avoid getting any panicky e-mails from confused users, like I always do with the xl and dc drivers.
* Tweak the interrupt handler so that we call the txeof handler more often,wpaul2001-08-151-2/+5
| | | | | to hopefully prevent the TX DMA queue from filling up and never getting flushed.
* Convert the if_sis and if_rl drivers to use the bus_dma API instead ofwpaul2001-08-154-67/+359
| | | | | | | | | | calling vtophys() and contigmalloc()/contigfree() directly. Hopefully, I have shaken out all of the problems with busdma on the alpha now. (Everything seems to work as expected.) Also, change the max RX DMA limit to 1024 bytes instead of "unlimited," as the latter seems not to work correctly on the alpha that I tested. (At 100Mbps, all attempts to receive frames yield RX errors.)
* Fix an bug in FreeBSD attach routine - attaching MII interfaces before doingsemenu2001-08-131-9/+7
| | | | | | | | | common_attach is wrong as common attach initialize some fileds used by mediainit routine. This was hard to notify because loading driver as kld lead to mediainit routine being called after common_attach, though probe_phy is called before. MFC after: 1 week
* Add support for 802.1Q VLAN and oversized ethernet frames.semenu2001-08-132-4/+32
| | | | | | | PR: kern/29235 Submitted by: Peter Jeremy <peter.jeremy@alcatel.com.au> Reviewed by: Yar Tikhiy <yar@FreeBSD.org> MFC after: 1 week
* Pacify users who get all bent out of shape when they see the "xl%d: commandwpaul2001-07-271-2/+7
| | | | | | | | | | | never completed" message. The RX reset takes longer complete than it used to, a lot longer in fact than xl_wait() is prepared to wait. When we do the RX reset in xl_reset(), this cases xl_wait() to time out and whine. We wait a little extra time now after the RX reset, which should silence the warning. Thanks to obrien for finally getting me a box with a NIC that causes this problem for me to tinker with.
* IFT_8021_VLAN -> IFT_L2VLAN per if_vlan_var.h rev 1.9. With this changebrooks2001-07-251-1/+1
| | | | LINT compiles, but doesn't link.
* s/adress/address/kris2001-07-231-1/+1
| | | | | Inspired by: OpenBSD MFC After: 1 week
* Deal with the condition where we lose link in the middle of transmittingwpaul2001-07-121-1/+1
| | | | | | | | | | | | | | | a bunch of frames. In this case, the dc_link flag is cleared, and dc_start() stops draining the if_snd send queue, which results in lots of 'no buffers available' errors being reported to applications. The whole idea behind not draining the send queue until the link comes up was to avoid having the gratuitous ARP being lost while we're waiting for autoneg to complete after the interface is first brought up. As an optimization, change the test in dc_start() so that we only bail if dc_link is not set _and_ there are less than 10 packets in the send queue. If the queue has many frames in it, we need to drain them. If the queue has a small number of frames in it, we can hold off on sending them until the link comes up. MFC after: 1 week
* Apply patch supplied by Jonathan Chen: use the correct arguments towpaul2001-07-0912-23/+23
| | | | | pci_enable_io(). We need to use SYS_RES_IOPORT/SYS_RES_MEMORY instead of PCIM_CMD_PORTEN/PCIM_CMD_MEMEN.
* Make these compile again by adding proc.h include for GIANT_REQUIREDjhb2001-07-056-0/+6
| | | | that is in included vm headers.
* Set vendor string correctly for the Apple KeyLargo.benno2001-07-051-0/+4
| | | | | Forgotten by: benno Spotted by: n_hibma
* Add device ID for the OHCI controller in the Apple KeyLargo chip.benno2001-07-021-0/+5
|
* Add initializetion of NVCTL register with EEPROM stored value.semenu2001-06-232-0/+16
| | | | | | This fix hazardous very slow work for one of my cards. MFC after: 1 week
* Change m_devget()'s outdated and unused `offset' argument to actually meanbmilekic2001-06-207-38/+19
| | | | | | | | | | | | | | | | | | | | something: offset into the first mbuf of the target chain before copying the source data over. Make drivers using m_devget() with a first argument "data - ETHER_ALIGN" to use the offset argument to pass ETHER_ALIGN in. The way it was previously done is potentially dangerous if the source data was at the top of a page and the offset caused the previous page to be copied (if the previous page has not yet been appropriately mapped). The old `offset' argument in m_devget() is not used anywhere (it's always 0) and dates back to ~1995 (and earlier?) when support for ethernet trailers existed. With that support gone, it was merely collecting dust. Tested on alpha by: jlemon Partially submitted by: jlemon Reviewed by: jlemon MFC after: 3 weeks
* Fix warning:peter2001-06-151-2/+2
| | | | 298: warning: assignment makes pointer from integer without a cast
* Fix warnings:peter2001-06-151-3/+6
| | | | | | 412: warning: long unsigned int format, unsigned int arg (arg 3) 418: warning: long unsigned int format, unsigned int arg (arg 3) 424: warning: long unsigned int format, unsigned int arg (arg 3)
* Fix mindo:wpaul2001-06-051-1/+1
| | | | | | | | | | | | | PCN_BCR_CLRBIT(sc, PCN_BCR_MIICTL, PCN_MIICTL_DANAS); should be: PCN_BCR_SETBIT(sc, PCN_BCR_MIICTL, PCN_MIICTL_DANAS); Turning this bit on is what disables MII autoneg, not turning it off. Without this, manually setting the media doesn't work. Noticed by: Jim Browne <jbrowne@jbrowne.com>
* Grrr. Fix PR 27742 correctly this time. (At least I got -stable right.)wpaul2001-06-011-11/+2
|
* Close PR #27742: allow the xl driver to receive VLAN tagged frames bywpaul2001-05-312-3/+16
| | | | | | | | | | | | | | | setting the 'max packet size' register in window 3. This only works for cards based on the cyclone or newer chipsets (i.e. it won't work with the original 3c905/boomerang cards). There is a trick which will work with the boomerang, which is to turn on the 'large packets ok' bit in the MAC control register, however this lets the chip accept any frame up to 4K in length, which is larger than the mbuf cluster buffers we use to receive frames. If somebody sends us such a frame and the chip DMAs it to us, it could write past the end of the cluster buffer and clobber something. PR: kern/27742
* Vlan tags are 12 bits, mask off anything above since the chip doesn'tphk2001-05-231-2/+2
| | | | | | | | seem to do so for us. PR: 27567 Submitted by: Koji HINO hino@ccm.cl.nec.co.jp MFC after: 1 week
* Add description for 82801BA controller.kuriyama2001-05-211-0/+16
| | | | MFC after: 1 week
* Introduce a global lock for the vm subsystem (vm_mtx).alfred2001-05-197-0/+7
| | | | | | | | | | | | | | | | | | | vm_mtx does not recurse and is required for most low level vm operations. faults can not be taken without holding Giant. Memory subsystems can now call the base page allocators safely. Almost all atomic ops were removed as they are covered under the vm mutex. Alpha and ia64 now need to catch up to i386's trap handlers. FFS and NFS have been tested, other filesystems will need minor changes (grabbing the vm lock when twiddling page properties). Reviewed (partially) by: jake, jhb
* Close PR 22208: bring chip out of suspend mode, because Windows mightwpaul2001-05-142-0/+15
| | | | | have put the chip to sleep at shutdown. This is really only for the VT6102, but it doesn't hurt the older chips.
* I'll be making some rather substantial changes to the pci attachmentimp2001-05-132-606/+0
| | | | | | of the pcic class of devices. Go ahead and move it to the "usual" place. I say "usual" in quotes since it isn't exactly right (not in dev/blah), but it is closer than before.
OpenPOWER on IntegriCloud