summaryrefslogtreecommitdiffstats
path: root/sys/pci
Commit message (Collapse)AuthorAgeFilesLines
* Add a transmit descriptor usage counter and use it to absolutely,wpaul1999-06-192-4/+15
| | | | | | | | | positively not let ti_encap() fill up the TX ring all the way and wrap around. This fixes a potential transmit lockup where a really fast machine (or particular TX traffic pattern) can overrun the end of the ring. Reported by: John Plevyak <jplevyak@inktomi.com>
* Remove option USBVERBOSEn_hibma1999-06-161-2/+2
| | | | | | Add the options for debugging used in dev/usb/*.c Submitted by: Kazu
* Grrr! The PNIC II's multicast hash table is only 128 bits wide, not 512wpaul1999-06-161-20/+45
| | | | | | | like the original PNIC and the MX98715A (from which the PNIC II is derived). This requires special handling. Save the card type, and in mx_calchash(), if we see that the card is a PNIC, return only the low 7 bits of the hash instead of the low 9 bits.
* Fix non-benign typo.billf1999-06-161-2/+2
| | | | Submitted by: Daniel Baker <dbaker@cuckoo.com>
* Kill option FAILSAFE.des1999-06-151-3/+2
| | | | | PR: i386/12187 Approved by: bde
* Add VIA Apollo Master VT82c570 chipset. (I have 2 of these)roger1999-06-151-12/+8
| | | | Also, Apollo IDE controller has device ID of 1571 and 0571
* Ensoniq AudioPCI sound cards haven't worked since the newbus integrationnewton1999-06-151-2/+2
| | | | | | because they haven't been able to attach. Now fixed. Submitted by: Christian Weisgerber <naddy@mips.rhein-neckar.de>
* 1) Add the USB controllers (will now print pretty strings when no usbn_hibma1999-06-131-32/+64
| | | | | | support is compiled in) 2) Add probing for generic USB host controllers as well so we get them all 3) make the returned strings look alike in the whole file
* Shorten the strings a bit (remove 'Host')n_hibma1999-06-132-15/+16
|
* Removed checking for unit>NBKTR.roger1999-06-131-17/+2
| | | | | No longer need when using device_get_softc. (also fixed bug where loadable bktr module could only access 1st device)
* Updated to use the new 4.x newbus APIroger1999-06-122-219/+296
| | | | | | Also removed the BSDI support (for now) This allows the driver to be loaded/unloaded as a KLD and loaded in the boot loader phase whithout making a custom kernel.
* Add detection code for NVidia Riva 128,TNT,TNT2ache1999-06-091-1/+19
| | | | | | | (TNT2 from me) PR: 12094 Submitted by: Ilya Naumov camel@avias.com
* Fix the cdevsw_add change made by PHK.roger1999-06-041-5/+5
| | | | | (It was accidentally added to the BSDI bktr_probe and not the FreeBSD bktr_probe)
* Add the 3Dfx Voodoo Bansheemharo1999-06-041-1/+9
|
* Change the warning message issued if pci_map_port() fails. I think thiswpaul1999-06-011-5/+5
| | | | | | | | | | happens if you have a BIOS with a 'Plug & Play OS' setting and you leave it set to 'Yes.' This is wrong for FreeBSD (and LoseNT): it should be set to 'No.' Apparently it's still possible to map the iobase of the NIC and have the card work by reading the config space manually (which is what the driver does if pci_map_port() fails) but we need to warn the user to do fix their machine anyway. Anyway, warn the user to check the 'Plug & Play OS' setting in their BIOS if mapping the io space fails.
* Updated to support new Meteor/PPB cards (PCI-PCI Bridge).roger1999-06-011-0/+31
| | | | | | | | The driver now identifies the IBM PCI-PCI Bridge fitted to newer Matrox cards and initialises it. Sumitted by: Anton Berezin <tobez@plab.ku.dk> The Protein Laboratory, University of Copenhagen
* On the new Meteor cards, the Philips SAA 7116 is connected to the PCI busroger1999-05-313-3/+67
| | | | | | | | | | | | | | | | | | | | via an IBM PCI-PCI bridge (82351 or 82352 or 82353) The driver must identify if it is on a secondary PCI bus, which is created via the IBM PCI-PCI bridge. If it is, then it must initialise the IBM PCI-PCI bridge correctly. To do this, the following new functions are added. Because they use the pcici_t tag, they are considered 2.2 compatibility APIs pcici_t * pci_get_parent_from_tag(pcici_t tag); int pci_get_bus_from_tag(pcici_t tag); (The _from_tag suffix is used to prevent clashes with similarly named newbus PCI API functions) Submitted by: Anton Berezin <tobez@plab.ku.dk> Reviewed by: Doug Rabson <dfr@nlsystems.com> Reworked by: Me (roger)
* Simplify cdevsw registration.phk1999-05-314-51/+16
| | | | | | | | | | | | | | | | | | | | | | | | | The cdevsw_add() function now finds the major number(s) in the struct cdevsw passed to it. cdevsw_add_generic() is no longer needed, cdevsw_add() does the same thing. cdevsw_add() will print an message if the d_maj field looks bogus. Remove nblkdev and nchrdev variables. Most places they were used bogusly. Instead check a dev_t for validity by seeing if devsw() or bdevsw() returns NULL. Move bdevsw() and devsw() functions to kern/kern_conf.c Bump __FreeBSD_version to 400006 This commit removes: 72 bogus makedev() calls 26 bogus SYSINIT functions if_xe.c bogusly accessed cdevsw[], author/maintainer please fix. I4b and vinum not changed. Patches emailed to authors. LINT probably broken until they catch up.
* Add support for SiS 900 chipset (PCI ID 0x1039/0x0900), which appears towpaul1999-05-302-4/+17
| | | | be yet another rebadged RealTek 8139.
* Whoops, forgot to update xl_mediacheck() to account for the 3c905C.wpaul1999-05-301-2/+3
|
* Head for the hills friends and neighbors, 3Com has yet another 3c90Xwpaul1999-05-302-3/+7
| | | | | | | | chipset. First you thrilled to the 3c905, then you trembled at the 3c905B, now gaze in wonder at: the 3c905C! This appears to be another 3c90X series chip called the Tornado (PCI ID 0x10B7/0x9200) and should be equivalent (from the driver API perspective) to the 3c905B, so all we have to do is add the PCI ID to the list.
* This commit should be a extensive NO-OP:phk1999-05-304-23/+86
| | | | | | | | | | | | | Reformat and initialize correctly all "struct cdevsw". Initialize the d_maj and d_bmaj fields. The d_reset field was not removed, although it is never used. I used a program to do most of this, so all the files now use the same consistent format. Please keep it that way. Vinum and i4b not modified, patches emailed to respective authors.
* In pci_alloc_resource() only check start and end to see if its a default.dfr1999-05-301-2/+2
|
* Fix support for the PNIC II. Earlier I had assumed that the PNIC II waswpaul1999-05-284-9/+19
| | | | | | | | | | | | | | | | similar to the PNIC I (supported by the pn driver). In fact, it's really a Macronix 98715A with wake on LAN support added. According to LinkSys, the PNIC II was jointly developed by Lite-On and Macronis. I get the feeling Macronix did most of the work. (The datasheet has the Macronix logo on it, and is in fact nearly identical to the 98715 datasheet, except for the extra wake on LAN registers.) In any case, the PNIC II works just fine with the Macronix driver. The changes are: - Move PCI ID for the PNIC II from the pn driver to the mx driver. - Mention PNIC II support in mx.4. - Mention PNIC II support in RELNOTES.TXT and HARDWARE.TXT.
* Print some diagnostic messages for the PCI-ISA bridge,yokota1999-05-271-2/+9
| | | | | | if bootverbose > 0. Reviewed by: dfr
* Move BX PCI-PCI (AGP) bridge from chip_match to pcib_matchroger1999-05-271-9/+8
| | | | | | | so it is reported correctly in dmesg. Add 440 LX and 440 BX to the descriptions as these are the names in common usage
* Remove redundant redefinition of vtophys(). This is already in if_pnreg.hgallatin1999-05-261-7/+2
|
* Forgotten in previous commit:gallatin1999-05-261-2/+2
| | | | | | | | | Allow chipset drivers to specify the direct-mapped DMA window's mask in preparation for tsunami support. Previous chipsets' direct-mapped DMA mask was always 1024*1024*1024. The Tsunami chipset needs it to be 2*1024*1024*1024 Reviewed by: Doug Rabson <dfr@nlsystems.com>
* Allow chipset drivers to specify the direct-mapped DMA window's mask ingallatin1999-05-266-19/+14
| | | | | | | | | | preparation for tsunami support. Previous chipsets' direct-mapped DMA mask was always 1024*1024*1024. The Tsunami chipset needs it to be 2*1024*1024*1024 These changes should not affect the i386 port Reviewed by: Doug Rabson <dfr@nlsystems.com>
* Two small tweaks:wpaul1999-05-261-2/+8
| | | | | | - Clear the IFF_OACTIVE flag when al_txeof() runs down the last TX mbuf chain. - Mark the workaround for the transmitter stalling bug with #ifdef AL_TX_STALL_WAR/#endif.
* Ignore subvendor and subdevice ids for all ai7880 parts. These chipsgibbs1999-05-261-27/+21
| | | | | | | | only support 'mirroring' the vendor and device ids, so we don't lose any information. Certain revisions of the aic7880 will not perform the mirroring so to match all possiblities would double the number of table entries. This change also allows us to match things like the 2944B which I missed in the original table.
* Identify Intel 440 LX chipset motherboardsroger1999-05-261-1/+5
|
* All cards using aic789X chips use the new eeprom format.gibbs1999-05-251-1/+4
| | | | | | Corrects bogus negotiation values on aic7890 based controllers. PR: 11872
* Add OPTi 82c822 host to PCI bridgeroger1999-05-251-1/+5
| | | | | | | | This is an old OPTi chipset. If you use a Bt878 card with this chipset, be sure to enable the SIS/VIA chipset compatiblity mode workaround. Tested By: Ben Laurie <ben@algroup.co.uk>
* Rename 849 to 849A (the correct name for the IC)roger1999-05-251-2/+2
|
* Add support for the Bt878/Bt879's Intel 430 FX androger1999-05-251-16/+55
| | | | | | | | | | | | | SIS/VIA/ OPTi chipset PCI bus workarounds. These make the Bt878/879 chips stabler on certain older and non-intel motherboards. Use options BKTR_430_FX_MODE or options BKTR_SIS_VIA_MODE to enable these modes. Also rename 849 to 849A
* Fix bug that can cause transmit corruption. There are actually two 'rings'wpaul1999-05-241-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | in the transmit code: the TX descriptor ring, and a 'shadow' ring of mbuf pointers, one for each TX descriptor. When transmitting a packet that consists of several fragments in an mbuf chain, we link each fragment to a descriptor in the TX ring, but we only save a pointer to the mbuf chain. This pointer is saved in the shadow ring entry which corresponds to the first fragment in the packet. Later, ti_txeof() can release the whole chain with a single m_freem() call. (We need the second ring to keep track of the virtual addresses of the mbuf chains.) The problem with this is that the Tigon isn't actually through with the mbuf chain until it reaches the last fragment (which has the TI_BDFLAG_END bit set), however the current scheme releases the mbuf chain as soon as the first fragment is consumed. This is wrong, since the mbufs can then be yanked out from under the Tigon and modified before the other fragments can be transmitted. The fix is to make a one line change to ti_encap() so that it saves the mbuf chain pointer in the shadow ring entry that corresponds to the last fragment in TX ring instead of the first. This prevents the mbufs from being released until the last fragment is transmitted. Painstakingly diagnosed and fixed by: Robert Picco <picco@mail.wevinc.com> Brought to my attention by: dg
* Added rgb_vbi_prog() to capture VBI data and video at theroger1999-05-231-1/+248
| | | | | | same time. To capture VBI data, /dev/vbi must be opened before starting video capture. A partly on code from Hiroki Mori <mori@infocity.co.jp>
* First cut at a driver for the amd53c974 PCI SCSI host adapter. Thisgibbs1999-05-222-0/+3015
| | | | | | | | driver lacks error recovery and still needs more testing, but it's about time I got it under revision control. Submitted by: Tekram Inc. Bus Space/DMA and cleanup: gibbs
* Move arpcom structure be the first in softc structure. Neededsemenu1999-05-221-2/+2
| | | | | | for ether_ioctl. PR: pending/11754
* Restored rev.1.76 which was clobbered by rev.1.77.bde1999-05-221-2/+2
|
* Remove some #ifdef'ed code. The ADMtek doesn't have a 'enable reception ofwpaul1999-05-211-13/+2
| | | | | broadcast frames' bit, so we don't need any code in al_init() to set/clear it.
* Fix a memory leak and a double free that could happen in certain errorken1999-05-211-5/+4
| | | | | | cases. These were unlikely to happen in normal operation. Noticed by: "Christopher R. Bowman" <crb@ChrisBowman.com>
* Ack! Cut & paste-o: xl -> alwpaul1999-05-211-3/+3
|
* This commit adds driver support for PCI fast ethernet cards based on thewpaul1999-05-212-0/+2709
| | | | | | | | | | | | | | | | | | | | | | | ADMtek AL981 "Comet" chipset. The AL981 is yet another DEC tulip clone, except with simpler receive filter options. The AL981 has a built-in transceiver, power management support, wake on LAN and flow control. This chip performs extremely well; it's on par with the ASIX chipset in terms of speed, which is pretty good (it can do 11.5MB/sec with TCP easily). I would have committed this driver sooner, except I ran into one problem with the AL981 that required a workaround. When the chip is transmitting at full speed, it will sometimes wedge if you queue a series of packets that wrap from the end of the transmit descriptor list back to the beginning. I can't explain why this happens, and none of the other tulip clones behave this way. The workaround this is to just watch for the end of the transmit ring and make sure that al_start() breaks out of its packet queuing loop and waiting until the current batch of transmissions completes before wrapping back to the start of the ring. Fortunately, this does not significantly impact transmit performance. This is one of those things that takes weeks of analysis just to come up with two or three lines of code changes.
* Add comment about split in drivern_hibma1999-05-201-1/+6
|
* Add support for multiple PCI "hoses" used on various alpha platforms.gallatin1999-05-203-4/+82
| | | | | | | | | The specific intent of this commit is to pave the way for importing Compaq XP1000 support. These changes should not affect the i386 port. Reviewed by: Doug Rabson <dfr@nlsystems.com> (actually, he walked me through most of it & deserves more than reviewd-by credit )
* Updated Australian channel frequenciesroger1999-05-191-7/+12
| | | | Submitted by: Ivan Brawley <brawley@internode.com.au>
* Move pcibus (host -> pci bus) probe/attach routines from nexuspeter1999-05-181-2/+1
| | | | | to pcibus.c. pci_cfgopen() becomes static and there are no more bus #ifdef's in nexus.c.
* Bt848 driver release 1.65roger1999-05-181-7/+31
| | | | | | | | | Change Intel GPIO mask to hopefully stop turning the Intel Camera off Fixed tuner selection on Hauppauge card with tuner 0x0a Replaced none tuner with no tuner for Theo de Raadt <deraadt@openbsd.org>. Ivan Brawley <brawley@internode.com.au> added the Australian channel frequencies.
OpenPOWER on IntegriCloud