summaryrefslogtreecommitdiffstats
path: root/sys/dev/fxp
Commit message (Collapse)AuthorAgeFilesLines
* Un-do the changes to the DRIVER_MODULE() declarations in these drivers.wpaul1999-09-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This whole idea isn't going to work until somebody makes the bus/kld code smarter. The idea here is to change the module's internal name from "foo" to "if_foo" so that ifconfig can tell a network driver from a non-network one. However doing this doesn't work correctly no matter how you slice it. For everything to work, you have to change the name in both the driver_t struct and the DRIVER_MODULE() declaration. The problems are: - If you change the name in both places, then the kernel thinks that the device's name is now "if_foo", so you get things like: if_foo0: <FOO ethernet> irq foo at device foo on pcifoo if_foo0: Ethernet address: foo:foo:foo:foo:foo:foo This is bogus. Now the device name doesn't agree with the logical interface name. There's no reason for this, and it violates the principle of least astonishment. - If you leave the name in the driver_t struct as "foo" and only change the names in the DRIVER_MODULE() declaration to "if_foo" then attaching drivers to child devices doesn't work because the names don't agree. This breaks miibus: drivers that need to have miibuses and PHY drivers attached never get them. In other words: damned if you do, damned if you don't. This needs to be thought through some more. Since the drivers that use miibus are broken, I have to change these all back in order to make them work again. Yes this will stop ifconfig from being able to demand load driver modules. On the whole, I'd rather have that than having the drivers not work at all.
* Change the name we register with DRIVER_MODULE() to include the leadingobrien1999-09-201-1/+1
| | | | | | "if_". Reviewed by: msmith, wpaul
* Recognise the new 82559 chip id as used on the InBusiness 10/100 adapter.peter1999-09-062-1/+7
| | | | | | | | I have an 82559 card with the same id as the other 8255[78] chips, but that was made with a date code of 0699 (June 99). The submitter shows this working with the probe etc, but doesn't actually say it works as on the ethernet. :-) Assuming it does, this is a RELENG_3 merge candidate. Submitted by: Steven E Lumos <slumos@sam.ISRI.UNLV.EDU>
* $Id$ -> $FreeBSD$peter1999-08-283-3/+3
|
* Rename bpfilter to bpf.des1999-07-061-8/+8
|
* Fix two warnings.peter1999-05-091-1/+5
|
* Move the declaration of the interrupt type from the driver structuredfr1999-05-081-3/+3
| | | | to the BUS_SETUP_INTR call.
* Bring the 'new-bus' to the i386. This extensively changes the way thepeter1999-04-162-59/+132
| | | | | | | | | | | | | | | | | | i386 platform boots, it is no longer ISA-centric, and is fully dynamic. Most old drivers compile and run without modification via 'compatability shims' to enable a smoother transition. eisa, isapnp and pccard* are not yet using the new resource manager. Once fully converted, all drivers will be loadable, including PCI and ISA. (Some other changes appear to have snuck in, including a port of Soren's ATA driver to the Alpha. Soren, back this out if you need to.) This is a checkpoint of work-in-progress, but is quite functional. The bulk of the work was done over the last few years by Doug Rabson and Garrett Wollman. Approved by: core
* Turn on PCI bus mastering in driver attach routinewes1999-03-201-1/+10
| | | | | | | | to avoid hanging the system if the BIOS has not initialized the interface. PR: 10150 Reviewed by: dg
* MF22... add bridging support to the device drivers. Without thisluigi1999-03-171-18/+43
| | | | bridging cannot work on -current/releng3!
* Improved reporting of autodetected speed and duplex.julian1999-02-121-21/+48
| | | | | | | | Now should be able to report speed for cards using NatSemi PHY. (if you have one please let me know if it works as I only have the Intel version) Reviewed by: David Greenman <dg@root.com>
* Define more registers and fix incorrect (but unused) register bit definitions.julian1999-02-111-10/+29
|
* Define more registers in the PHY unit and use them to report backjulian1999-02-112-9/+82
| | | | | | the result of the media auto negotiation. Reviewed by: David Greenman <dg@freebsd.org>
* Fix warnings related to -Wall -Wcast-qualdillon1999-01-281-2/+2
|
* Fix warnings in preparation for adding -Wall -Wcast-qual to thedillon1999-01-281-3/+3
| | | | kernel compile
* Fix warnings in preparation for adding -Wall -Wcast-qual to thedillon1999-01-271-3/+3
| | | | | | | kernel compile. This commit includes significant work to proper handle const arguments for the DDB symbol routines.
* pci_device pd_probe function changed from returning char * to returningdillon1998-12-141-3/+3
| | | | | | 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.
* Defer rundown (m_freem) of completed transmit buffers for no longerdg1998-10-221-1/+22
| | | | than 1 second.
* 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
|
* Implemented a more sophisticated mechanism for handling transmitterdg1998-08-041-45/+103
| | | | | | | | interrupts which now defers them until the transmit queue if filled up with completed buffers. This has two advantages: first, it reduces the number of transmitter interrupts to just 1/120th of the rate that they occured previously, and two, running down many buffers at once has much improved cache effects.
* Added 82555B support for media status.dg1998-08-021-1/+2
|
* Reordered fxp_softc for optimal cacheline behavior.dg1998-08-021-8/+10
|
* Killed unused variable/assignment.dg1998-08-021-2/+1
|
* Fixed pedantic semantics errors (bitfields not of type int, signed intbde1998-06-081-22/+22
| | | | | | | or unsigned int (this doesn't change the struct layout, size or alignment in any of the files changed in this commit, at least for gcc on i386's. Using bitfields of type u_char may affect size and alignment but not packing)).
* This commit fixes various 64bit portability problems required fordfr1998-06-071-2/+2
| | | | | | | | | | FreeBSD/alpha. The most significant item is to change the command argument to ioctl functions from int to u_long. This change brings us inline with various other BSD versions. Driver writers may like to use (__FreeBSD_version == 300003) to detect this change. The prototype FreeBSD/alpha machdep will follow in a couple of days time.
* Seventy-odd "its" / "it's" typos in comments fixed as per kern/6108.des1998-04-171-3/+3
|
* Support compiling with `gcc -ansi'.bde1998-04-151-6/+6
|
* Added support for the 82553 and 'B' 82555 PHY.dg1998-03-032-2/+15
|
* Removed unused #includes.bde1998-02-201-7/+1
|
* Staticize.eivind1998-02-091-8/+8
|
* Make INET a proper option.eivind1998-01-081-2/+5
| | | | | | | | | | | | This will not make any of object files that LINT create change; there might be differences with INET disabled, but hardly anything compiled before without INET anyway. Now the 'obvious' things will give a proper error if compiled without inet - ipx_ip, ipfw, tcp_debug. The only thing that _should_ work (but can't be made to compile reasonably easily) is sppp :-( This commit move struct arpcom from <netinet/if_ether.h> to <net/if_arp.h>.
* Shuffle things a bit for better cacheline behavior.dg1997-11-291-6/+6
|
* Removed unused #includes.bde1997-10-281-2/+1
|
* Rewrote fxp_start() for better clarity and efficiency.dg1997-10-231-101/+101
|
* Fixed a bug where input packets were counted twice - messing up thedg1997-10-171-2/+1
| | | | stats.
* Killed a gratuitous assignment in a NetBSD case.dg1997-09-301-5/+1
|
* Two changes which should make the system less suseptible to receiverdg1997-09-301-29/+29
| | | | | | | overruns (not that it was a problem, but it could be): 1) Doubled the number of receive buffers in the DMA chain to 64. 2) Do packet receive processing before transmit in the interrupt routine.
* Work around a bug in the 82557 NIC where the receiver will lock updg1997-09-293-57/+198
| | | | | | | | | | | | | | | | | | | | | | | if it is in 10Mbps mode and gets certain types of garbage prior to the packet header. The work-around involves reprogramming the multicast filter if nothing is received in some number of seconds (currently set at 15). As a side effect, implemented complete support for multicasting rather than the previous 'receive all multicasts' hack, since we now have the ability to program the filter table. Fixed a serious bug which crept in with the timeout() changes; the cookie was only saved on the first timeout() call in fxp_init() and wasn't updated in the most common place in fxp_stats_update() when the timeout was rescheduled. This bug would have resulted in an eventual panic if fxp_stop() was called (which happens when any interface flags are changed, for example). Fixed a bug in Alpha support that would have caused the TxCB descriptor chain to span a page boundry, causing serious problems if the pages didn't happen to be contiguous. Removed some gratuitous bit masking that was left over from an older implementation. Fixed a bug where too much was copied from the configuration template, spilling over into memory that followed it. Fixed handling of if_timer...it was cleared too early in some cases.
* Update for new callout interface.gibbs1997-09-212-4/+6
|
* Changes to support NetBSD and the new ifmedia extensions.dg1997-09-053-243/+842
| | | | Submitted by: Jason Thorpe <thorpej@netbsd.org>
* Removed unused #includes.bde1997-08-021-13/+1
|
* Added support for the Seeq 80c24 PHY; does nothing except disable thedg1997-07-251-1/+7
| | | | unsupported warning message for it.
* Minor optimization in fxp_intr.dg1997-06-161-5/+4
|
* Added support for the Intel 82555 PHY chip which is being used on newerdg1997-06-132-20/+25
| | | | | Pro/100B cards. Full duplex should work now, although it hasn't been tested.
* Check that the received packet length indicated by the card is at leastdg1997-04-231-1/+5
| | | | | | large enough to contain the ethernet header. There appears to be a condition where the card can return "0" in some failure cases, and this causes bad things to happen (a panic).
* Made a couple of minor optimizations that improve performance of thedg1997-03-251-5/+4
| | | | common case of the interrupt routine by about 20%.
* Don't include <sys/ioctl.h> in the kernel. Stage 2: includebde1997-03-241-2/+2
| | | | <sys/sockio.h> instead of <sys/ioctl.h> in network files.
* Added support for newer cards that have the DP83840A PHY chip.dg1997-03-212-9/+46
| | | | | | | | | | | | | | | | | | Fixed a bug in fxp_mdi_write - a hex number was missing a preceding 0x and this was causing the routine to not wait for a PHY write to complete. Added support for link0, link1, and link2 flags to toggle auto- negotiation, 10/100, and half/full duplex: link0 disable auto-negotiation When set, these flags then have meaning: -link1 10Mbps link1 100Mbps -link2 half duplex link2 full duplex ...needs a manual page.
* Fixed two deficiencies in the driver that have existed since it wasdg1997-03-172-23/+116
| | | | | | | | | | | | written: 1) Full duplex mode is now supported (and works!) 2) The 10Mbps-only PCI Pro/10 should now work (untested, however) Thanks to Justin Gibbs for providing a PCI bus analyzer trace while the Intel Windows driver was configuring the board...this made it possible to figure out the mystery bit that I wasn't setting in the PHY for full duplex to work.
OpenPOWER on IntegriCloud