summaryrefslogtreecommitdiffstats
path: root/sys/dev/e1000
Commit message (Collapse)AuthorAgeFilesLines
* Do a sweep of the tree replacing calls to pci_find_extcap() with calls tojhb2011-03-233-5/+5
| | | | pci_find_cap() instead.
* A cut and paste here was wrong also.jfv2011-03-191-1/+1
|
* Correct broken definejfv2011-03-191-1/+1
|
* This delta updates the em driver to version 7.2.2 which hasjfv2011-03-189-341/+404
| | | | | | | | | | | | | 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
* Fix typos - remove duplicate "the".brucec2011-02-212-2/+2
| | | | | | PR: bin/154928 Submitted by: Eitan Adler <lists at eitanadler.com> MFC after: 3 days
* Fix the shared code to be consistent with Intel-internal,jfv2011-02-1210-87/+218
| | | | and now build.
* Restore 2 prototypes that seem to have been mistakenly removed in r218582.dougb2011-02-111-0/+2
| | | | | | | | I've manually twiddled the whitespace for e1000_commit_fc_settings_generic to match the others in the file. Submitted by: dim Tested by: me
* Somehow the RX ring depletion fix got partially removed,jfv2011-02-111-4/+17
| | | | replace the missing pieces.
* Revert changes made here, they will cause a conflictjfv2011-02-111-3/+0
| | | | later on with our shared code.
* Inconsistencies in the updated igb shared code and the olderjfv2011-02-113-4/+7
| | | | em/lem, breaking the build, correcting that.
* After r218530 export several functions which are no longer private tobz2011-02-112-6/+6
| | | | | | e1000_mac.c but part of the e1000_api. X-MFC with: 218530 by jfv
* Add support for the new I350 family of 1G interfaces.jfv2011-02-1121-328/+1121
| | | | | | | | | | | | | | | | | | | | | | | - this also includes virtualization support on these devices Correct some vlan issues we were seeing in test, jumbo frames on vlans did not work correctly, this was all due to confused logic around HW filters, the new code should now work for all uses. Important fix: when mbuf resources are depeleted, it was possible to completely empty the RX ring, and then the RX engine would stall forever. This is fixed by a flag being set whenever the refresh code fails due to an mbuf shortage, also the local timer now makes sure that all queues get an interrupt when it runs, the interrupt code will then always call rxeof, and in that routine the first thing done is now to check the refresh flag and call refresh_mbufs. This has been verified to fix this type 'hang'. Similar code will follow in the other drivers. Finally, sync up shared code for the I350 support. Thanks to everyone that has been reporting issues, and helping in the debug/test process!!
* Fix for kern/152853, pullup at the wrong pointjfv2011-01-191-5/+10
| | | | | is breaking UDP. Thanks to Petr Lampa for the patch.
* Specify a CTLTYPE_FOO so that a future sysctl(8) change does not needmdf2011-01-183-17/+25
| | | | to rely on the format string.
* sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly.mdf2011-01-123-184/+184
| | | | Commit the Intel drivers.
* A couple problems discovered by Andrew Boyer:jfv2011-01-121-3/+11
| | | | | | | | | - failure code in em_xmit got mangled along the way and was not properly handling errors. - local timer code had a leftover UNLOCK call that should be removed. MFC after 3 days
* Correct build error.jfv2010-12-041-1/+0
|
* Remove the bogus test in the TX context setup for IPV6,jfv2010-12-041-2/+0
| | | | | | | | | the size can be smaller than the constant when you are doing HW TAGGING, and you still need to process this packet in a normal way. I'm not sure where the notion to just return came from, but its wrong. MFC after: 3 days
* Small cut and paste bug in flow control string fixed.jfv2010-12-041-36/+32
| | | | | | | | Second, correct the discard/refresh_mbufs code to behave more like igb, there have been panics due to discards and this should fix them. MFC after: 3 days
* Unwanted extra call to set_vlan_hw added back by mistake.jfv2010-11-261-3/+0
|
* The purpose of this change is to add a routine tojfv2010-11-241-55/+83
| | | | | | | | | | | | | disable ASPM L0S and L1 LINK states on 82573, 82574, and 82583. The theory is that this is behind certain hangs being experienced by some customers. Also included a small optimization in the rxeof routine that was in my internal code. Change the PBA size for pchlan, it was incorrect. MFC after: 3 days
* Add shared code glue for new 82580 devices.jfv2010-11-242-0/+4
|
* - New 82580 devices supportedjfv2010-11-232-135/+208
| | | | | | | | | | | | | | | | | | | - Fixes from John Baldwin: vlan shadow tables made per/interface, make vlan hw setup only happen when capability enabled, and finally, make a tuneable interrupt rate. Thanks John! - Tweaked watchdog handling to avoid any false positives, now detection is in the TX clean path, with only the final check and init happening in the local timer. - limit queues to 8 for all devices, with 82576 or 82580 on larger machines it can get greater than this, and it seems mostly a resource waste to do so. Even 8 might be high but it can be manually reduced. - use 2k, 4k and now 9k clusters based on the MTU size. - rework the igb_refresh_mbuf() code, its important to make sure the descriptor is rewritten even when reusing mbufs since writeback clobbers things. MFC: in a few days, this delta needs to get to 8.2
* Sync the lem code up with the vlan and other fixes in em.jfv2010-11-014-158/+108
| | | | | | Delete a unneeded test from the beginning of em_xmit. CRITICAL: shared code fix for 82574, a mutex might not be released, this can cause hangs.
* In the data setup code for doing offloads thejfv2010-10-281-1/+6
| | | | | | | ip and tcp pointers were not reset after some pullups. In practice this led to an NFS mount failure when using UDP reported by Kevin Lo, thanks Kevin. Fix from yongari, thank you!
* Bug fix delta to the em driver:jfv2010-10-262-118/+259
| | | | | | | | | | | | | - 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.
* Update code from Intel:jfv2010-09-2821-536/+1822
| | | | | | | | | | | | | | - 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
* Tweak the stats exported by the e1000 drivers:jhb2010-09-204-346/+404
| | | | | | | | | | | | | | | | | | | | | | | | - Add a single sysctl procedure to all three drivers to read an arbitrary register (the register is passed as arg2). Use it to replace existing routines in igb(4) that used a separate routine for each register, and to add support for missing stats in em(4) and lem(4). - Move the 'rx_overruns' and 'watchdog_timeouts' stats out of the MAC stats section as they are driver stats, not MAC counters. - Simplify the code that creates per-queue stats in igb(4) to use a single loop and remove duplicated code. - Properly read all 64 bits of the 'good octets received/transmitted' in em(4) and lem(4). - Actually read the interrupt count registers in em(4), and drop the 'host to card' sysctl stats from em(4) as they are not implemented in any of the hardware this driver supports. - Restore several stats to em(4) that were lost in the earlier stats conversion including per-queue stats. - Export several MAC stats in em(4) that were exported in igb(4) but not in em(4). - Export stats in lem(4) using individual sysctls as in em(4) and igb(4). Reviewed by: jfv MFC after: 1 week
* Code correction in refresh_mbufs, just continuingjfv2010-09-071-2/+2
| | | | without index recalc was wrong.
* Tighten up the rx mbuf refresh code, there were somejfv2010-09-072-51/+65
| | | | | | | | 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.
* Do not allocate multicast array memory in multicast filteryongari2010-08-286-17/+50
| | | | | | | | | | | | | | 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
* If em(4) failed to allocate RX buffers, do not call panic(9).yongari2010-08-281-3/+6
| | | | | | | | Just showing some buffer allocation error is more appropriate action for drivers. This should fix occasional panic reported on em(4) when driver encountered resource shortage. Reviewed by: jfv
* Do not call voluntary panic(9) in case of if_alloc() failure.yongari2010-08-283-15/+33
| | | | Reviewed by: jfv
* Make sure not to access unallocated stats memory.yongari2010-08-271-1/+7
| | | | Reviewed by: jfv
* Eliminate the ambiguous queue setting logic forjfv2010-08-191-2/+2
| | | | | the VF, it made it possible to have 2 queues which we don't want, the HOST is unable to handle it.
* Put the early setting of the MAC type back, itsjfv2010-08-061-0/+3
| | | | removal resulted in broken code in MSIX setup.
* Fix clang warning on empty statement.mdf2010-07-281-5/+5
| | | | | Reviewed by: rdivacky, zml Approved by: zml (mentor)
* style(9) fixgnn2010-07-241-4/+8
| | | | MFC after: 1 week
* Fix a bug in the statistics code for tracking the head andgnn2010-07-231-10/+82
| | | | | | | | tail pointers of the tx and rx queues. We needed a SYSCTL_PROC to correctly get the values at run time. Submitted by: Andrew Boyer aboyer at averesystems.com MFC after: 1 week
* Fix for a panic when TX checksum offload is done andjfv2010-07-122-19/+35
| | | | | | | | | | a packet has only a header in the first mbuf, the checksum code will dereference a pointer into the non-existing IP header. Do a check for the size and pullup if needed. Thanks to Michael Tuexen for this fix. MFC: asap - should be in 8.1 IMHO
* Fix of a VLAN problem by jhb, the checksum capabilityjfv2010-07-091-1/+1
| | | | | | got lost along the way. MFC: asap
* OK, I was a bit sleep this morning and checked injfv2010-06-3011-76/+1940
| | | | | | | | the core changes but left out the shared code, lol. Well, and a couple fixes to the core... hopefully this will all be complete now. Happy happy joy joy :)
* SR-IOV support added to igbjfv2010-06-302-171/+296
| | | | | | | | | | | | | | | | | | What this provides is support for the 'virtual function' interface that a FreeBSD VM may be assigned from a host like KVM on Linux, or newer versions of Xen with such support. When the guest is set up with the capability, a special limited function 82576 PCI device is present in its virtual PCI space, so with this driver installed in the guest that device will be detected and function nearly like the bare metal, as it were. The interface is only allowed a single queue in this configuration however initial performance tests have looked very good. Enjoy!!
* Make sure that all the exposed counters and variables are actuallygnn2010-06-241-0/+17
| | | | | | being updated. Pointed out by: jfv
* Two stats were duplicated, thanks to Andrew Boyerjfv2010-06-171-6/+0
| | | | for pointing this out.
* Move statistics into the sysctl tree making it easier to findgnn2010-06-161-157/+301
| | | | | | and use them. Add previously hidden statistics, some of which include interrupt and host/card communication counters.
* Move statistics into the sysctl tree making it easier to findgnn2010-06-162-172/+423
| | | | | | and use them. Add previously hidden statistics, some of which include interrupt and host/card communication counters.
* Changes from John Baldwin adding to last commit,jfv2010-06-164-49/+45
| | | | | change rxeof api for poll friendliness, and eliminate unnecessary link tasklet use. Thanks John!
* Change to have legacy interrupts use the samejfv2010-06-152-12/+12
| | | | | | | | handler had a flaw, thanks to John Baldwin for finding it. Change which queue legacy tasks are enqueued on. MFC: soonest
* Put back the lost bus_describe_intr() calls.jfv2010-06-111-0/+6
|
OpenPOWER on IntegriCloud