#
267654 |
|
19-Jun-2014 |
gjb |
Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
250458 |
|
10-May-2013 |
luigi |
MFC: sync the version of netmap with the one in HEAD, including device drivers (mostly simplifying the code in the interrupt handlers).
On passing, also merge r250414, which is related to netmap and the use of lem/em in virtual machines.
|
#
235527 |
|
16-May-2012 |
jfv |
MFC of the e1000 drivers: revisions include 227309,228281,228386,228387,228393,228405, 228415,228788,228803,229606,229767,229939, 230023,230024,230742,231796,232238,233708, 234154,234665,235256
|
#
225736 |
|
22-Sep-2011 |
kensmith |
Copy head to stable/9 as part of 9.0-RELEASE release cycle.
Approved by: re (implicit)
|
#
220251 |
|
01-Apr-2011 |
jfv |
Change the refresh_mbuf logic slightly, add an inline to calculate the outstanding descriptors that need to be refreshed at any time, and use THAT in rxeof to determine if refreshing needs to be done. Also change the local_timer to simply fire off the appropriate interrupt rather than schedule a tasklet, its simpler.
MFC in two weeks
|
#
219763 |
|
18-Mar-2011 |
jfv |
Correct broken define
|
#
219753 |
|
18-Mar-2011 |
jfv |
This delta updates the em driver to version 7.2.2 which has been undergoing test for some weeks. This improves the RX mbuf handling to avoid system hang due to depletion. Thanks to all those who have been testing the code, and to Beezar Liu for the design changes.
Next the igb driver is updated for similar RX changes, but also to add new features support for our upcoming i350 family of adapters.
MFC after a week
|
#
214363 |
|
25-Oct-2010 |
jfv |
Bug fix delta to the em driver: - Chasin down bogus watchdogs has led to an improved design to this handling, the hang decision takes place in the tx cleanup, with only a simple report check in local_timer. Our tests have shown no false watchdogs with this code. - VLAN fixes from jhb, the shadow vfta should be per interface, but as global it was not. Thanks John. - Bug fixes in the support for new PCH2 hardware. - Thanks for all the help and feedback on the driver, changes to lem with be coming shortly as well.
|
#
213234 |
|
27-Sep-2010 |
jfv |
Update code from Intel: - Sync shared code with Intel internal - New client chipset support added - em driver - fixes to 82574, limit queues to 1 but use MSIX - em driver - large changes in TX checksum offload and tso code, thanks to yongari. - some small changes for watchdog issues. - igb driver - local timer watchdog code was missing locking this and a couple other watchdog related fixes. - bug in rx discard found by Andrew Boyer, check for null pointer
MFC: a week
|
#
212303 |
|
07-Sep-2010 |
jfv |
Tighten up the rx mbuf refresh code, there were some discrepencies from the igb version which was the target.
Change the message when neither MSI or MSIX are enabled and a fallback to Legacy interrupts happen, the existing message was confusing.
|
#
211913 |
|
27-Aug-2010 |
yongari |
Do not allocate multicast array memory in multicast filter configuration function. For failed memory allocations, em(4)/lem(4) called panic(9) which is not acceptable on production box. igb(4)/ixgb(4)/ix(4) allocated the required memory in stack which consumed 768 bytes of stack memory which looks too big.
To address these issues, allocate multicast array memory in device attach time and make multicast configuration success under any conditions. This change also removes the excessive use of memory in stack.
Reviewed by: jfv
|
#
206437 |
|
09-Apr-2010 |
jfv |
A few more changes from yongari: - code flow in handler could let interrupt be reenabled when not wanted. - change where the RX lock is taken to improve performance. - adapter->msix is true for MSI systems also, it needs to explicitly test for 82574, good one :)
|
#
206429 |
|
09-Apr-2010 |
jfv |
Incorporate suggested improvements from yongari.
Also, from feedback, make the multiqueue code an option (EM_MULTIQUEUE) that is off by default. Problems have been seen with UDP when its on.
|
#
206001 |
|
31-Mar-2010 |
marius |
Hook the identification LEDs of igb(4), lem(4) and em(4) devices up with led(4) so they can be lit or f.e. made blink via `echo f2 > /dev/led/em0` for localization purposes.
Approved by: jfv MFC afer: 1 week (after r205869)
|
#
205884 |
|
30-Mar-2010 |
jfv |
Fix lint build problem.
|
#
205869 |
|
29-Mar-2010 |
jfv |
Update to igb and em:
em revision 7.0.0: - Using driver devclass, seperate legacy (pre-pcie) code into a seperate source file. This will at least help protect against regression issues. It compiles along with em, and is transparent to end use, devices in each appear to be 'emX'. When using em in a modular form this also allows the legacy stuff to be defined out. - Add tx and rx rings as in igb, in the 82574 this becomes actual multiqueue for the first time (2 queues) while in other PCIE adapters its just make code cleaner. - Add RX mbuf handling logic that matches igb, this will eliminate packet drops due to temporary mbuf shortage.
igb revision 1.9.3: - Following the ixgbe code, use a new approach in what was called 'get_buf', the routine now has been made independent of rxeof, it now does the update to the engine TDT register, this design allows temporary mbuf resources to become non-critical, not requiring a packet to be discarded, instead it just returns and does not increment the tail pointer. - With the above change it was also unnecessary to keep 'spare' maps around, since we do not have the discard issue. - Performance tweaks and improvements to the code also.
MFC in a week
|
#
203083 |
|
27-Jan-2010 |
jfv |
Two more build problems, missing includes and semicolon.
|
#
203081 |
|
27-Jan-2010 |
jfv |
Opps, completely wrong version of if_em.h got into the checkin, sorry all :(
|
#
203049 |
|
26-Jan-2010 |
jfv |
Update the 1G drivers, shared code sync with Intel, igb now has a queue notion that has a single interrupt with an RX/TX pair, this will reduce the total interrupts seen on a system. Both em and igb have a new watchdog method. igb has fixes from Pyun Yong-Hyeon that have improved stability, thank you :)
I wish to MFC this for 7.3 asap, please test if able.
|
#
200243 |
|
07-Dec-2009 |
jfv |
Resync with Intel versions of both the em and igb drivers. These add new hardware support, most importantly the pch (i5 chipset) in the em driver. Also, both drivers now have the simplified (and I hope improved) watchdog code. The igb driver uses the new RX cleanup that I first implemented in ixgbe.
em - version 6.9.24 igb - version 1.8.4
|
#
194865 |
|
24-Jun-2009 |
jfv |
Updates for both the em and igb drivers, add support for multiqueue tx, shared code updates, new device support, and some bug fixes.
|
#
191611 |
|
27-Apr-2009 |
kmacy |
collapse the two em_start_locked routines in to one
|
#
191038 |
|
14-Apr-2009 |
kmacy |
- define em_transmit and em_qflush - make buF_ring usage conditional but enabled by default
Reviewed by: jfv
|
#
185353 |
|
26-Nov-2008 |
jfv |
This delta is primarily a fix for es2lan devices that will sometimes fail to initialize problem due to a lock contention with management hardware. However, in order to deliver that fix it was necessary to take a shared code update as a whole, and this required scattered changes in the core code to be compatible.
The em driver now has VLAN HW support added as the igb driver had previously.
MFC after: ASAP - in time for 7.1 RELEASE
|
#
181027 |
|
30-Jul-2008 |
jfv |
Merge of the source for igb and em into dev/e1000, this proved to be necessary to make the static drivers work in EITHER/OR or BOTH configurations. Modules will still build in sys/modules/igb or em as before.
This also updates the igb driver for support for the 82576 adapter, adds shared code fixes, and etc....
MFC after: ASAP
|
#
178523 |
|
25-Apr-2008 |
jfv |
This delta has a few important items:
PR 122839 is fixed in both em and in igb
Second, the issue on building modules since the static kernel build changes is now resolved. I was not able to get the fancier directory hierarchy working, but this works, both em and igb build as modules now.
Third, there is now support in em for two new NICs, Hartwell (or 82574) is a low cost PCIE dual port adapter that has MSIX, for this release it uses 3 vectors only, RX, TX, and LINK. In the next release I will add a second TX and RX queue. Also, there is support here for ICH10, the followon to ICH9. Both of these are early releases, general availability will follow soon.
Fourth: On Hartwell and ICH10 we now have IEEE 1588 PTP support, I have implemented this in a provisional way so that early adopters may try and comment on the functionality. The IOCTL structure may change. This feature is off by default, you need to edit the Makefile and add the EM_TIMESYNC define to get the code.
Enjoy all!!
|
#
177867 |
|
02-Apr-2008 |
jfv |
This update primarily addresses the ability to have both the em and the igb driver static in the kernel. But it also reflects some other bug fixes in my development stream at Intel. PR 122373 is also fixed in this code.
|
#
176671 |
|
29-Feb-2008 |
jfv |
Need to add define of FAST interrupts as default
|
#
176667 |
|
29-Feb-2008 |
jfv |
This change introduces a split to the Intel E1000 driver, now rather than just em, there is an igb driver (this follows behavior with our Linux drivers). All adapters up to the 82575 are supported in em, and new client/desktop support will continue to be in that adapter.
The igb driver is for new server NICs like the 82575 and its followons. Advanced features for virtualization and performance will be in this driver.
Also, both drivers now have shared code that is up to the latest we have released. Some stylistic changes as well.
Enjoy :)
|
#
174029 |
|
28-Nov-2007 |
jfv |
A minor issue with lock names, WITNESS complains when the two locks are the same...
|
#
173789 |
|
20-Nov-2007 |
jfv |
One nit, FAST handling is now in #ifdef's for compatibility between RELEASES, but we want it on by default in 7 and later, add that define, and take out a fragment left from a workaround being removed.
|
#
173788 |
|
20-Nov-2007 |
jfv |
Driver version 6.7.3 - Bring HEAD up to the latest shared code - Fix TSO problem using limited MSS and forwarding - Dual lock implementation - New device support - For my ease, this code can compile in either 6.x or later - brings this driver in sync with the 6.3
|
#
172138 |
|
10-Sep-2007 |
jfv |
A number of small fixes: - duplicate #define in header, thanks to Kevin Lo for pointing out. - incorrect BUSMASTER enable logic, thanks Patrick Oeschger - 82543 fails due to bogus IO BAR logic - Allow 82571 to use MSI interrupts - Checksum Offload for UDP not working on 82575
Approved by:re
|
#
169637 |
|
16-May-2007 |
jfv |
Couple of changes, back down on last TSO change, instead make old adapter list still capable, but only PCI-E adapters are now enabled. The user can enable older PCI-X or PCI adapters using ifconfig. Secondly, Arthur Hartwig pointed out my MSI change was not working correctly, changed to something that now does. Thanks Arthur. There was also a fundamental bug in the 82575 MSIX code, the MSIX registers had to be mapped, opps :)
Rubber-stamped by: Pdeuskar
|
#
169589 |
|
15-May-2007 |
jfv |
This delta adds two bug fixes: one that makes HW Offload logic in legacy codepath match the 82575, without this we were seeing bridging fail on 82546 adapters. Secondly, I have limited TSO to PCI Express adapters, I meant to do this and it got dropped in the earlier delta. Next, I am dropping in the latest shared code from our development team, consensus was that this should be done frequently, so I am :)
Approved by: pdeuskar
|
#
169248 |
|
04-May-2007 |
rwatson |
$FreeBSD$ tags are not compilable C code; wrap in either __FBSDID() or in comments for .c and .h files respectively. Jack may want to clean up style or other aspects once he's up and about again, but this gets the kernel compiling.
|
#
169240 |
|
03-May-2007 |
jfv |
Merge in the new driver (6.5.0) of Intel. This has a new shared code infrastructure that is family specific and modular. There is also support for our latest gigabit nic, the 82575 that is MSI/X and multiqueue capable.
The new shared code changes some interfaces to the core code but testing at Intel has been going on for months, it is fairly stable.
I have attempted to be careful in retaining any fixes that CURRENT had and we did not, I apologize in advance if any thing gets clobbered, I'm sure I'll hear about it :)
Approved by pdeuskar
|
#
164546 |
|
23-Nov-2006 |
kmacy |
Move magic PCIe workaround constant to header - add appropriate comment
Suggested by: jfvogel
|
#
164305 |
|
15-Nov-2006 |
jhb |
Add MSI support to em(4), bce(4), and mpt(4). For now, we only support devices that support a maximum of 1 message, and we use that 1 message instead of the INTx rid 0 IRQ with the same interrupt handler, etc.
|
#
164126 |
|
09-Nov-2006 |
glebius |
Instead of using the legacy if_timer/if_watchdog interface create our own watchdog that piggybacks on the em_local_timer() routine.
We suppose that the if_timer/if_watchdog interface should be obsoleted, since it doesn't fit the modern SMP network stack. NIC drivers should create their own watchdogs, that check and clear the timers always holding driver's lock.
In collaboration with: jfv, scottl
|
#
163826 |
|
31-Oct-2006 |
glebius |
Rework the transmit register handling. In em_encap() store index of the EOP descriptor in the first descriptor of the packet. And then in em_txeof() search for DD bits set only in the EOP descriptors, embedding the cleanup of all packet's descriptors into inner loop.
This change is important for future chips, where DD bit is going to be set only on the EOP descriptors.
Submitted by: jfv
|
#
163824 |
|
31-Oct-2006 |
glebius |
Merge new vendor release - 6.2.9.
Details: o if_em.c changes: - Added several new PCI ids. - Check em_check_phy_reset_block() before doing SIOCSIFMEDIA ioctl. - Don't touch TARC registers, they are now handled in shared code in if_em_hw.c. - Move RDH and RDT setting to the end of em_initialize_receive_unit(). - Declare em_read_pcie_cap_reg(), now empty. o if_em_hw.c dropped in from vendor, then restored rev. 1.15. o if_em_hw.h dropped in from vendor, then modified: - Added RX overrun interrupt flag to interrupt enable mask. - Remove declarations of em_io_read(), em_io_write().
Approved by: jfv
|
#
163730 |
|
28-Oct-2006 |
jfv |
Backout bogus checkin to HEAD Approved by: scottl
|
#
163724 |
|
27-Oct-2006 |
jfv |
This is the merge of the Intel 6.2.9 driver. It provides all new shared code, new device support, and it is hoped a more stable driver for 6.2. RELEASE. This checkin was discussed and approved today by RE, scottl, jhb, and pdeuskar
|
#
162171 |
|
09-Sep-2006 |
pdeuskar |
Add support for TSO. Thanks to Andre for adding support in the stack and Jack Vogel for driver changes.
Submitted by: Jack Vogel
|
#
161778 |
|
31-Aug-2006 |
jhb |
Just foward declare 'struct adapter' instead of declaring an actual 'adapter' structure.
|
#
161266 |
|
13-Aug-2006 |
yongari |
Overhaul Rx path to recover from mbuf cluster allocation failure. o Create one more spare DMA map for Rx handler to recover from bus_dmamap_load_mbuf_sg(9) failure. o Make sure to update status bit in Rx descriptors even if we failed to allocate a new buffer. Previously it resulted in stuck condition and em_handle_rxtx task took up all available CPU cycles. o Don't blindly unload DMA map. Reuse loaded DMA map if received packet has errors. This would speed up Rx processing a bit under heavy load as it does not need to reload DMA map in case of error. (bus_dmamap_load_mbuf_sg(9) is the most expensive call in driver context.) o Update if_iqdrops counter if it can't allocate a mbuf cluster. With this change it's now possible to see queue dropped packets with netstat(1). o Update mbuf_cluster_failed counter if fixup code failed to allocate mbuf header. o Return ENOBUFS instead of ENOMEM in case of Rx fixup failure. o Make adapter->lmp NULL in case of Rx fixup failure. Strictly specking it's not necessary for correct operation but it makes the intention clear. o Remove now unused dropped_pkts member in softc.
With these changes em(4) should survive mbuf cluster allocation failure on Rx path.
Reviewed by: pdeuskar, glebius (with improvements)
|
#
160956 |
|
03-Aug-2006 |
pdeuskar |
Revert back changes to made in rev 1.109 of if_em.c which were unnecessary. This makes it easier for us to get the changes into -current and to -stable quickly.
|
#
160949 |
|
03-Aug-2006 |
glebius |
Merge in new driver from Intel, version 6.0.5. It adds support for 80003 NICs and NICs found on ICH8 mobos, and improves support for already known chips.
Details: - if_em.c. Merged manually, viewing diff between new vendor driver and previous one. This was an easy task, because most changes between 5.1.5 and 6.0.5 are bugfixes taken from FreeBSD. - if_em_hw.h. Dropped in from vendor, and then restored revisions 1.16, 1.17, 1.18. - if_em_hw.c. Dropped in from vendor, and then restored revision 1.15. - if_em_osdep.h. Added new required macros from vendor file and add a hack against define namespace mangling in if_em_hw.h. Intel made another hack, but I prefer mine.
|
#
160519 |
|
20-Jul-2006 |
yongari |
Since resetting hardware takes a very long time and results in link renegotiation, we only initialize the hardware only when it is absolutely required. Process SIOCGIFADDR ioctl in em(4) when we know an IPv4 address is added. Handling SIOCGIFADDR in a driver is layering violation but it seems that there is no easy way without rewritting hardware initialization code to reduce settle time after reset.
This should fix a long standing bug which didn't send ARP packet when interface address is changed or an alias address is added. Another effect of this fix is it doesn't need additional delays anymore when adding an alias address to the interface. While I'm here add a new if_flags into softc which remembers current prgroammed interface flags and make use of it when we have to program promiscuous mode.
Tested by: Atanas <atanas AT asd DOT aplus DOT net> Analyzed by: rwatson Discussed with: -stable
|
#
155709 |
|
15-Feb-2006 |
glebius |
- Second style(9) megacleanup. - Rename "adapter" to "sc"/"softc", to be like other drivers.
(-13 Kb less source code)
|
#
155674 |
|
14-Feb-2006 |
glebius |
Move includes from if_em.h to if_em.c and sort them.
|
#
155305 |
|
04-Feb-2006 |
scottl |
Now that the em driver no longer needs to directly touch the scheduler, remove some unneeded headers.
|
#
154204 |
|
10-Jan-2006 |
scottl |
Significant performance improvements for the if_em driver:
- Only update the rx ring consumer pointer after running through the rx loop, not with each iteration through the loop. - If possible, use a fast interupt handler instead of an ithread handler. Use the interrupt handler to check and squelch the interrupt, then schedule a taskqueue to do the actual work. This has three benefits: - Eliminates the 'interrupt aliasing' problem found in many chipsets by allowing the driver to mask the interrupt in the NIC instead of the OS masking the interrupt in the APIC. - Allows the driver to control the amount of work done in the interrupt handler. This results in what I call 'adaptive polling', where you get the latency benefits of a quick response to interrupts with the interrupt mitigation and work partitioning of polling. Polling is still an option in the driver, but I consider it orthogonal to this work. - Don't hold the driver lock in the RX handler. The handler and all data associated is effectively serialized already. This eliminates the cost of dropping and reaquiring the lock for every receieved packet. The result is much lower contention for the driver lock, resulting in lower CPU usage and lower latency for interactive workloads.
The amount of work done in the taskqueue is controlled by the sysctl dev.em.N.rx_processing_limit
and tunable hw.em.rx_process_limit
Setting these to -1 effectively removes the limit.
The fast interrupt and taskqueue can be disabled by defining NO_EM_FASTINTR. This work has been shown to increase fast-forwarding from ~570 kpps to ~750 kpps (note that the same NIC hardware seems unable to transmit more than 800 kpps, so this increase appears to be limited almost solely by the hardware). Gains have been shown in other workloads, ranging from better performance to elimination of over-saturation livelocks.
Thanks to Andre Opperman for his time and resources from his network performance project in performing much of the testing. Thanks to Gleb Smirnoff and Danny Braniss for their help in testing also.
|
#
152645 |
|
21-Nov-2005 |
yongari |
busdma cleanup for em(4). - don't force busdma to pre-allocate bounce pages for parent tag. - use system supplied roundup2 macro instead of rolling its own version. - TX/RX decriptor length should be multiple of 128. There is no no need to expand the size with the multiple of 4096. - don't create/destroy DMA maps in TX/RX handlers. Use pre-allocated DMA maps. Since creating DMA maps on sparc64 is time consuming operations(resource mananger overhead), this change should boost performance on sparc64. I could get > 2x speedup on Ultra60. - TX/RX descriptors could be aligned on 128 boundary. Aligning them on PAGE_SIZE is waste of resource. - don't blindly create TX DMA tag with size of MCLBYTES * 8. The size is only valid under jumbo frame environments. Instead of using the hardcoded value, re-compute necessary size on the fly. - RX side bus_dmamap_load_mbuf_sg(9) support. - remove unused macro EM_ROUNDUP and constant EM_MMBA.
Reviewed by: scottl Tested by: glebius
|
#
152545 |
|
17-Nov-2005 |
glebius |
- Backout last change, since it is memory overkill for a non busy host or for a notebook with em(4) adapter. - Introduce tunables em.hw.txd and em.hw.rxd, which allow administrator to configure number of transmit and receive descriptors. - Check em.hw.txd and em.hw.rxd against hardware limits [*] and require them to be multiple of 128.
[*] According to comments in if_em.h the 82540EM/82541ER chips can handle more than 256 descriptors. Since we don't have this hardware to test, we decided to mimic NetBSD wm(4) driver, that limits these chips to 256 descriptors.
In collaboration with: yongari
|
#
152276 |
|
10-Nov-2005 |
glebius |
Give a try to autoconfiguring the number of transmit and receive descriptors depending on chip revision.
|
#
152247 |
|
09-Nov-2005 |
glebius |
- Introduce two more stat counters, counting number of RX overruns and number of watchdog timeouts. - Do not log(9) RX overrun events, since this pessimizes things under load [1]. - Do not increase if->if_oerrors in em_watchdog(), since this leads to counter slipping back, when if->if_oerrors is recalculated in em_update_stats_counters(). Instead increase watchdog counter in em_watchdog() and take it into account in em_update_stats_counters().
Submitted by: ade [1]
|
#
152225 |
|
09-Nov-2005 |
yongari |
Make em(4) work on big-endian architectures. - disable jumbo frame support on strict alignment architectures due to the limitation of hardware. The driver needs a fix-up code for RX side. The fix will show up in near future. - fix endian issue for 82544 on PCI-X bus. I couldn't test this as I don't have the NIC/hardware. - prefer PCIR_BAR to hardcoded EM_MMBA. - Properly checks for for 64bit BAR [1] - replace inl/outl with bus_space(9) [1] - fix endian issue on VLAN handling. - reorder header files and remove unnecessary one.
Reviewed by: cognet No response from: pdeuskar, tackerman Obtained from: OpenBSD [1]
|
#
151495 |
|
20-Oct-2005 |
glebius |
Some more minor cleanups of em(4) driver: - Destroy mutex in case of attach failure. [1] - Lock properly em_watchdog(). [1] - Lock properly em_sysctl_int_delay(). [1] - Remove unused global adapter linked list. - Remove unused dma_size field from struct em_dma_alloc. - Do not touch interface statistics, that must be edited only by upper layers. [1]
Submitted by: yongari [1]
|
#
151494 |
|
20-Oct-2005 |
glebius |
Revamp interrupt handling in em(4) driver:
o Do not mask the RX overrun interrupt.
o Rewrite em_intr(): - Axe EM_MAX_INTR. - Cycle acknowledging interrupts and processing packets until zero interrupt cause register is read. - If RX overrun comes in log this fact. [ NetBSD also resets adapter in this case, but my tests showed that this is not needed and only pessimizes behavior under heavy load. ] - Since almost all functions is rewritten, style the remaining lines.
This fixes em(4) interfaces wedging under high load.
In collaboration with: wpaul, cognet Obtained from: NetBSD
|
#
150636 |
|
27-Sep-2005 |
mlaier |
Remove bridge(4) from the tree. if_bridge(4) is a full functional replacement and has additional features which make it superior.
Discussed on: -arch Reviewed by: thompsa X-MFC-after: never (RELENG_6 as transition period)
|
#
147256 |
|
10-Jun-2005 |
brooks |
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
|
#
146662 |
|
26-May-2005 |
tackerman |
Changes to update driver with latest Intel driver version 2.1.7 - Changed from using explicit devices id to using descriptive labels. - Added support for 82573 and 82546 Quad adapters. - Corrected support for 82547EI and 82541ER (mac_type was not assigned) - Removed #ifdef DBG_STATS and extraneous code.
if_em_hw.c/if_em_hw.h - Added support for 82573 and 82546 Quad adapters. - Brought forward Intel's most current mac and phy changes.
|
#
140318 |
|
15-Jan-2005 |
scottl |
Convert if_em to the new bus_dmamap_load_sg() interface. The old callback was really just a waste of cycles, so this streamlines it considerably.
|
#
137609 |
|
12-Nov-2004 |
rwatson |
Correct a bug in the if_em driver relating to the use of vlans with promiscuous mode introduced in 1.45, which programs the em card not to strip or prepend tags when in promiscuous mode without also modifying behavior to manually prepend a vlan header in the event that the card isn't doing it on transmit. Due to a feature of card operation, if the global VLAN prepend/strip register isn't set, setting the VLAN tag flag on individual packet descriptors will cause the packet to be transmitted using ISL encapsulation rather than 802.1Q VLAN encapsulation.
This fix causes em_encap() to prepend the header by tracking whether the card is configured to temporarily disable prepending/stripping due to promiscuous mode. As a result, entering promiscuous mode on the parent em interface no longer causes vlans to appear to "wedge" or transmit ISL-encapsulated frames, which typically will not be configured/spoken by the other endpoints on the VLAN trunk. This bug may also exist in other drivers, and the additional vlan encapsulation logic should be abstracted and centralized in if_vlan.c if so.
RELENG_5_3 candidate.
MFC after: 1 week Tested by: pjd, rwatson Reported by: astesin at ukrtelecom dot net Reported by: Mike Tancsa <mike at sentex dot net> Reported by: Iasen Kostov <tbyte at OTEL dot net>
|
#
137583 |
|
11-Nov-2004 |
des |
Unbreak the build.
Pointy hat to: bms
|
#
137576 |
|
11-Nov-2004 |
bms |
Remove now-unused sysctl members.
|
#
134619 |
|
01-Sep-2004 |
pdeuskar |
Added support for Intel PRO/1000 GT Desktop Adapter(Device ID 8086 107C) Removed support for Intel 82541ER Added fix for 82547 which corrects an issue with Jumbo frames larger than 10k. Added fix for vlan tagged frames not being properly bridged. Corrected TBI workaround. Corrected incorrect LED operation issues
Submitted by: tackerman (Tony Ackerman) MFC after: 2 weeks
|
#
129879 |
|
30-May-2004 |
phk |
Add missing <sys/module.h> includes
|
#
122681 |
|
14-Nov-2003 |
pdeuskar |
- Code cleanup - In the receive routine handle the case where last descriptor could have less than 4 bytes of data. - Handle race between detach/ioctl routine.
MFC after: 3 days
|
#
120989 |
|
10-Oct-2003 |
sam |
locking fixups:
o correct recursive locking when polling and in em_82547_move_tail o destroy mutex on detach o add EM_LOCK_ASSERT and similar macros for creating+deleteing the mtx
Submitted by: Daniel Eischen <eischen@vigrid.com>
|
#
120364 |
|
22-Sep-2003 |
sam |
add locking
Reviewed by: Prafulla Deuskar <pdeuskar@FreeBSD.ORG> Sponsored by: FreeBSD Foundation
|
#
119509 |
|
27-Aug-2003 |
pdeuskar |
Add support for new devices. Bug Fixes: - Allow users to use LAA - Remember promiscuous mode settings while bridging - Allow gratuitous arp's to be sent
PR: 52966/54488 MFC after: 1 week
|
#
119277 |
|
22-Aug-2003 |
imp |
Prefer new location of pci include files (which have only been in the tree for two or more years now), except in a few places where there's code to be compatible with older versions of FreeBSD.
|
#
118314 |
|
01-Aug-2003 |
jdp |
Add facilities for tuning the "em" driver's interrupt delays without recompiling the driver. See the comments near the top of "if_em.h" for descriptions of these delays. Four new loader tunables control the system-wide default values:
hw.em.tx_int_delay hw.em.rx_int_delay hw.em.tx_abs_int_delay hw.em.rx_abs_int_delay
The tunables are specified in microseconds. The valid range is 0-67108 usec., and 0 means that the timer is disabled.
There are also four new sysctls (actually, a set of four for each "em" device in the system) to query and change the interrupt delays after the system is up:
hw.em0.tx_int_delay hw.em0.rx_int_delay hw.em0.tx_abs_int_delay (not present for 82542/3/4 adapters) hw.em0.rx_abs_int_delay (not present for 82542/3/4 adapters)
It seems to be OK to change these values even while the adapter is passing traffic.
Approved by: Prafulla Deuskar <pdeuskar@FreeBSD.ORG> MFC after: 4 weeks
|
#
117697 |
|
17-Jul-2003 |
jdp |
Correct comments to indicate that the EM_RADV and EM_TADV parameters are not applicable to the 82544.
|
#
117218 |
|
04-Jul-2003 |
mux |
The em(4) driver has been converted to busdma and doesn't use vtophys() anymore, so remove the alpha hack which defines vtophys() to alpha_XXX_dmamap().
|
#
115878 |
|
05-Jun-2003 |
pdeuskar |
Add support for Quad port adapter Add sysctl's to display statistics/debug_info Set WAIT_FOR_AUTONEG_DEFAULT to zero by default Increment packet in/out statistics inline instead of every two seconds.
MFC after: 3 days
|
#
114567 |
|
03-May-2003 |
pdeuskar |
- Fix breakage on PAE enabled kernel - Don't use vtophys when you can get physical address using bus_dma API
Submitted by: jake (Jake Burkholder)
|
#
114554 |
|
02-May-2003 |
pdeuskar |
- Bus DMA'fy the driver - Use htole* macros where appropriate so that the driver could work on non-x86 architectures - Use m_getcl() instead of MGETHDR/MCLGET macros Submitted by: sam (Sam Leffler)
|
#
112472 |
|
21-Mar-2003 |
pdeuskar |
Added support for 82541 and 82547 based adapters. - These have Intel gigabit PHY - 82547 uses CSA interface
MFC after: 1 week
|
#
108229 |
|
23-Dec-2002 |
pdeuskar |
- Move to array based indexing for TX/RX descriptor/buffer management - Added support for ITR (interrupt throttle register). This feature is available on adapters based on 82545 and above - Fixed problem with vlan support when traffic has priority bits set. (kern/45907)
PR: kern/45907 MFC after: 1 week
|
#
106937 |
|
14-Nov-2002 |
sam |
network interface driver changes:
o don't strip the Ethernet header from inbound packets; pass packets up the stack intact (required significant changes to some drivers) o reference common definitions in net/ethernet.h (e.g. ETHER_ALIGN) o track ether_ifattach/ether_ifdetach API changes o track bpf changes (use BPF_TAP and BPF_MTAP) o track vlan changes (ifnet capabilities, revised processing scheme, etc.) o use if_input to pass packets "up" o call ether_ioctl for default handling of ioctls
Reviewed by: many Approved by: re
|
#
106649 |
|
08-Nov-2002 |
pdeuskar |
- Set RS (Report Status) bit on all descriptors of a packet instead of just the last one. - Set RDTR to zero by default instead of 28. - Fixed a problem with TX hangs with jumbo frames when number of fragments in the mbuf chain is large. - Added support for 82540EP based cards.
MFC after: 3 days
|
#
103895 |
|
24-Sep-2002 |
pdeuskar |
Corrected license in the source files. It should say "MUST" instead of "MAY".
MFC after: 2 days
|
#
102452 |
|
26-Aug-2002 |
pdeuskar |
Back out TX/RX descriptor/buffer management changes from earier commit. We are having panics with the driver under stress with jumbo frames. Unfortunately we didnot catch it during our regular test cycle. I am going to MFC the backout immediately.
|
#
102242 |
|
21-Aug-2002 |
pdeuskar |
TX/RX descriptor/buffer management changes. Use array based scheme instead of queueing macros.
Submitted by: Luigi Rizzo (rizzo@icir.org) MFC after: 3 days
|
#
100184 |
|
16-Jul-2002 |
pdeuskar |
- Use IO mode to reset the controller (82544 and beyond) - Read the Mac address only once during attach. (This fixes the failover issue observed using the bonding driver)
MFC after: 3 days
|
#
97785 |
|
03-Jun-2002 |
pdeuskar |
Added support for 82545EM and 82546EB based adapters. Added Vlan support.
MFC after: 1 week
|
#
93914 |
|
05-Apr-2002 |
pdeuskar |
Added support for 82540EM based cards. Cosmetic changes to make code more unix-like.
MFC after: 1 week
|
#
90628 |
|
13-Feb-2002 |
pdeuskar |
- Added support for receive in multiple descriptors. This simplifies code for jumbo frames. - Cleaned up coding conventions to make code more unix-like. - Cleaned up code in if_em_fxhw.c and if_em_phy.c. Added relevant comments.
MFC after: 1 week
|
#
88308 |
|
20-Dec-2001 |
pdeuskar |
-Remove unneeded include stddef.h -Modify modules Makefile so that em driver compiles only on i386 platform. (Alpha not supported yet)
PR: kern/32993 MFC after: 1
|
#
87189 |
|
02-Dec-2001 |
pdeuskar |
This is the first commit of the Intel gigabit driver for PRO/1000 cards.
Submitted by:Prafulla Deuskar Reviewed by: Paul Saab MFC after:1 week
|