summaryrefslogtreecommitdiffstats
path: root/sys/pci/if_de.c
Commit message (Collapse)AuthorAgeFilesLines
* Convert if_multiaddrs from LIST to TAILQ so that it can be traversedphk2001-02-061-3/+3
| | | | | | backwards in the three drivers which want to do that. Reviewed by: mikeh
* Another round of the <sys/queue.h> FOREACH transmogriffer.phk2001-02-041-6/+3
| | | | | Created with: sed(1) Reviewed by: md5(1)
* Mechanical change to use <sys/queue.h> macro API instead ofphk2001-02-041-6/+6
| | | | | | | fondling implementation details. Created with: sed(1) Reviewed by: md5(1)
* Lock down the network interface queues. The queue mutex must be obtainedjlemon2000-11-251-8/+8
| | | | | | | | | | | | | | before adding/removing packets from the queue. Also, the if_obytes and if_omcasts fields should only be manipulated under protection of the mutex. IF_ENQUEUE, IF_PREPEND, and IF_DEQUEUE perform all necessary locking on the queue. An IF_LOCK macro is provided, as well as the old (mutex-less) versions of the macros in the form _IF_ENQUEUE, _IF_QFULL, for code which needs them, but their use is discouraged. Two new macros are introduced: IF_DRAIN() to drain a queue, and IF_HANDOFF, which takes care of locking/enqueue, and also statistics updating/start if necessary.
* Convert the de driver into a loadable module. Still missing is anmarkm2000-10-311-72/+14
| | | | | | | | unload method. Lots of old cruft is removed. Thanks to WPaul for large clue-injection and debugging services. Reviewed by: wpaul
* Remove unneeded #include <machine/clock.h>phk2000-10-151-1/+0
|
* Make all Ethernet drivers attach using ether_ifattach() and detach usingarchie2000-07-131-4/+1
| | | | | | | | | ether_ifdetach(). The former consolidates the operations of if_attach(), ng_ether_attach(), and bpfattach(). The latter consolidates the corresponding detach operations. Reviewed by: julian, freebsd-net
* Use the correct name for the PCI command register (PCIR_COMMAND). Don'tpeter2000-05-281-3/+3
| | | | use constant that used to be a variable in our (very) old pci code.
* Move code to handle BPF and bridging for incoming Ethernet packets outarchie2000-05-141-27/+2
| | | | | | | | | | | | | | | of the individual drivers and into the common routine ether_input(). Also, remove the (incomplete) hack for matching ethernet headers in the ip_fw code. The good news: net result of 1016 lines removed, and this should make bridging now work with *all* Ethernet drivers. The bad news: it's nearly impossible to test every driver, especially for bridging, and I was unable to get much testing help on the mailing lists. Reviewed by: freebsd-net
* Use bus_space for all register accesses.dfr2000-05-131-5/+5
|
* Bounce a copy of the mbuf to the bpf listener when we submit the framesjlemon2000-05-061-2/+6
| | | | | | | for transmit to the adapter, not when we receive a transmit interrupt indicating that they were sent. This fix now allows tcpdump to produce sane results by recording the timestamp at the point where the mbuf was actually transmitted.
* Ignore tulip chips on LanMedia WAN cards.phk2000-04-251-0/+7
|
* A fairly simple newbusification of if_depeter2000-03-201-84/+99
|
* Include the file that defines PCIM_CMD_BUSMASTEREN.mjacob2000-02-161-0/+1
|
* Ensure that the busmaster enable bit is set; we can't assume that allmsmith2000-02-161-1/+8
| | | | | | | BIOS code will get this right (and some certainly doesn't). Submitted by: W. Gerald Hicks <jhix@mindspring.com> Approved by: jkh
* Remove NBPF conditionality of bpf calls in most of our network drivers.phk1999-09-251-9/+0
| | | | | | | | | | | | This means that we will not have to have a bpf and a non-bpf version of our driver modules. This does not open any security hole, because the bpf core isn't loadable The drivers left unchanged are the "cross platform" drivers where the respective maintainers are urged to DTRT, whatever that may be. Add a couple of missing FreeBSD tags.
* Add missing include.billf1999-08-211-0/+1
| | | | | Submitted by: Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org> Reviewed by: Alex Perel <veers@disturbed.net>
* Implement a new generic mechanism for attaching handler functions tomsmith1999-08-211-2/+3
| | | | | | | | | | | | | events, in order to pave the way for removing a number of the ad-hoc implementations currently in use. Retire the at_shutdown family of functions and replace them with new event handler lists. Rework kern_shutdown.c to take greater advantage of the use of event handlers. Reviewed by: green
* Replace the tulip_delay_300ns() with a DELAY(1). Hammering the PCI buspeter1999-08-191-11/+2
| | | | | | | | | | | | | | | | | | | | | | | to achieve a delay is pretty mean. Andrew reports: "The tulip_delay_300ns() is, well, bloody stupid on machines with a heavily loaded PCI bus. It tries to do a delay by assuming PCI reads will take a certain amount of time & issues a large amount of (expensive, 5% CPU when your PCI bus is heavily loaded) pci reads. Locally, we've replaced the calls to tulip_delay_300ns(sc) in the EMIT macros with a simple DELAY(1) and not seen any problems. Plus we've gained about 50Mb/sec throughput on our gigabit network cards because of the added PCI bus bandwidth available." Also, I do not understand why, but this change appears to stop the Transmit Fifo underrun on one of my systems (but not the Alpha PC164SX). This shouldn't make that much of a difference since the mii bus isn't touched all that often, but perhaps when it does get accessed and hence hammers the register, it was causing the chip to get upset. Submitted by: Andrew Gallatin <gallatin@cs.duke.edu>
* A little more tidying up.peter1999-08-091-40/+18
|
* Expand a heap of macros that obscure readability and are no longer neededpeter1999-08-091-170/+122
| | | | here, and do a bit of general tidy up.
* More pre-lite2 support zapped and some more tidy-up.peter1999-08-091-53/+0
|
* Unifdef -D__FreeBSD__ - and remove pre-lite2 support.peter1999-08-091-106/+9
|
* Unifdef -U__NetBSD__peter1999-08-091-180/+1
|
* Unifdef -U__bsdi__peter1999-08-091-256/+3
|
* s/Id/FreeBSD/peter1999-08-091-1/+2
|
* Strip __FreeBSD_version >= 300000 conditionals.peter1999-08-091-22/+7
|
* Merge changes from NetBSD rev 1.82 -> 1.86 via vendor branch.peter1999-08-091-15/+102
| | | | Among the changes: 1.84: support compex 4-port cards.
* Rename bpfilter to bpf.des1999-07-061-6/+6
|
* Eliminate a bunch of #include "pci.h" and #if NPCI > 0 around entirepeter1999-07-031-4/+1
| | | | files. config will leave the whole file out if configured to do so.
* #include "pci.h" for the build dir, not <pci.h>peter1999-05-101-2/+2
|
* Simplify the COMPAT_PCI_DRIVER/DATA_SET hack. We can add:peter1999-05-091-5/+1
| | | | | | | | #define COMPAT_PCI_DRIVER(name,data) DATA_SET(pcidevice_set,data) .. to 2.2.x and 3.x if people think it's worth it. Driver writers can do this if it's not defined. (The reason for this is that I'm trying to progressively eliminate use of linker_sets where it hurts modularity and runtime load capability, and these DATA_SET's keep getting in the way.)
* Changes to support diskless booting on the alpha:dfr1999-05-031-5/+5
| | | | | | | | | | | | * Make the network code in the bootstrap more chatty (helps debugging) * Add nfs root stuff to cpu_rootconf(). I also added a check to make sure it really was netbooting which allows the use of the same kernel for local and network boots. * Tweak the de driver so that it takes the speed setting from the console for the alpha (some PWSs have broken de chipsets). This is the same behaviour as NetBSD/alpha. Submitted by: Andrew Gallatin <gallatin@cs.duke.edu>
* Use COMPAT_PCI_DRIVER() for registration if it exists. This shouldn'tpeter1999-04-241-1/+5
| | | | hurt the driver portability to 3.x too much for where drivers are shared.
* MF22... add bridging support to the device drivers. Without thisluigi1999-03-171-1/+22
| | | | bridging cannot work on -current/releng3!
* Merge NetBSD 1.80->1.82 changes from vendor branch into mainline.peter1999-03-141-18/+20
|
* set if_snd.ifq_maxlen to something reasonable - note that if_de.c haspeter1999-03-131-1/+5
| | | | | | | a wierd double-queue arrangement.. It always empties the if_snd queue then puts the transmit packets into a different queue that is limited by the number of TX descriptors and does it's own discards... This should stop the boot-time XXX warning anyway.
* Fix handling of IFF_ALLMULTI. The code did not callluigi1999-03-011-2/+4
| | | | | | tulip_addr_filter() on SIOCSIFFLAGS, and was nuking the IFF_ALLMULTI on entering tulip_addr_filter(). As a result it was impossible to run a multicast router on a machine with a "de" interface.
* Removed a bogus cast to v_caddr_t. This is part of terminatingbde1999-01-291-2/+2
| | | | | | | v_caddr_t with extreme prejudice. Here the bogons were originally the same as for c_caddr_t (half-baked K&R support), but rev.1.95 changed one wrong cast and one harmless cast to 2 wrong casts, and rev.1.96 only fixed the originally wrong cast.
* Removed bogus casts to c_caddr_t. This is part of terminatingbde1999-01-291-4/+3
| | | | | | c_caddr_t with extreme prejudice. Here the original casts to caddr_t were to support K&R compilers (or missing prototypes), but the relevant source files require an ANSI compiler.
* Fix warnings related to -Wall -Wcast-qualdillon1999-01-281-2/+2
|
* Fix warnings in preparation for adding -Wall -Wcast-qual to thedillon1999-01-281-2/+2
| | | | kernel compile
* Fix warnings in preparation for adding -Wall -Wcast-qual to thedillon1999-01-271-5/+5
| | | | | | | kernel compile. This commit includes significant work to proper handle const arguments for the DDB symbol routines.
* Silence -Wtrigraph.hoek1998-12-301-2/+2
| | | | Submitted by: Bradley Dunn <bradley@dunn.org> (pr: kern/8817)
* pci_device pd_probe function changed from returning char * to returningdillon1998-12-141-2/+2
| | | | | | const char *. Originally I was going to add casts from const char * to char * in some of the pci device drivers, but the reality is that the pci device probes return constant quoted strings.
* Alias Adaptec as a vendor of Cogent NICs.msmith1998-11-281-1/+2
|
* If this is going to have checks for kernel versions, it might as wellpeter1998-11-061-14/+16
| | | | do it so that it works. This code should run on 2.2.x now.
* Revert part of previous commit. vaddr_t doesn't exist on FreeBSD. Thispeter1998-10-141-4/+4
| | | | | 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-131-53/+85
| | | | | | | looks like it will have most effect on decoding device capabilities and configuration. Approved by: jkh
* 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.
OpenPOWER on IntegriCloud