#
79d11e09 |
| 15-Jul-2000 |
Bill Paul <wpaul@FreeBSD.org> |
Apply patch to the dc driver to handle Macronix MX98715AEC-C/D/E chips, which differ slightly from the Macronix MX98715AEC chip on the sample adapter that I have in that the multicast hash table is o
Apply patch to the dc driver to handle Macronix MX98715AEC-C/D/E chips, 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.
show more ...
|
Revision tags: release/3.5.0_cvs |
|
#
9ca710f6 |
| 11-Jun-2000 |
Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org> |
Add support for the Accton EN1217.
PR: 18735 Submitted by: Adoal Xu <adoal@iname.com>
|
#
318b02fd |
| 31-May-2000 |
Bill Paul <wpaul@FreeBSD.org> |
Rework the support for the internal autonegotiation on the 21143 and workalike chips (Macronix 98713A/98715 and PNIC II). Timing is somewhat critical: you need to bring the link as soon as possible a
Rework the support for the internal autonegotiation on the 21143 and 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.)
show more ...
|
Revision tags: release/4.0.0_cvs |
|
#
510a809e |
| 11-Mar-2000 |
Mike Smith <msmith@FreeBSD.org> |
Teach the 'dc' driver how to pick up settings left over by the SRM on alpha systems. This is an expedient if not entirely elegant solution to the problem.
Submitted by: gallatin Approved by: jkh
|
#
88d739dc |
| 19-Jan-2000 |
Bill Paul <wpaul@FreeBSD.org> |
Add support for the Davicom DM9102A 10/100 ethernet controller chip. 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 s
Add support for the Davicom DM9102A 10/100 ethernet controller chip. 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.)
show more ...
|
Revision tags: release/3.4.0_cvs |
|
#
91cc2adb |
| 13-Dec-1999 |
Bill Paul <wpaul@FreeBSD.org> |
Fix some problems reported by Mike Pritchard:
- 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
Fix some problems reported by Mike Pritchard:
- 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.
show more ...
|
#
96f2e892 |
| 04-Dec-1999 |
Bill Paul <wpaul@FreeBSD.org> |
Add the if_dc driver and remove all of the al, ax, dm, pn and mx drivers which it replaces. The new driver supports all of the chips supported by the ones it replaces, as well as many DEC/Intel 21143
Add the if_dc driver and remove all of the al, ax, dm, pn and mx drivers 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.
show more ...
|
#
9199c09a |
| 06-Jan-2010 |
Warner Losh <imp@FreeBSD.org> |
Merge from head at r201628.
# This hasn't been tested, and there are at least three bad commits # that need to be backed out before the branch will be stable again.
|
#
afa45c07 |
| 04-Jan-2010 |
Warner Losh <imp@FreeBSD.org> |
cardbus -> CardBus
|
#
593a1aea |
| 03-Jan-2010 |
Martin Blapp <mbr@FreeBSD.org> |
Fix card/device names, no functional change
The ADMtek AN985 is the cardbus variant of ADMtek AN983 The Netgear FA511 is just a relabled ADMtek AN985
PR: kern/50574 MFC after: 1 month
|
Revision tags: release/7.2.0_cvs, release/7.2.0, release/7.1.0_cvs, release/7.1.0 |
|
#
15578119 |
| 08-Dec-2008 |
Marius Strobl <marius@FreeBSD.org> |
- According to the corresponding Linux, NetBSD and OpenSolaris drivers, there should be a 1us delay after every write when bit-banging the MII. Also insert barriers in order to ensure the inten
- According to the corresponding Linux, NetBSD and OpenSolaris drivers, there should be a 1us delay after every write when bit-banging the MII. Also insert barriers in order to ensure the intended ordering. These changes hopefully will solve the bus wedging occasionally experienced with DM9102A since r182461. - Deobfuscate dc_mii_readreg() a bit.
show more ...
|
Revision tags: release/6.4.0_cvs, release/6.4.0 |
|
#
d0d67284 |
| 29-Aug-2008 |
Marius Strobl <marius@FreeBSD.org> |
For chips with a broken DC_ISR_RX_STATE which f.e. never signals stopped nor the waiting state and also no other means to check whether the receiver is idle (see also r163774), we have no choice than
For chips with a broken DC_ISR_RX_STATE which f.e. never signals stopped nor the waiting state and also no other means to check whether the receiver is idle (see also r163774), we have no choice than to call mii_tick(9) unconditionally even in the case of the DC_REDUCED_MII_POLL handling as far as the RX side is concerned. This isn't necessarily worse than checking whether RX is idle though because unlike as with TX we're racing with the hardware, which might receive packets any time while we poll the MII, anyway.
Reported and tested by: Jacob Owens Reviewed by: yongari MFC after: 3 days
show more ...
|
#
ebc284cc |
| 24-Mar-2008 |
Marius Strobl <marius@FreeBSD.org> |
- Const'ify the dc_devs array. - Correct the maxsize parameter when creating the mbufs busdma tag to reflect the actual requirement of dc(4). - Move the KASSERT in dc_newbuf() to the right spot. -
- Const'ify the dc_devs array. - Correct the maxsize parameter when creating the mbufs busdma tag to reflect the actual requirement of dc(4). - Move the KASSERT in dc_newbuf() to the right spot. - Also convert the TX side to take advantage of bus_dmamap_load_mbuf_sg(9). - Move the comment regarding dc_start_locked() to the right spot.
MFC after: 2 weeks
show more ...
|
Revision tags: release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0 |
|
#
82a67a70 |
| 05-Aug-2007 |
Marius Strobl <marius@FreeBSD.org> |
o In order to reduce bug and code duplication fold handling of NICs requiring DC_TX_ALIGN or DC_TX_COALESCE, which was previously done in dc_start_locked(), into dc_encap(). o In dc_encap(): -
o In order to reduce bug and code duplication fold handling of NICs requiring DC_TX_ALIGN or DC_TX_COALESCE, which was previously done in dc_start_locked(), into dc_encap(). o In dc_encap(): - If m_defrag() fails just drop the packet like other NIC drivers do. This should only happen when there's a mbuf shortage, in which case it was possible to end up with an IFQ full of packets which couldn't be processed as they couldn't be defragmented as they were taking up all the mbufs themselves. This includes adjusting dc_start_locked() to not trying to prepend the mbuf (chain) if dc_encap() has freed it. - Likewise, if bus_dmamap_load_mbuf() fails as dc_dma_map_txbuf() failed, free the mbuf possibly allocated by the above call to m_defrag() and drop the packet. o In dc_txeof(): - Don't clear IFF_DRV_OACTIVE unless there are at least 6 free TX descriptors. Further down the road dc_encap() will bail if there are only 5 or fewer free TX descriptors, causing dc_start_locked() to abort and prepend the dequeued mbuf again so it makes no sense to pretend we could process mbufs again when in fact we won't. While at it replace this magic 5 with a macro DC_TX_LIST_RSVD. - Just always assign idx to sc->dc_cdata.dc_tx_cons; it doesn't make much sense to exclude the idx == sc->dc_cdata.dc_tx_cons case. o In dc_dma_map_txbuf() there's no need to set sc->dc_cdata.dc_tx_err to error if the latter is != 0, bus_dmamap_load_mbuf() already returns the same error value in that case anyway. o For less overhead, convert to use bus_dmamap_load_mbuf_sg() for loading RX buffers. o Remove some banal and/or outdated comments.
Approved by: re (kensmith) MFC after: 1 week
show more ...
|
Revision tags: release/6.2.0_cvs, release/6.2.0 |
|
#
b1d16143 |
| 06-Dec-2006 |
Marius Strobl <marius@FreeBSD.org> |
- Use our own callout (the dc_tick() callout uses varying periods depending on the NIC and isn't used at all with HomePNA links) instead of if_slowtimo() for driving dc_watchdog() in order to a
- Use our own callout (the dc_tick() callout uses varying periods depending on the NIC and isn't used at all with HomePNA links) instead of if_slowtimo() for driving dc_watchdog() in order to avoid races accessing if_timer. - Use bus_get_dma_tag() so dc(4) works on platforms requiring it. - Don't bother to set if_mtu to ETHERMTU, ether_ifattach() does that. - Remove an alpha remnant in dc_softc.
show more ...
|
#
6b9f5c94 |
| 15-Sep-2006 |
Gleb Smirnoff <glebius@FreeBSD.org> |
- Consistently use if_printf() only in interface methods: if_start(), if_watchdog, etc., or in functions used only in these methods. In all other functions in the driver use device_printf(). - Us
- Consistently use if_printf() only in interface methods: if_start(), if_watchdog, etc., or in functions used only in these methods. In all other functions in the driver use device_printf(). - Use __func__ instead of typing function name.
Submitted by: Alex Lyashkov <umka sevcity.net>
show more ...
|
#
17762569 |
| 08-Jun-2006 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Fix the last commit.
Submitted by: jhb Pointy hat to: glebius
|
#
f67dea82 |
| 07-Jun-2006 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Add device IDs for Linksys PCMPC200 Cardbus card.
PR: kern/75582 Submitted by: Gary Palmer
|
#
1e2e70b1 |
| 03-Jun-2006 |
John Baldwin <jhb@FreeBSD.org> |
- Switch on the full 32-bit device ID to avoid collisions between the vendor-specific device ids across vendors. - Include the revision in the dc_devs[] array instead of special casing the revid
- Switch on the full 32-bit device ID to avoid collisions between the vendor-specific device ids across vendors. - Include the revision in the dc_devs[] array instead of special casing the revid handling in dc_devtype(). - Use PCI bus accessors to read registers instead of pci_read_config() where possible. - Use an 8-bit write to update the latency timer. - Use PCIR_xxx constants and remove unused DC_xxx related to standard PCI config registers.
MFC after: 1 week
show more ...
|
Revision tags: release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0 |
|
#
9be0993c |
| 16-Mar-2006 |
John Baldwin <jhb@FreeBSD.org> |
Add device-id for the Neteasy DRP-32TXD cardbus 10/100 card. It's another ADMTek AN985 clone.
MFC after: 3 days Tested by: Lila liladude at aruba dot it
|
#
8df1ebe9 |
| 02-Dec-2005 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Fix the misalignment bugs differently than was done in the previous commit. Copy the ethernet address into a local buffer, which we know is sufficiently aligned for the width of the memory accesses t
Fix the misalignment bugs differently than was done in the previous commit. Copy the ethernet address into a local buffer, which we know is sufficiently aligned for the width of the memory accesses that we do. This also eliminates all suspicious and potentionally harmful casts.
In collaboration with: ru
show more ...
|
#
829733d0 |
| 22-Nov-2005 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Resolve misalignment traps caused by changes to IF_LLADDR(). Use de16dec() and le16dec() to fetch the link-level address from struct ifnet.
Tested on: alpha Reviewed by: jhb See also: de(4)
|
Revision tags: release/6.0.0_cvs, release/6.0.0 |
|
#
22f6205d |
| 10-Aug-2005 |
John Baldwin <jhb@FreeBSD.org> |
Use device_printf() and if_printf() and remove dc_unit from softc.
|
#
fc74a9f9 |
| 10-Jun-2005 |
Brooks Davis <brooks@FreeBSD.org> |
Stop embedding struct ifnet at the top of driver softcs. Instead the struct ifnet or the layer 2 common structure it was embedded in have been replaced with a struct ifnet pointer to be filled by a c
Stop embedding struct ifnet at the top of driver softcs. Instead the struct ifnet or the layer 2 common structure it was embedded in have been replaced with a struct ifnet pointer to be filled by a call to the new function, if_alloc(). The layer 2 common structure is also allocated via if_alloc() based on the interface type. It is hung off the new struct ifnet member, if_l2com.
This change removes the size of these structures from the kernel ABI and will allow us to better manage them as interfaces come and go.
Other changes of note: - Struct arpcom is no longer referenced in normal interface code. Instead the Ethernet address is accessed via the IFP2ENADDR() macro. To enforce this ac_enaddr has been renamed to _ac_enaddr. - The second argument to ether_ifattach is now always the mac address from driver private storage rather than sometimes being ac_enaddr.
Reviewed by: sobomax, sam
show more ...
|
Revision tags: release/5.4.0_cvs, release/5.4.0, release/4.11.0_cvs, release/4.11.0 |
|
#
60727d8b |
| 07-Jan-2005 |
Warner Losh <imp@FreeBSD.org> |
/* -> /*- for license, minor formatting changes
|