summaryrefslogtreecommitdiffstats
path: root/sys/pci/if_dcreg.h
Commit message (Collapse)AuthorAgeFilesLines
* Ignore CSR13, CSR14, CSR15 'Media Specific Data' registersmbr2003-10-051-3/+11
| | | | | | | | | | | | | | | for 21143 based cards which use SIA mode. This fixes 10mbit mode for ZNYX ZX346Q cards and other 21143 based cards. PR: 32118 Submitted by: Rene de Vries <rene@tunix.nl> Geert Jan de Groot <GeertJan.deGroot@tunix.nl> Obtained from: BSDI MFC after: 2 weeks
* Add support for FA-511; Submitted by: Kenneth P. Stox; Pr 42858imp2003-07-191-0/+1
|
* Add support for a bunch of Microsoft networking products:wpaul2003-07-101-0/+14
| | | | | | | | - MN-110 10/100 USB ethernet (ADMtek Pegasus II, if_aue) - MN-120 10/100 cardbus (ADMtek Centaur-C, if_dc) - MN-130 10/100 PCI (ADMtek Centaur-P, if_dc) Also update dc(4) man page to mention support for MN-120 and MN-130.
* Make the dc(4) driver endian-clean, so to that it works on sparc64.mux2003-07-091-0/+6
| | | | | | | There are such cards in Netra X1 boxes, which should thus be fully supported now. Tested by: jake
* Convert the dc(4) driver to the busdma API. This is a necessary stepmux2003-07-061-8/+22
| | | | | | | | | | | | | | | to have this driver working on sparc64. It still needs to be made endian-clean before it can work there. Special thanks to dragonk@evilcode.net for sending me a dc(4) card so that I was able to do this work. Many cheers to all the people that tested this change, thanks to them, this change shouldn't break anything :-). Tested by: marcel (i386 and ia64), ru (i386), wilko (alpha), mbr (i386), wpaul (i386) and Will Saxon <WillS@housing.ufl.edu> (i386)
* Add ADMtek ADM9511 and ADM9513 device ID's.mbr2003-06-081-0/+2
| | | | | | | PR: PR51823 Submitted by: Kaho Toshikazu <kaho@elam.kais.kyoto-u.ac.jp> Reviewed by: phk MFC after: 2 days
* Add support for 3Com OfficeConnect 10/100B.mbr2003-05-121-0/+10
| | | | | | | | PR: 49059, 50747 Submitted by: Dax Eckenberg <daxbert@dweebsoft.com> Reviewed by: imp, jhb Approved by: jhb MFC after: 2 weeks
* Add support for Planex FNW-3602-T(CardBus 100M/10M).sanpei2003-04-181-0/+10
| | | | | Submitted by: kazz <kazz@v001.vaio.ne.jp> Obtained from: [bsd-nomads:16637]
* Add preliminary support for the Hawking PN672TX CardBus cards.imp2003-01-101-0/+12
| | | | | # Preliminary because there are some subtle things the NetBSD driver does # that we don't do yet. My card works for me w/o them.
* Add support for the Davicom DM9009 chipset.trhodes2003-01-091-0/+1
| | | | | | PR: 46859 Submitted by: Boaz Haberman <boaz@ool-182f8b09.dyn.optonline.net> Approved by: rwatson
* Fix the missspelt letter in DC_CTYPE_PUP_AUTOSENSe define.semenu2002-12-181-1/+1
| | | | | Submitted by: marius@alchemy.franken.de MFC after: 3 days
* Dynamically configure the width of the srom. This code comes fromimp2002-10-071-1/+2
| | | | | | | | | | | | | | OpenBSD who got the code (or the idea) from the NetBSD tlp driver. This gets some cardbus dc cards working (either completely or nearly so). It also appears to get additional pci cards working, without breaking working ones. # Maybe some additional work is needed here. Also, the cardbus attachment # might need to match on the CIS rather than on the vendor/device so we have # a finer level of detail as to what the card is. Technically, the # vendor/device fields are undefined for CardBus (even though most cards are # using common silicon with pci models).
* Enable the automatic TX underrun recovery for the ADMtek chips.mbr2002-09-201-0/+2
| | | | | | | | | This solves cvsup update on my laptop which aborts after a while without this patch. PR: 34236 Reviewed by: phk MFC after: 2 weeks
* Add suspend/resume code mostly merged from fxp/rl driver.iwasaki2002-05-061-0/+7
| | | | | | | This is temporary hack, better and generalized solution probably should be implemented at lower layer(MII or PCI?). Tested by: shoko.araki@soliton.co.jp MFC after: 1 week
* Forgot one part of the VLAN support for the dc(4) driver.ambrisko2002-01-161-0/+2
| | | | Pointed out by: Shin-ichi YOSHIMOTO <yosimoto@waishi.jp>
* Device Polling code for -current.luigi2001-12-141-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Non-SMP, i386-only, no polling in the idle loop at the moment. To use this code you must compile a kernel with options DEVICE_POLLING and at runtime enable polling with sysctl kern.polling.enable=1 The percentage of CPU reserved to userland can be set with sysctl kern.polling.user_frac=NN (default is 50) while the remainder is used by polling device drivers and netisr's. These are the only two variables that you should need to touch. There are a few more parameters in kern.polling but the default values are adequate for all purposes. See the code in kern_poll.c for more details on them. Polling in the idle loop will be implemented shortly by introducing a kernel thread which does the job. Until then, the amount of CPU dedicated to polling will never exceed (100-user_frac). The equivalent (actually, better) code for -stable is at http://info.iet.unipi.it/~luigi/polling/ and also supports polling in the idle loop. NOTE to Alpha developers: There is really nothing in this code that is i386-specific. If you move the 2 lines supporting the new option from sys/conf/{files,options}.i386 to sys/conf/{files,options} I am pretty sure that this should work on the Alpha as well, just that I do not have a suitable test box to try it. If someone feels like trying it, I would appreciate it. NOTE to other developers: sure some things could be done better, and as always I am open to constructive criticism, which a few of you have already given and I greatly appreciated. However, before proposing radical architectural changes, please take some time to possibly try out this code, or at the very least read the comments in kern_poll.c, especially re. the reason why I am using a soft netisr and cannot (I believe) replace it with a simple timeout. Quick description of files touched by this commit: sys/conf/files.i386 new file kern/kern_poll.c sys/conf/options.i386 new option sys/i386/i386/trap.c poll in trap (disabled by default) sys/kern/kern_clock.c initialization and hardclock hooks. sys/kern/kern_intr.c minor swi_net changes sys/kern/kern_poll.c the bulk of the code. sys/net/if.h new flag sys/net/if_var.h declaration for functions used in device drivers. sys/net/netisr.h NETISR_POLL sys/dev/fxp/if_fxp.c sys/dev/fxp/if_fxpvar.h sys/pci/if_dc.c sys/pci/if_dcreg.h sys/pci/if_sis.c sys/pci/if_sisreg.h device driver modifications
* Avoid an unnecessary copy of a packet if it is already in a single mbuf.luigi2001-12-111-0/+1
| | | | | | | | Introduce an additional device flag for those NICs which require the transmit buffers to be aligned to 32-bit boundaries. (the equivalen fix for STABLE is slightly simpler because there are no supported chips which require this alignment there.)
* Defs for three (unused so far) bits in PCI command/status registerluigi2001-10-251-3/+3
| | | | were off by one bit.
* Add support for Conexant LANfinity miniPCI controllers. People who havewpaul2001-09-041-0/+22
| | | | | | | | | | 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>
* Apply patch to allow TX underrun handling without issuing a completewpaul2001-02-221-0/+6
| | | | | | chip reset. Just temporarily turn off the transmitter instead. Submitted by: Stephen McKay <mckay@freebsd.org>
* Change and clean the mutex lock interface.bmilekic2001-02-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mtx_enter(lock, type) becomes: mtx_lock(lock) for sleep locks (MTX_DEF-initialized locks) mtx_lock_spin(lock) for spin locks (MTX_SPIN-initialized) similarily, for releasing a lock, we now have: mtx_unlock(lock) for MTX_DEF and mtx_unlock_spin(lock) for MTX_SPIN. We change the caller interface for the two different types of locks because the semantics are entirely different for each case, and this makes it explicitly clear and, at the same time, it rids us of the extra `type' argument. The enter->lock and exit->unlock change has been made with the idea that we're "locking data" and not "entering locked code" in mind. Further, remove all additional "flags" previously passed to the lock acquire/release routines with the exception of two: MTX_QUIET and MTX_NOSWITCH The functionality of these flags is preserved and they can be passed to the lock/unlock routines by calling the corresponding wrappers: mtx_{lock, unlock}_flags(lock, flag(s)) and mtx_{lock, unlock}_spin_flags(lock, flag(s)) for MTX_DEF and MTX_SPIN locks, respectively. Re-inline some lock acq/rel code; in the sleep lock case, we only inline the _obtain_lock()s in order to ensure that the inlined code fits into a cache line. In the spin lock case, we inline recursion and actually only perform a function call if we need to spin. This change has been made with the idea that we generally tend to avoid spin locks and that also the spin locks that we do have and are heavily used (i.e. sched_lock) do recurse, and therefore in an effort to reduce function call overhead for some architectures (such as alpha), we inline recursion for this case. Create a new malloc type for the witness code and retire from using the M_DEV type. The new type is called M_WITNESS and is only declared if WITNESS is enabled. Begin cleaning up some machdep/mutex.h code - specifically updated the "optimized" inlined code in alpha/mutex.h and wrote MTX_LOCK_SPIN and MTX_UNLOCK_SPIN asm macros for the i386/mutex.h as we presently need those. Finally, caught up to the interface changes in all sys code. Contributors: jake, jhb, jasone (in no particular order)
* Change the driver to allocate its own callout structure, and modifyjlemon2000-11-251-1/+1
| | | | | | the interface to use callout_* instead of timeout(). Also add an IS_MPSAFE #define (currently off) which will mark the driver as mpsafe to the upper layers.
* Add support for the Accton EN2242 MiniPCI adapter. This is just anwpaul2000-11-141-0/+1
| | | | | | ADMtek Centaur chip, so all we need is the PCI ID. Submitted by: Scott Lang <scottl@FreeBSD.org>
* Add PCI IDs for some additional cardbus cards. Yes, there really iswpaul2000-10-281-0/+9
| | | | | | | a RealTek 8139 cardbus device. Unfortunately it doesn't quite work yet because the CIS parser barfs on it. Submitted by msmith, with some small tweaks by me.
* NEWCARD/Cardbus -jon2000-10-191-0/+33
| | | | | | | | | This commit adds support for Xircom X3201 based cardbus cards. Support for the TDK 78Q2120 MII is also added. IBM Etherjet, Intel and Xircom cards uses these chips. Note that as a result of this commit, some Intel/DEC 21143 based cardbus cards will also attach, but not get link. That is being looked at.
* First round of converting network drivers from spls to mutexes. Thiswpaul2000-10-131-0/+5
| | | | | | | | takes care of all the 10/100 and gigE PCI drivers that I've done. Next will be the wireless drivers, then the USB ones. I may pick up some stragglers along the way. I'm sort of playing this by ear: if anyone spots any places where I've screwed up horribly, please let me know.
* Add support for parsing the media blocks from the SROM on 21143wpaul2000-10-051-1/+119
| | | | | | | | | | adapters. This is necessary in order to make this driver work with the built-in ethernet on the alpha Miata machines. These systems have a 21143-PC chip on-board and optional daughtercards with either a 10/100 MII transceiver or a 10baseT/10base2 transceiver. In both cases, you need to twiddle the GPIO bits on the controller in order to turn the transceivers on, and you have to read the media info from the SROM in order to find out what bits to twiddle.
* Special-case the LED twiddling code so that it doesn't do anythingwpaul2000-09-071-0/+1
| | | | | | | on the NEC VersaPro NoteBook PC. This 21143 implementation has no LEDs, and flipping the LED control bits somehow stops it from establishing a link. We check the subsystem ID and don't flip the LED control bits for the NEC NIC.
* Define some more bits in CSR15 needed for previous change.wpaul2000-09-021-0/+4
|
* Grrrr. Add definition for DC_WDOG_CTLWREN. I made this change yesterdaywpaul2000-08-021-0/+1
| | | | but stupidly only commited to if_dc.c.
* Add the PCI IDs for the Macronix 98727 and 98732 parts. These arewpaul2000-07-171-0/+2
| | | | | | 3.3volt PCI/cardbus chipsets similar to the 98715 (and they have 512-bit hash tables). Also update the man page to mention the 98727/98732 and the SOHOware SFA110A Rev B4 card with the 98715AEC-C chip.
* Apply patch to the dc driver to handle Macronix MX98715AEC-C/D/E chips,wpaul2000-07-151-0/+3
| | | | | | | | which differ slightly from the Macronix MX98715AEC chip on the sample adapter that I have in that the multicast hash table is only 128 bits wide instead of 512. New adapters are popping up with this chip, and due to improper handling of the smaller hash table, broadcast packets were not being received correctly.
* Add support for the Accton EN1217.asmodai2000-06-111-0/+10
| | | | | PR: 18735 Submitted by: Adoal Xu <adoal@iname.com>
* Rework the support for the internal autonegotiation on the 21143 andwpaul2000-05-311-0/+1
| | | | | | | | | | | | | | | | | | workalike chips (Macronix 98713A/98715 and PNIC II). Timing is somewhat critical: you need to bring the link as soon as possible after NWAY is done, and the old one second polling interval was too long. Now we poll every 10th of a second until NWAY completes (at which point we return to the 1 second interval again to keep an eye on the link state). I tested all the other cards I had on hand to make sure I didn't bust any of them and they seem to work (including the MII-based 21143 card). This should fix some autoneg problems with DE500-BA cards and the built-in 10/100 ethernet on some alpha systems. (Now before anyone asks why I never noticed this before, the old code worked just find with the Intel swich I used for testing back in NY. Apparently not all switches are as picky about the timing.)
* Teach the 'dc' driver how to pick up settings left over by themsmith2000-03-111-0/+3
| | | | | | | | SRM on alpha systems. This is an expedient if not entirely elegant solution to the problem. Submitted by: gallatin Approved by: jkh
* Add support for the Davicom DM9102A 10/100 ethernet controller chip.wpaul2000-01-191-0/+7
| | | | | | | | This is just to make sure we initialize the chip correctly: we need to make the sure the port select bit in CSR6 is set properly so that we use the internal PHY for 10/100 support. (The eval boards I have also include an external HomePNA PHY, but I need to play with that more before I can support it.)
* Fix some problems reported by Mike Pritchard:wpaul1999-12-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | - Add a flag DC_TX_INTR_ALWAYS which causes the transmit code to request a TX done interrupt for every packet. The PNIC seems to need this to insure that the sent TX buffers get reaped in a timely fashion. - Try to unreset the SIA as soon as possible after resetting the whole chip. - Change dcphy to support either 10/100 or 10Mbps only NICs. The built-in 21143 ethernet in Compaq Presario machines is 10Mbps only and it doesn't work right if we try to advertise 100Mbps modes during autoneg. When restricted to only 10mbps modes, it works fine. Note that for now, I detect this condition by checking the PCI subsystem ID on this NIC (which has a Compaq vendor/device ID). Yes, I know that's what the SROM is supposed to be for. I'm deliberately ignoring the SROM wherever possible. Sue me. The latter two fixes allow if_dc to work correctly with the built-in ethernet on certain Compaq Presario boxes. There are liable to be quite a few people using these as their home systems who might want to try FreeBSD; may as well be nice to them. Now if anybody out there has an Alpha miata with 10Mbps ethernet and can show me the output from pciconf -l on their system, I'd be grateful.
* Add the if_dc driver and remove all of the al, ax, dm, pn and mx driverswpaul1999-12-041-0/+903
which it replaces. The new driver supports all of the chips supported by the ones it replaces, as well as many DEC/Intel 21143 10/100 cards. This also completes my quest to convert things to miibus and add Alpha support.
OpenPOWER on IntegriCloud