summaryrefslogtreecommitdiffstats
path: root/sys/dev/e1000
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/stable/10' into develdevelRenato Botelho2017-02-231-1/+1
|\
| * MFC: r311979marius2017-02-221-1/+1
| | | | | | | | | | Reset the EIAC register to include the LINK status bit and restore link up/down notifications.
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-08-256-12/+41
|\ \ | |/
| * MFC r304149sbruno2016-08-186-12/+41
| | | | | | | | | | | | e1000: Add support for Kaby Lake IDs Fixup some errors when transitioning to/from low power states.
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-08-081-0/+1
|\ \ | |/
| * MFC r303638sbruno2016-08-021-0/+1
| | | | | | | | Unbreak NETMAP usage with em(4) broken in r293331.
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-07-264-4/+12
|\ \ | |/
| * MFC r303110sbruno2016-07-221-1/+1
| | | | | | | | Remove uneeded parens.
| * MFC r299188sbruno2016-07-221-1/+2
| | | | | | | | | | | | | | | | Since igb_detach() cleans up all the data structures that will be free'd by the functions following its call, we can simply return instead of crashing and burning in the event of igb_detach() failing. PR: 197139
| * MFC r299182sbruno2016-07-221-0/+4
| | | | | | | | | | | | If ALTQ is defined in the kern conf, switch to Legacy Mode. PR: 208409
| * Fix lem(4) build after r303107sbruno2016-07-201-1/+1
| | | | | | | | Submitted by: Jason Wolfe <j@nitrology.com>
| * Fix em(4) build after r303107sbruno2016-07-201-1/+1
| | | | | | | | Reported by: Jason Wolf <j@nitrology.com>
| * MFC - r302384 to 10-STABLEsbruno2016-07-203-3/+6
| | | | | | | | | | | | | | | | | | | | Do not initialize the adapter on MTU change when adapter status is down. This fixes long-standing problems when changing settings of the adapter. Discussed in: https://lists.freebsd.org/pipermail/freebsd-net/2016-June/045509.html Differential Revision: https://reviews.freebsd.org/D7254
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-07-192-7/+53
|\ \ | |/
| * MFC r297187sbruno2016-07-152-7/+53
| | | | | | | | | | | | | | | | Support checksum offloading for TCP/IPV6 and UDP/IPV6. Support SCTP checksum offloading for SCTP/IPV6. Support SCTP checksum offloading on all controllers except 82575. Differential Revision: https://reviews.freebsd.org/D7215
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-05-093-3/+3
|\ \ | |/
| * MFC r298224sbruno2016-05-063-3/+3
| | | | | | | | | | | | | | Correct possible underflow conditions when checking for available space in the tx h/w ring buffer. Sponsored by: Limelight Networks
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-02-2825-339/+1471
|\ \ | |/
| * MFC: r295906marius2016-02-265-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix and clean up usage of DMA and TSO segments: - At Intel it is believed that most of their products support "only" 40 DMA segments so lower {EM,IGB}_MAX_SCATTER accordingly. Actually, 40 is more than plenty to handle full size TSO packets so it doesn't make sense to further distinguish between MAC variants that really can do 64 DMA segments. Moreover, capping at 40 DMA segments limits the stack usage of {em,igb}_xmit() that - given the rare use of more than these - previously hardly was justifiable, while still being sufficient to avoid the problems seen with em(4) and EM_MAX_SCATTER set to 32. - In igb(4), pass the actually supported TSO parameters up the stack. Previously, the defaults set in if_attach_internal() were applied, i. e. a maximum of 35 TSO segments, which made supporting more than these in the driver pointless. However, this might explain why no problems were seen with IGB_MAX_SCATTER at 64. - In em(4), take the 5 m_pullup(9) invocations performed by em_xmit() in the TSO case into account when reporting TSO parameters upwards. In the worst case, each of these calls will add another mbuf and, thus, the requirement for an additional DMA segment. So for best performance, it doesn't make sense to advertize a maximum of TSO segments that typically will require defragmentation in em_xmit(). Again, this leaves enough room to handle full size TSO packets. - Drop TSO macros from if_lem.h given that corresponding MACS don't support TSO in the first place. Reviewed by: erj, sbruno, jeffrey.e.pieper_intel.com Approved by: re (gjb)
| * MFC r295323:erj2016-02-2524-333/+1457
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update em(4) to 7.6.1; update igb(4) to 2.5.3. Major changes: - Add i219/i219(2) hardware support. (Found on Skylake generation and newer chipsets.) - Further to the last Skylake support diff, this one also includes support for the Lewisburg chipset (i219(3)). - Add a workaround to an igb hardware errata. All 1G server products need to have IPv6 extension header parsing turned off. This should be listed in the specification updates for current 1G server products, e.g. for i350 it's errata #37 in this document: http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/ethernet-controller-i350-spec-update.pdf - Avoton (i354) PHY errata workaround added And a bunch of minor fixes, as well as #defines for things that the current em(4)/igb(4) drivers don't implement. MFC r287465: igb(4): Update and fix HW errata - HW errata workaround for IPv6 offload w/ extension headers - Edited start of if_igb.c (Device IDs / #includes) to match ixgbe/ixl Approved by: re (gjb) Sponsored by: Intel Corporation
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-02-051-2/+9
|\ \ | |/
| * MFC: r295133marius2016-02-041-2/+9
| | | | | | | | | | | | | | | | | | | | | | As it turns out, one of the more or less recent changes to em(4) causes watchdog timeouts when using TSO4 at link speeds below Gigabit, at least with 82573E. So disable the assist automatically when at lower speeds. Submitted by: jfv Approved by: re (kib), erj Obtained from: D3162
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-02-0141-640/+695
|\ \ | |/
| * Sync the e1000 drivers with what's in head as of r294327, modulo partsmarius2016-01-2741-640/+696
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that don't apply to stable/10 (driver API, if_inc_counter(), RSS changes etc.) and modulo r287465 (which reportedly breaks igb(4)), i. e. assorted fixes and improvements only: o MFC r267385 (partial): - Don't compare bus_dma map pointers for static DMA allocations against NULL to determine if bus_dmamap_unload() or bus_dmamem_free() should be called. Instead, check the associated bus and virtual addresses. - Don't clear static DMA maps to NULL. o MFC r284933: Delete the refernce to VLAN handling being disabled by default. This is no longer the case. [1] o MFC r285639: Add an adapter CORE lock in the DDB hook em_dump_queue to avoid WITNESS panic in em_init_locked() while debugging. o MFC r285879: - Remove unused txd_saved. - Intialize txd_upper, txd_lower and txd_used at declaration. o MFC r286162: Free mbufs when busdma loading fails. o MFC r286829: Add capability to disable CRC stripping as it breaks IPMI/BMC capabilities on certain adatpers. [2] o MFC r286831: [3] - Increase EM_MAX_SCATTER to 64 such that the size of em_xmit():: segs[EM_MAX_SCATTER] doesn't get overrun by things like NFS that can and do shove more than 32 segs when being used with em(4) and TSO4. - Update tso handling code in em_xmit() with update from jhb@ - Set if_hw_tsomax, if_hw_tsomaxsegcount and if_hw_tsomaxsegsize to appropriate values. - Define a TSO workaround "magic" number of 4 that is used to avoid an alignment issue in hardware. - Change a couple of integer values that were used as booleans to actual bool types. - Ensure that em_enable_intr() enables the appropriate mask of interrupts and not just a hardcoded define of values. o MFC r286832: e1000/if_lem.c bump to 1.1.0 o MFC r286833: Bump all copywrite dates to 2015. o MFC r287112: Style/whitespace cleanup in shared/common code. o MFC r293331: - Switch em(4) to the extended RX descriptor format. - Split rxbuffer and txbuffer apart to support the new RX descriptor format structures. Move rxbuffer manipulation to em_setup_rxdesc() to unify the new behavior changes. - Add a RSSKEYLEN macro for help in generating the RSSKEY data structures in the card. - Change em_receive_checksum() to process the new rxdescriptor format status bit. o MFC r293332: Disable the reuse of checksum offload context descriptors in the case of multiple queues in em(4). Document errata in the code. o MFC r293854: Given that em(4), lem(4) and igb(4) hardware doesn't require the alignment guarantees provided by m_defrag(9), use m_collapse(9) instead for performance reasons. While at it, sanitize the statistics softc members, i. e. retire unused ones and add SYSCTL nodes missing for actually used ones. PR: 118693 [1], 161277 [2], 195078 [3], 199174 [3], 200221 [3]
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-01-251-4/+7
|\ \ | |/
| * MFC r290641:tuexen2016-01-171-4/+7
| | | | | | | | | | | | Add support for SCTP checksum offloading for the 82580 controller similar to the 82576 controller. Tested with Intel i340 cards.
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-01-152-3/+14
|\ \ | |/
| * MFC r292670sbruno2016-01-142-3/+14
| | | | | | | | | | | | | | | | Add support for sysctl knobs to live tune the tx packet processing limits in igb and fix a wrap-around bug. Submitted by: Jason (j@nitrology.com) Sponsored by: Limelight Networks
* | Merge branch 'stable/10' into develRenato Botelho2015-10-212-1/+17
|\ \ | |/
| * if_lem: Bring over the missing pieces from -HEAD to make NIC_PARAVIRT work.adrian2015-10-152-1/+17
| | | | | | | | | | | | | | | | | | | | The paravirt support for the driver and netmap code was already MFCed, but the adapter and ifnet API bits weren't. This was backported from -HEAD by Eric Melville <eric@freebsd.org>. Submitted by: eric Sponsored by: Norse Corp, Inc.
* | Importing pfSense patch iface_iftx_altq_hybrid.diffRenato Botelho2015-08-172-71/+49
|/
* MFC r285623:kevlo2015-07-311-1/+1
| | | | | | | Fix typo in register definition. Submitted by: James Hung Reviewed by: sbruno
* MFC r284179, r283959sbruno2015-06-173-192/+477
| | | | | | | | | | | | Implement multiqueue (max 2 tx/rx queues) for the 82574L chipset. Change default tuning parameters to handle this new configuration if EM_MULTIQUEUE is set in the kernel configuration. Off by default. See r283959 changelog for the scope of these changes. Relnotes: Yes Sponsored by: Limelight Networks
* MFC r283923sbruno2015-06-162-50/+49
| | | | | | | | | | | | | | | | Simplify hang detection by stealing the techniques used in ixl(4) and applying them to em(4). Rely on iterations through the local timer, and the tx queue state to determine if an actual hang has occurred. Any time a descriptor is used (packet sent), the tx queue is flagged as busy. Then when txeof runs, it either clears the flag when all is clean, or resets it to 1 if ANY are cleaned, if nothing is cleaned it increments the flag. Local timer simply checks to see if busy ever reaches MAX (10, which is compile time configurable), and then sets it as HUNG, at that point there is one more timer cycle in which to have any cleans, if not a watchdog reset will occur.
* MFC r283290sbruno2015-05-251-0/+3
| | | | | | | Bump rx_overruns when indicated by the ICR mask. PR: 199716 Sponsored by: Limelight Networks
* Partial MFC r281838:hiren2015-05-131-2/+19
| | | | | | | | | For igb(4), when we are doing multiqueue, we are all setup to have full 32bit RSS hash from the card. Expose that so others like lagg(4) can use that and avoid hashing the traffic by themselves. Setting hashtype as OPAQUE because FreeBSD 10 doesn't have RSS support. Sponsored by: Limelight Networks
* MFC r275358 r275483 r276982 - Removing M_FLOWID by hps@hiren2015-04-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r275358: Start process of removing the use of the deprecated "M_FLOWID" flag from the FreeBSD network code. The flag is still kept around in the "sys/mbuf.h" header file, but does no longer have any users. Instead the "m_pkthdr.rsstype" field in the mbuf structure is now used to decide the meaning of the "m_pkthdr.flowid" field. To modify the "m_pkthdr.rsstype" field please use the existing "M_HASHTYPE_XXX" macros as defined in the "sys/mbuf.h" header file. This patch introduces new behaviour in the transmit direction. Previously network drivers checked if "M_FLOWID" was set in "m_flags" before using the "m_pkthdr.flowid" field. This check has now now been replaced by checking if "M_HASHTYPE_GET(m)" is different from "M_HASHTYPE_NONE". In the future more hashtypes will be added, for example hashtypes for hardware dedicated flows. "M_HASHTYPE_OPAQUE" indicates that the "m_pkthdr.flowid" value is valid and has no particular type. This change removes the need for an "if" statement in TCP transmit code checking for the presence of a valid flowid value. The "if" statement mentioned above is now a direct variable assignment which is then later checked by the respective network drivers like before. r275483: Remove M_FLOWID from SCTP code. r276982: Remove no longer used "M_FLOWID" flag from mbuf.h and update the netisr manpage. Note: The FreeBSD version has been bumped. Reviewed by: hps, tuexen Sponsored by: Limelight Networks
* MFC 272897:jhb2014-12-161-7/+37
| | | | | | | | | | Various fixes to stats: - Read the counts of received, dropped, and transmitted management packets and add sysctl nodes for them. - Fix the total octets received/transmitted to read all 64 bits of the counters. - Add missing sysctl nodes for rlec, tncrs, fcruc, tor, and tot. - Remove spurious spaces.
* MFC r263710, r273377, r273378, r273423 and r273455:hselasky2014-10-273-11/+11
| | | | | | | - De-vnet hash sizes and hash masks. - Fix multiple issues related to arguments passed to SYSCTL macros. Sponsored by: Mellanox Technologies
* MFC r271784 - Fix the handling of EOP in status descriptors for if_igb(4)adrian2014-10-112-9/+8
| | | | | | | | | | | | | and don't double-free mbufs. Like ixgbe(4) chipsets, EOP is only set on the final descriptor in a chain of descriptors. So, to free the whole list of descriptors, we should free the current slot _and_ the assembled list of descriptors that make up the fragment list. The existing code was setting discard once it saw EOP + an error status; it then freed all the subsequent descriptors until the next EOP. That's totally the wrong order.
* MFC r271645 - Set DROP_EN on each RX queue if transmit flow-control is disabled.adrian2014-10-111-0/+13
| | | | | | | | | | | | | | | | | This allows the NIC to drop frames on the receive queue and not cause the MAC to block on receiving to _any_ queue. Tested: igb0@pci0:5:0:0: class=0x020000 card=0x152115d9 chip=0x15218086 rev=0x01 hdr=0x00 vendor = 'Intel Corporation' device = 'I350 Gigabit Network Connection' class = network subclass = ethernet Discussed with: Eric Joyner <eric.joyner@intel.com> MFC after: 1 week Sponsored by: Norse Corp, Inc.
* MFC 270063: update of netmap codeluigi2014-08-203-12/+248
| | | | (vtnet and cxgbe not merged yet because we need some other mfc first)
* MFC 259907 (dates back to december)luigi2014-08-201-1/+1
| | | | | | use the correct netmap <-> nic slot mapping on the transmit ring for 'lem'. This bug would manifest only in netmap mode and on packets transmitted after a NIC reset while netmap mode is active.
* MFC: r268726rmacklem2014-07-291-1/+1
| | | | | | | Move the "retry:" label so that the calls to m_pullup() are not done after the call to m_defrag(). This fixes a problem where m_pullup() would prepend an mbuf to the list created by m_defrag() making the chain greater than 32 again.
* MFC of R267935: Sync the E1000 shared code to Intel internal, andjfv2014-07-2826-242/+812
| | | | more importantly add new I218 adapter support to em.
* MFC svn 267065 and 267187luigi2014-06-091-2/+2
| | | | | | | | | | | | | | make sure ifp->if_transmit returns 0 if a buffer is enqueued. This should also be merged to stable/9. After this fix, drivers still known to have this bug are igxbe/ixv and i40e. Drivers using if_transmit are correct, and so are most of the other drivers that reassing if_transmit. Among other things, this bug causes panics when using netmap emulation on top of generic drivers.
* Merge r261169: Fix compilation with IGB_LEGACY_TX defined.glebius2014-03-111-0/+2
| | | | PR: 185909
* MFH: sync the netmap code with the one in HEADluigi2014-02-183-12/+16
| | | | | (enhanced VALE switch, netmap pipes, emulated netmap mode). See details in the log for svn 261909.
* MFC: 261291gnn2014-02-071-1/+1
| | | | | The timestamp bit is number 17, and not number 9, in the stat error field of the receive descriptor.
* MFC r258779,r258780,r258787,r258822:eadler2014-02-043-4/+4
| | | | | | | | | | | | | Fix undefined behavior: (1 << 31) is not defined as 1 is an int and this shifts into the sign bit. Instead use (1U << 31) which gets the expected result. Similar to the (1 << 31) case it is not defined to do (2 << 30). This fix is not ideal as it assumes a 32 bit int, but does fix the issue for most cases. A similar change was made in OpenBSD.
OpenPOWER on IntegriCloud