summaryrefslogtreecommitdiff
path: root/sys/dev/ic/re.c
AgeCommit message (Collapse)Author
2009-05-23FALL THROUGH -> FALLTHROUGH to appease lintJonathan Gray
2009-02-12don't access undocumented register 0x82 for <= MAC06, since newerMartynas Venckus
realteks start to behave badly if we do. this should fix the widely reported re(4) issue. makes my RTL8101E usable, fixes Thomas' RTL8168C, and PR6023. tested by many this is a more conservative version of my diff from kettenis@ (does not clear PHY register 0x0b) ok kettenis@
2008-11-30Add initial 8168D/8111D support.Brad Smith
2008-11-28Eliminate the redundant bits of code for MTU and multicast handlingBrad Smith
from the individual drivers now that ether_ioctl() handles this. Shrinks the i386 kernels by.. RAMDISK - 2176 bytes RAMDISKB - 1504 bytes RAMDISKC - 736 bytes Tested by naddy@/okan@/sthen@/brad@/todd@/jmc@ and lots of users. Build tested on almost all archs by todd@/brad@ ok naddy@
2008-11-17Sprinkle a few more tabs.Brad Smith
2008-11-14Revert the reduction in the delays in the miibus read/write routines,Christian Weisgerber
which broke on-board RTL8111C adapters.
2008-11-09Introduce bpf_mtap_ether(), which for the benefit of bpf listenersChristian Weisgerber
creates the VLAN encapsulation from the tag stored in the mbuf header. Idea from FreeBSD, input from claudio@ and canacar@. Switch all hardware VLAN enabled drivers to the new function. ok claudio@
2008-11-08Reduce the delay's a bit in the miibus read/write routines.Brad Smith
Based on the Linux r8169 driver. Tested on PCI/CardBus and PCIe adapters.
2008-11-07Try recollecting RX/TX descriptors if we are going to switch back to TX/RXBrad Smith
interrupts. There seems to be a race between turning on TX/RX interrupt and asserting TX/RX interrupt by the hardware. From Sephe@DragonFly
2008-10-16Switch the existing TX VLAN hardware support over to having theChristian Weisgerber
tag in the header. Convert TX tagging in the drivers. Help and ok brad@
2008-10-16Convert RX tag stripping to storing the tag in the mbuf header andChristian Weisgerber
enable RX tag stripping for re(4). ok brad@
2008-10-11Use hardware timer to simulate interrupt moderation. Old devices will noBrad Smith
longer be livelocked when they are receiving on GigE line. Newer devices also gain well controlled interrupt rate. If hardware supports interrupt moderation (e.g. 8168B, 8168C), you could also use hardware based interrupt moderation, however, due to lack of necessary information it does not work as reliably as simulated interrupt moderation. It is _not_ recommended currently. By default, PCIe devices' simulated interrupt moderation timer is set to 75us, while PCI devices' is set to 125us. From sephe@DragonFly
2008-10-09Set hardware timer according to bus clock speed.Brad Smith
From sephe@DragonFly
2008-10-06Detect and store the PCI/PCIe bus speed.Brad Smith
From DragonFly
2008-10-02First step towards cleaning up the Ethernet driver ioctl handling.Brad Smith
Move calling ether_ioctl() from the top of the ioctl function, which at the moment does absolutely nothing, to the default switch case. Thus allowing drivers to define their own ioctl handlers and then falling back on ether_ioctl(). The only functional change this results in at the moment is having all Ethernet drivers returning the proper errno of ENOTTY instead of EINVAL/ENXIO when encountering unknown ioctl's. Shrinks the i386 kernels by.. RAMDISK - 1024 bytes RAMDISKB - 1120 bytes RAMDISKC - 832 bytes Tested by martin@/jsing@/todd@/brad@ Build tested on almost all archs by todd@/brad@ ok jsing@
2008-09-10Convert timeout_add() calls using multiples of hz to timeout_add_sec()Bret Lambert
Really just the low-hanging fruit of (hopefully) forthcoming timeout conversions. ok art@, krw@
2008-08-29Take the PHY out of power down while attaching just before probing forBrad Smith
PHY. This helps with systems dual booting Windows XP/Vista where the Windows drivers will put the PHY in power down mode when rebooting. From FreeBSD
2008-08-28Rewrite the multicast/promiscuous handling and in the process merge intoBrad Smith
one function. Also fix reception of multicast packets when in promisuous mode. The Realtek chips are a little different than most others in that they will not receive multicast packets by enabling promiscuous mode alone. Tested by naddy@ and sthen@ ok naddy@
2008-08-13Replace the use of a separate softc field to track the linkBrad Smith
state with the newly minted link flag in the softc's rl_flags field. Tested by fkr@
2008-08-11Add support for TX/RX checksum offload for newer re(4) chipsets.Brad Smith
Tested by naddy@ From FreeBSD
2008-08-05Add support for reading the MAC address for newer re(4) chipsets.Brad Smith
The current method results in a MAC address of all zeros. Tested by bernd@/jcs@ with 8102E and fkr@ with 8168C. From FreeBSD ok jsg@
2008-07-15Adapt some code from the FreeBSD driver required to makeJonathan Gray
newer PCI Express adapters (ie 8168C*/8102*) work. V2 Checksum offload format in RTL8102 devices not yet supported. No objections from brad@. Thanks to everyone who tested.
2008-07-13Add some additional hardware revisions from FreeBSD needed forJonathan Gray
upcoming changes and sort list.
2008-04-20Move the threshold fix from the re(4) code back into the header asBrad Smith
it was going to be before the release. No functional change. prodded by kettenis@ ok dlg@
2008-04-20- Recognize the 8168C chipset.Brad Smith
- Add some more defines for the 8168C chipset. From NetBSD ok dlg@
2008-04-20Remove redundant checks for the 8139C+ chipset, this code can onlyBrad Smith
be reached if using the 8139C+ chipset. ok dlg@
2008-04-20- Add some more defines.Brad Smith
- Use one of the new defines in the re(4) code to remove a magic number. - Correct a comment. - Fix a typo. Most of this is from NetBSD. ok dlg@
2008-03-20VLAN tag info must be inserted into all descriptors of a multi-descriptorBrad Smith
packet transmission. From NetBSD Fixes PR 5655. Tested by Panagiotis Efstratiou <slasher at ee dot auth dot gr>, brad@ and sthen@
2008-03-12Set the RX FIFO threshold to no RX threshold for re(4) adapters.Brad Smith
This resolves a number of various bad symptoms experienced by numerous users especially with the adapters at Gig speed. Tested by quite a few users. From FreeBSD/NetBSD ok deraadt@
2008-02-17Simplify the hw revision handling by removing the use of theBrad Smith
rl_type softc field and only relying on the sc_hwrev softc field thoughout the driver. Tested by a number of users from tech@ ok dlg@
2008-01-16- Store the hw revision into a new softc field in re_attach() and referenceBrad Smith
the softc field wherever it is necessary. - Use a switch case in re_setmulti() to make things a bit easier to read. ok henning@ dlg@
2007-07-16The logic determining the value of rl_eewidth for the 9346 and 9356Todd C. Miller
eeproms was backwards. This resulted in a bogus MAC address being read from the eeprom on certain cards. From FreeBSD. OK pvalchev@
2007-06-06add another revision "RTL8168 3"; from NetBSD via BradPeter Valchev
2007-06-06- Recognize the 8110SCe 8169 revision in re(4)Peter Valchev
- Rename the existing 8110SC revision to 8110SCd to be consistent info from the linux driver via Brad
2007-05-08non-static inline functions waste spaceTheo de Raadt
2007-05-05Properly ifdef debug bits to save a bit of space.Jonathan Gray
ok reyk@
2007-03-02Fix and enable HW VLAN tagging.Kenneth R Westerback
From brad@, tested by brad on i386/amd64/sparc64 and by maja@ and ian@ on i386.
2007-02-25dmesg should look like devN at busN locators: device infoTheo de Raadt
the locators are printed by the bus drivers, rest by the device's driver.
2007-02-15from linux->freebsd->brad->me, tested by matthieu, brad, kettenis, others...Jason Wright
looks like realtek reversed the order of multicast stuff on the PCI-E cards
2007-02-08Don't clear IFF_OACTIVE in re_txeof() unless there are at least 4 freeMark Kettenis
TX descriptors. Further down the road re_encap() will bail if there aren't at least 4 free TX descriptors, causing re_start() to abort and set IFF_OACTIVE again. From marius@FreeBSD Tested by me, brad@, otto@ and Emilio Parea.
2007-02-03Don't set the RL_CFG1_FULLDUPLEX bit. The RL_CFG1_FULLDUPLEX bit inKenneth R Westerback
config register 1 is only valid with the 8129 chipset. The rtl81x9reg.h header has this bit marked with a comment indicating it is for the 8129 chipset and the 8168/8169 datasheets confirm that this bit is not valid for the newer chipsets. From yongari@FreeBSD via brad. Tested by brad, kettenis and otto.
2007-01-27When flooding dmesg with ``can't read/write phy register'', be nice enough toMiod Vallat
print the register number, so that someone gets a chance to investigate the problem.
2007-01-26remove duplicate test; from bradJason Wright
2007-01-23adjust m_data and m_len directly rather than calling m_adj().Marcus Glocker
From tsutsui@NetBSD over brad, some corrections by claudio@, tested by brad on sparc64 and otto@ on landisk. OK claudio@
2006-12-30Add flow control support.Mark Kettenis
ok brad@
2006-12-21re_fixup_rx() is a no-op function, other than copying data to the same ↵Dale Rahn
address, thus slowing down the driver on __STRICT_ALIGN archs, remove. ok deraadt@
2006-12-20remove debug message inserted in last commitTheo de Raadt
2006-12-12add a workaround for hardware ip4csum-tx bug on re(4) chips. theReyk Floeter
hardware checksum could be mangled with 28 byte or less IP packets. >From tsutsui@NetBSD Tested by otto@ brad@ and Han Boetes <han at mijncomputer dot nl> Tested by maja@ with the 8139C+ chipset Tested on amd64/i386/sparc64 ok mglocker@ brad@ otto@
2006-12-01rename 8100E id to spin 1 and add the 8100E second spin chip idTodd T. Fries
chip id from Linux r8169 driver from brad@
2006-11-28identify the chipset.Brad Smith