summaryrefslogtreecommitdiffstats
path: root/sys/pci
Commit message (Collapse)AuthorAgeFilesLines
* If this is going to have checks for kernel versions, it might as wellpeter1998-11-062-15/+29
| | | | do it so that it works. This code should run on 2.2.x now.
* In the cyrix Cx5530, there are null (empty) Base address registers before thejulian1998-11-031-17/+25
| | | | | | | | base register that controls Ultra-DMA, so we need to examine all possible base registers instead of just giving up at the first empty one. Also, looking at the source code to the BIOS, I see that they are also checking for 0xffffffff as an invalid value so do the same. Stefan may like to clean this up, but at least now I can find my PCI IDE registers.
* Ported to OpenBSD. sys/pci/smc83c170.h renamed to sys/pci/if_txvar.h to besemenu1998-11-012-585/+946
| | | | like others.
* Increase the size of the tx and rx rings from 10 to 20 descriptorswpaul1998-10-312-8/+8
| | | | | | | | | and increase the tx interrupt threshold to 4. This fixes performance problems on slower systems. Also fix a mind-o in the rx ring init routine: I used the TX constant instead of the RX. This isn't a problem as long as the rings are the same size, but if they aren't hijinx will ensue.
* Brooktree driver ported to the new I2C framework. See iicbus(4) for more info.nsouch1998-10-314-19/+538
|
* * Fix vga_probe() so that it doesn't report a non-vga display adapter asdfr1998-10-311-2/+8
| | | | | | | | | a vga. * Fix broken logic in syscons for a failed probe. * Fix AlphaStation 500/600 so that non-serial consoles are supported. Submitted by: Thomas Valentino Crimi <tcrimi+@andrew.cmu.edu> (vga bits), Andrew Gallatin <gallatin@cs.duke.edu> (AS500/AS600)
* Do not disable the ISA compatibility window if it is the same value asgibbs1998-10-301-8/+13
| | | | that set for our PCI IO address space. This can happen on the BT-946.
* Update and add timekeeping code.phk1998-10-241-24/+182
|
* Close PR #8409:wpaul1998-10-221-3/+3
| | | | Fix syntax errors inside #ifdef FORCE_AUTONEG_TFOUR.
* Close PR #8384:wpaul1998-10-222-23/+39
| | | | | | | | | | | | Revert the transmission packet queueing strategy changes. Clearly I missed something while debugging this, although I never encountered any problems on my test machines. Also make one other minor change: jack up the TX reclaim threshold for 3c90xB adapters in order to stave off 'transmission error: 82' errors. Document the existence of the tx reclaim register (for inspecting the current reclaim threshold) in register window 5 (if_xlreg.h).
* Defer rundown (m_freem) of completed transmit buffers for no longerdg1998-10-221-1/+22
| | | | than 1 second.
* Modify the transmit packet queuing strategy a bit to be a little lesswpaul1998-10-192-20/+23
| | | | | | | | | | | | | | agressive. With the old code, if a descriptor chain was already on its way to the chip, xl_start() would try to splice new chains onto the end of the current chain by stopping the transmitter, modifying the tail pointer of the current chain to point to the head of the new chain, then restart the transmitter. The manual says you're allowed to do this and it works, but I'm not too keen on it anymore. The new code waits until the eixsting chain has been sent and then queues the next waiting chain in the 'transmit ok' handler. Performance still looks good one way or the other.
* Add driver support for PCI fast ethernet adapters based on thewpaul1998-10-182-0/+2553
| | | | | | | | | RealTek 8129/8139 chipset like I've been threatening. Update kernel configs, userconfig.c, relnotes and sysinstall. No man page yet; comming soon. I consider this driver stable enough that I want to give it some exposure in -current.
* Honor CAM_TAG_ACTION_NONE.gibbs1998-10-151-2/+3
|
* Revert part of previous commit. vaddr_t doesn't exist on FreeBSD. Thispeter1998-10-142-6/+6
| | | | | didn't affect the x86 kernel due to #ifdefs. It broke FreeBSD/Alpha kernel compiles though.
* Update from NetBSD if_de.c 1.72 to 1.80. This is mostly bugfixes, andpeter1998-10-132-57/+91
| | | | | | | looks like it will have most effect on decoding device capabilities and configuration. Approved by: jkh
* Clear out transmit descriptor memory in fxp_attach when it's malloced.dg1998-10-111-1/+2
| | | | | | | fxp_stop is called as the first thing in fxp_init, and if the tx desc list has junk in it, the system may panic. This bug showed up as a side effect of the changes in rev 1.56, but has been in the code since the beginning.
* Fixed mbuf leak in fxp_stop().dg1998-10-101-5/+9
|
* Attempt to work around the page fault in tulip_txput(). I've been runningpeter1998-10-101-2/+2
| | | | | | | | | this myself for ages, but wasn't able to get any feedback from the people that I sent it to for testing. Guy Helmer <ghelmer@scl.ameslab.gov> has given it a shot (before getting on a plane, thanks!) and it appears to stop his reproducable page fault panic in the testing he was able to do.
* Add support for yet another "cyclone" board, with PCI device id 0x905A.wpaul1998-10-092-3/+6
| | | | | | | This is a 100BaseFX board with SC fiber media connectors. I don't actually have one of these but I've been told it works with the xl driver. Submitted by: Jason Wright from the openbsd group
* Correctly update the tail pointer of the transmit queue in tl_start()wpaul1998-10-081-2/+3
| | | | | (one-liner). I have yet to actually encounter any problems due to this bug, but why take chances.
* ahc_pci.c:gibbs1998-10-073-8/+17
| | | | | | | | | | | | | Disable DPARCKEN in the DSCOMMAND0 register on the aic7890/91/96/97. Parity checking is broken for some chip/MB combinations and this is the work around recommended by Adaptec. dpt_pci.c: Remove a superflous '{' that prevented DPT_ALLOW_MEMIO from working. pcireg.h: Add a definition for Parity Error Reponse bit in the PCI Space command register.
* Add support for the ASC3550 AdvanSys SCSI Host Controller (aka 940UW).gibbs1998-10-071-0/+185
|
* Add functions for accessing dense and bwx memory for pci devices. Thesedfr1998-10-062-3/+51
| | | | | | | routines are necessary to allow the use of certain types of hardware on the alpha, particularly a Myrinet card. Submitted by: Andrew Gallatin <gallatin@cs.duke.edu>
* Force the ThunderLAN driver to use PIO mode by default instead ofwpaul1998-10-041-2/+9
| | | | | | | memory mapped mode. There are some laptop docking stations with built-in tlan chips where memory mapped mode doesn't work correctly. Pointed out by: jmb
* Oops, forgot /* */ around Id stringsos1998-10-011-1/+1
|
* Hauppauge Tech Support confirmed all Hauppauge 878 PAL/SECAM boardssos1998-09-301-12/+33
| | | | | | will use PLL mode. Added to card probe. Thanks to Ken and Fred. Submitted by: Roger Hardiman <roger@cs.strath.ac.uk>
* Hauppauge Tech Support confirmed all Hauppauge 878 PAL/SECAM boardssos1998-09-301-0/+3
| | | | | | will use PLL mode. Added to card probe. Thanks to Ken and Fred. Submitted by: Roger Hardiman <roger@cs.strath.ac.uk>
* Changed tuner code to autodetect tuner i2c address.sos1998-09-302-79/+59
| | | | | | Addresses were incorrectly hardcoded. Submitted by: Roger Hardiman <roger@cs.strath.ac.uk>
* FIxed printf format errors (an new one that is only detected on systemsbde1998-09-291-6/+6
| | | | | with pointers smaller than u_longs, and 2 possibly-truncating casts in the same printf).
* Update SimOS scsi driver to use CAM.dfr1998-09-261-136/+169
|
* Add hooks so that the alpha can detect which disk has the root partition.dfr1998-09-262-2/+9
|
* Don't set script to vaddr2 on the alpha - it can't access scripts in devicedfr1998-09-261-2/+6
| | | | memory using simple pointers.
* Apply patch graciously provided by Jason Wright <jason@thought.net> fromwpaul1998-09-252-25/+36
| | | | | | | | | | | | | | | the OpenBSD group to fix a problem with the default ifmedia not being set properly in some cases with a 3c905B, leading to a panic in ifmedia_set(). Also apply a patch to force the transmit start routine to check the transmitter to make sure it isn't wedged if the outbound tx queue appears full. This seems to cure some problems with 'watchdog timeout' errors cropping up in some cases. I tried to do this before by checking for the IFF_OACTIVE flag on entry to xl_start(), but if the IFF_OACTIVE flag is set, ether_output() won't even call xl_start(). It should work now. Lastly, increase the size of the TX queue from 10 descriptors to 16 to hopefully make it less likely that the TX queue will fill up.
* Small tweak: force another reset of the adapter after probing for all thewpaul1998-09-241-3/+13
| | | | | | | | | | | | | | | | | | | PHYs in tl_attach(). This is mainly to suck away any possible stray interrupts. This prevents an intermittent problem on some systems where the adapter probes correctly but yields a device timeout (and possible subsequent adapter check) when configured. When I originally tested the driver, I ifconfig'ed the interface after the system had already been booted and didn't notice any problems, but when configuring the interface immediately at startup, it would occasionally timeout and hang, until an adapter check interrupt came along and reset things again. I'm not exactly sure if this is a general problem of just something peculiar to this hardware (there are three devices, including the tlan, all on IRQ 11) but the extra reset shouldn't hurt anything. (It works fine with my 100Mbps Olicom adapter too.) Thanks to Mark Taylor from Cybernet (mtaylor@cybernet.com) for allowing me remote access to a Compaq system for debugging purposes.
* Minimal change for #if __FreeBSD__ >= 3 to check __FreeBSD_version instead.peter1998-09-241-2/+2
|
* Change #if __FreeBSD__ >= 3 to #if __FreeBSD_version >= 300000 to aidpeter1998-09-241-7/+15
| | | | bootstrapping from a 2.2.x system.
* Overhaul the ThunderLAN driver. This update includes the followingwpaul1998-09-232-1031/+1008
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | changes: - Cleaned up register access macros so that they work like the XL driver macros (you can switch from PIO to memory-mapped mode using a single #define -- default is still memory mapped mode). The old 'struct overlayed onto the memory mapped register space' cruft has been removed. - Improved multicast filter code. The ThunderLAN has four entry perfect filter table in addition to the 64-bit hash table: we need one of the perfect filter entries for the station address, but we can use the other three for multicast filtering. We arrange to put the first three multicast group addresses in the perfect filter slots so that commonly joined groups like the all hosts group and the all routers group can be filtered without using up bits in the hash table. Note: in FreeBSD 3.0, multicast groups are stored in a doubly linked list, however new entries are added at the head of the list (thereby pushing existing entries down towards the tail). We want to update the filter starting from the oldest entry to the newest since the all hosts group is always joined first. This means we really want to start from the tail of the list, not the head, but to find the tail we first have to traverse the list all the way to the end and then add entries working backwards. This is a bit of a kludge and could be inefficient if the list is long. - Cleaned up autonegotiation code: tl_autoneg() wasn't always setting modes correctly. - Cleaned up ifmedia update and status routines as well. - Added tl_hardreset() routine to initialize the internal PHY according to the ThunderLAN manual. - Did away with the kludge where PHYs were treated as separate logical interfaces. This didn't really work, especially in the case of the newer Olicom 2326 adapters which use a Micro Linear ML6692 PHY which provides only 100Mbps support, relying on the internal PHY for 10Mbps support (both PHYs share the RJ45 port, with the 6692 doing all the autonegotiation work). This kludge resulted from my misunderstanding of the operation of the Compaq Netelligent Dual Port card (the tlan manual mentions multiple channels, but in a different context; this got me a little confused). The driver has been reported to work correctly with the dual port card. - Added dio_getbit/dio_setbit/dio_read/dio_write functions which carefully set the ThunderLAN's indirectly accessed internal registers. This makes the EEPROM reading code more reliable. Hopefully I won't have to touch this again before 3.0 goes out the door. I plan to import the 2.2.x version sometime this week. Approved-by: jkh
* A fix from Justin for the NCR bug that caused panics on 875 (and possiblyken1998-09-221-3/+3
| | | | | | | | other) chips. The script pointer was getting set to NULL instead of the right value. Submitted by: gibbs
* Bring back the cleanups from revs 1.121 and rev.1.122 of ncr.c.gibbs1998-09-221-23/+25
| | | | Noticed by: bde
* Alpha patches for the NCR driver from Doug Rabson. I've tested these on anken1998-09-201-54/+136
| | | | | | | NCR 810a, and they seem to work fine on the i386 as well. Reviewed by: gibbs Submitted by: dfr
* Set QUIRK_NOMSG for all devices as was the case in the non-CAM versiongibbs1998-09-181-3/+3
| | | | | of the driver. Why this is necessary (and how identify message handling is performed when this is set) I don't comprehend...
* (requested by gibbs) Remove the SCSI_CAM option (and rework the isp drivermjacob1998-09-181-7/+8
| | | | | that had depended on it for compilation within or without CAM to use __FreeBSD_version instead).
* Really correct ncr_freeze_devq now. We scan backwards from the currentgibbs1998-09-171-11/+26
| | | | | | | | | | insertion point into the start queue looking for entries to remove and mark them with the 'skip' address, recording the entry furthest from the insertion point that needs to be removed. We then go through a second loop starting at the furthest entry to be removed and compress the start queue. The old algorithm started at (old insert point + 1) and wrapped through the whole queue which would end up moving the start position in the queue out from under the nose of the scrip processor.
* A major amount of cleaning up:mjacob1998-09-171-44/+32
| | | | | | | | | | | | | + Change some messages about CCB memory allocation + Turn a failure to DMA map all of a transaction due to lack of ISP queue entries into a requeue operation (instead of the case where it had been treated the same as a DMA too big operation). + put back splsoftvm around bus_dmamap_load calls. + cleanup (and fix a glaring bug) in the and of the dma setup routine. Also, the dma setup routines either return CMD_QUEUED (for success) or CMD_COMPLETE (for failure) or CMD_EAGAIN (for requeuing for resource shortage reasons).
* Use %p with (void *) casts to print pointers with printf.gibbs1998-09-171-5/+5
|
* Fix a regression that caused the script to spam itself by copying somethinggibbs1998-09-161-17/+49
| | | | | | of size sizeof(struct timeval) that is really of size sizeof(ticks). Make another attempt at fixing the queue full case.
* Add 450NX chipset components.msmith1998-09-161-1/+5
|
* Fix a bug in ncr_freeze_devq() which is called when we see a queuegibbs1998-09-161-5/+10
| | | | | | | | | | full condition or other error which requires us to purge the controller's start queue of transactions for a particular device. We were relying on the NCR CCB's program address to cause the script engine to skip to the next entry in the queue even though the CCB is freed (and its program address switched to the idle loop) by this action. We now set the address in the start queue to be the "skip" function directly.
* Alpha port related fixes from Doug Rabson.mjacob1998-09-161-17/+33
| | | | Submitted by: dfr
OpenPOWER on IntegriCloud