1. 23 Sep, 2021 1 commit
    • Wenzhuo Lu's avatar
      e1000: fix K1 configuration · d5ad2f2a
      Wenzhuo Lu authored
      This patch is for the following updates to the K1 configurations:
      Tx idle period for entering K1 should be 128 ns.
      Minimum Tx idle period in K1 should be 256 ns.
      Signed-off-by: default avatarWenzhuo Lu <wenzhuo.lu@intel.com>
      PR:		258153
      Reviewed by:	erj
      Tested by:	iron.udjin@gmail.com
      Approved by:	imp
      Obtained from:	DPDK (6f934fa24dfd437c90ead96bc7598ee77a117ede)
      MFC after:	1 week
  2. 17 Sep, 2021 9 commits
  3. 19 Aug, 2021 1 commit
  4. 19 Apr, 2021 1 commit
  5. 04 Jun, 2020 1 commit
    • Eric Joyner's avatar
      em(4): Add support for Comet Lake Mobile Platform, update shared code · 51569bd7
      Eric Joyner authored
      This change introduces Comet Lake Mobile Platform support in the e1000
      driver along with shared code patches described below.
      - Cast return value of e1000_ltr2ns() to higher type to avoid overflow
      - Remove useless statement of assigning act_offset
      - Add initialization of identification LED
      - Fix flow control setup after connected standby:
        After connected standby the driver blocks resets during
        "AdapterStart" and skips flow control setup. This change adds
        condition in e1000_setup_link_ich8lan() to always setup flow control
        and to setup physical interface only when there is no need to block
      Signed-off-by: default avatarPiotr Pietruszewski <piotr.pietruszewski@intel.com>
      Submitted by:	Piotr Pietruszewski <piotr.pietruszewski@intel.com>
      Reviewed by:	erj@
      Tested by:	Jeffrey Pieper <jeffrey.e.pieper@intel.com>
      MFC after:	1 week
      Relnotes:	yes
      Sponsored by:	Intel Corporation
      Differential Revision:	https://reviews.freebsd.org/D25035
  6. 04 Nov, 2019 1 commit
  7. 08 May, 2018 1 commit
  8. 12 Jan, 2018 1 commit
  9. 28 Dec, 2017 1 commit
  10. 20 Nov, 2017 1 commit
    • Pedro F. Giffuni's avatar
      sys/dev: further adoption of SPDX licensing ID tags. · 7282444b
      Pedro F. Giffuni authored
      Mainly focus on files that use BSD 3-Clause license.
      The Software Package Data Exchange (SPDX) group provides a specification
      to make it easier for automated tools to detect and summarize well known
      opensource licenses. We are gradually adopting the specification, noting
      that the tags are considered only advisory and do not, in any way,
      superceed or replace the license texts.
      Special thanks to Wind River for providing access to "The Duke of
      Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
      starting point.
  11. 16 Sep, 2017 1 commit
    • Stephen Hurd's avatar
      Revert r323516 (iflib rollup) · ab2e3f79
      Stephen Hurd authored
      This was really too big of a commit even if everything worked, but there
      are multiple new issues introduced in the one huge commit, so it's not
      worth keeping this until it's fixed.
      I'll work on splitting this up into logical chunks and introduce them one
      at a time over the next week or two.
      Approved by:	sbruno (mentor)
      Sponsored by:	Limelight Networks
  12. 13 Sep, 2017 1 commit
    • Stephen Hurd's avatar
      Roll up iflib commits from github. This pulls in most of the work done · d300df01
      Stephen Hurd authored
      by Matt Macy as well as other changes which he has accepted via pull
      request to his github repo at https://github.com/mattmacy/networking/
      This should bring -CURRENT and the github repo into close enough sync to
      allow small feature branches rather than a large chain of interdependant
      patches being developed out of tree.  The reset of the synchronization
      should be able to be completed on github by splitting the remaining
      changes that are not yet ready into short feature branches for later
      review as smaller commits.
      Here is a summary of changes included in this patch:
      1)  More checks when INVARIANTS are enabled for eariler problem
      2)  Group Task Queue cleanups
          - Fix use of duplicate shortdesc for gtaskqueue malloc type.
            Some interfaces such as memguard(9) use the short description to
            identify malloc types, so duplicates should be avoided.
      3)  Allow gtaskqueues to use ithreads in addition to taskqueues
          - In some cases, this can improve performance
      4)  Better logging when taskqgroup_attach*() fails to set interrupt
      5)  Do not start gtaskqueues until they're needed
      6)  Have mp_ring enqueue function enter the ABDICATED rather than BUSY
          state.  This moves the TX to the gtaskq and allows processing to
          continue faster as well as make TX batching more likely.
      7)  Add an ift_txd_errata function to struct if_txrx.  This allows
          drivers to inspect/modify mbufs before transmission.
      8)  Add a new IFLIB_NEED_ZERO_CSUM for drivers to indicate they need
          checksums zeroed for checksum offload to work.  This avoids modifying
          packet data in the TX path when possible.
      9)  Use ithreads for iflib I/O instead of taskqueues
      10) Clean up ioctl and support async ioctl functions
      11) Prefetch two cachlines from each mbuf instead of one up to 128B.  We
          often need to parse packet header info beyond 64B.
      12) Fix potential memory corruption due to fence post error in
          bit_nclear() usage.
      13) Improved hang detection and handling
      14) If the packet is smaller than MTU, disable the TSO flags.
          This avoids extra packet parsing when not needed.
      15) Move TCP header parsing inside the IS_TSO?() test.
          This avoids extra packet parsing when not needed.
      16) Pass chains of mbufs that are not consumed by lro to if_input()
          rather call if_input() for each mbuf.
      17) Re-arrange packet header loads to get as much work as possible done
          before a cache stall.
      18) Lock the context when calling IFDI_ATTACH_PRE()/IFDI_ATTACH_POST()/
      19) Attempt to distribute RX/TX tasks across cores more sensibly,
          especially when RX and TX share an interrupt.  RX will attempt to
          take the first threads on a core, and TX will attempt to take
          successive threads.
      20) Allow iflib_softirq_alloc_generic() to request affinity to the same
          cpus an interrupt has affinity with.  This allows TX queues to
          ensure they are serviced by the socket the device is on.
      21) Add new iflib sysctls to net.iflib:
          - timer_int - interval at which to run per-queue timers in ticks
          - force_busdma
      22) Add new per-device iflib sysctls to dev.X.Y.iflib
          - rx_budget allows tuning the batch size on the RX path
          - watchdog_events Count of watchdog events seen since load
      23) Fix error where netmap_rxq_init() could get called before
      24) e1000: Fixed version of r323008: post-cold sleep instead of DELAY
          when waiting for firmware
          - After interrupts are enabled, convert all waits to sleeps
          - Eliminates e1000 software/firmware synchronization busy waits after
      25) e1000: Remove special case for budget=1 in em_txrx.c
          - Premature optimization which may actually be incorrect with
            multi-segment packets
      26) e1000: Split out TX interrupt rather than share an interrupt for
          RX and TX.
          - Allows better performance by keeping RX and TX paths separate
      27) e1000: Separate igb from em code where suitable
          Much easier to understand separate functions and "if (is_igb)" than
          previous tests like "if (reg_icr & (E1000_ICR_RXSEQ | E1000_ICR_LSC))"
      Reviewed by:	sbruno
      Approved by:	sbruno (mentor)
      Sponsored by:	Limelight Networks
      Differential Revision:	https://reviews.freebsd.org/D12235
  13. 30 Aug, 2017 2 commits
  14. 15 May, 2017 1 commit
  15. 19 Jan, 2017 1 commit
  16. 15 Aug, 2016 1 commit
  17. 17 May, 2016 1 commit
  18. 05 Feb, 2016 1 commit
  19. 19 Sep, 2015 1 commit
    • Sean Bruno's avatar
      Revert 287914,287762. · e373323f
      Sean Bruno authored
      Reports of breakage on igb(4) have been narrowed down to 287762 and 287914
      is an dependant change.
      Submitted by:	erj
  20. 13 Sep, 2015 1 commit
    • Sean Bruno's avatar
      Update em(4) with D3162 after testing further on hardware that failed · a44aa8e0
      Sean Bruno authored
      to attach with the last version of this commit. This commit fixes
      attach failures on "ICH8" class devices via modifications to
      -   Fix compiler warning in 80003es2lan.c
      -   Add return value handler for e1000_*_kmrn_reg_80003es2lan
      -   Fix usage of DEBUGOUT
      -   Remove unnecessary variable initializations.
      -   Removed unused variables (complaints from gcc).
      -   Edit defines in 82571.h.
      -   Add workaround for igb hw errata.
      -   Shared code changes for Skylake/I219 support.
      -   Remove unused OBFF and LTR functions.
      Tested by some of the folks that reported breakage in previous incarnation.
      Thanks to AllanJude, gjb, gnn, tijl for tempting fate with their machines.
      Submitted by:	erj@freebsd.org
      MFC after:	2 weeks
      Differential Revision:	https://reviews.freebsd.org/D3162
  21. 05 Sep, 2015 1 commit
  22. 04 Sep, 2015 1 commit
    • Sean Bruno's avatar
      e1000: Shared code updates · 67ebffd3
      Sean Bruno authored
      -    Fix compiler warning in 80003es2lan.c
      -    Add return value handler for e1000_*_kmrn_reg_80003es2lan
      -    Fix usage of DEBUGOUT
      -    Remove unnecessary variable initializations.
      -    Removed unused variables (complaints from gcc).
      -    Edit defines in 82571.h.
      -    Add workaround for igb hw errata.
      -    Shared code changes for Skylake/I219 support.
      -    Remove unused OBFF and LTR functions.
      Differential Revision:	https://reviews.freebsd.org/D3162
      Submitted by:	erj
      MFC after:	1 month
      Sponsored by:	Intel Corporation
  23. 24 Aug, 2015 1 commit
  24. 16 Aug, 2015 1 commit
  25. 26 Jun, 2014 1 commit
  26. 30 Nov, 2013 1 commit
  27. 09 Oct, 2013 1 commit
    • Jack F Vogel's avatar
      Update the Intel igb driver to version 2.4.0 · 7609433e
      Jack F Vogel authored
        - This version has support for the new Intel Avoton systems,
      including 2.5Gb support, further it now has IPv6/TSO6 support as
      well. Shared code has been updated where necessary as well. Thanks
      to my new assistant Eric Joyner for doing the transmit path changes
      to bring in the IPv6/TSO6 support. Thanks to Gleb for catching the
      one bug and change needed in NETMAP.
      Approved by: re
  28. 21 Feb, 2013 1 commit
    • Jack F Vogel's avatar
      Refresh on the shared code for the E1000 drivers. · 6ab6bfe3
      Jack F Vogel authored
        - bear with me, there are lots of white space changes, I would not
          do them, but I am a mere consumer of this stuff and if these drivers
          are to stay in shape they need to be taken.
      em driver changes: support for the new i217/i218 interfaces
      igb driver changes:
        - TX mq start has a quick turnaround to the stack
        - Link/media handling improvement
        - When link status changes happen the current flow control state
          will now be displayed.
        - A few white space/style changes.
      lem driver changes:
        - the shared code uncovered a bogus write to the RLPML register
          (which does not exist in this hardware) in the vlan code,this
          is removed.
  29. 14 Sep, 2012 1 commit
  30. 05 Jul, 2012 1 commit
    • Jack F Vogel's avatar
      Sync with Intel internal source: · ab5d0362
      Jack F Vogel authored
         shared code update and small changes in core required
      Add support for new i210/i211 devices
      Improve queue calculation based on mac type
      MFC after:5 days
  31. 10 Dec, 2011 1 commit
    • Jack F Vogel's avatar
      Part 1 of two parts, this is the shared code changes in · 4dab5c37
      Jack F Vogel authored
      support of new deltas for both em and igb drivers.
      Note that I am not able to track all the bugs fixed in
      this code, I am a consumer of it as a component of my
      core drivers. It is important to keep the FreeBSD drivers
      up to date with it however.
      One important note is there is a key fix for 82574 in this
      update. Also, there are lots of white space changes, I am
      not happy about them but have no control over it :)