e1000: remove duplicated phy codesAdd two files base.c and base.h to reduce the redundancyin the silicon family code.Remove the code duplication from e1000_82575 files.Clean family specific func
e1000: remove duplicated phy codesAdd two files base.c and base.h to reduce the redundancyin the silicon family code.Remove the code duplication from e1000_82575 files.Clean family specific functions from base.Fix up a stray and duplicate function declaration.Signed-off-by: Jeff Kirsher <[email protected]>Signed-off-by: Sasha Neftin <[email protected]>Signed-off-by: Guinan Sun <[email protected]>Reviewed-by: Wei Zhao <[email protected]>Approved by: impObtained from: DPDK (44dddd14059f151f39f7e075b887decfc9a10f11)MFC after: 1 week(cherry picked from commit 6b9d35fac12bf657cd1df8f1521c70704ff62b61)
show more ...
if_em.ko: fix module build outside of kernel build environmentMFC after: 3 days
Use symlinks for kernel modules rather than hardlinksWhen aliasing a kernel module to a different name (ie if_igb for if_em),it's better to use symlinks than hard links. kldxref will omit entries
Use symlinks for kernel modules rather than hardlinksWhen aliasing a kernel module to a different name (ie if_igb for if_em),it's better to use symlinks than hard links. kldxref will omit entries forthe links, ensuring that the loaded module has the correct name.Reviewed by: impMFC after: 2 weeksSponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D19979
Hard link if_igb.ko to if_em.ko. Use a LINK directive to ensure thatthis is more friendly to the tree.Tested this with loader.conf:if_igb_load="YES" and it does the rightthing.Submitted by: Ia
Hard link if_igb.ko to if_em.ko. Use a LINK directive to ensure thatthis is more friendly to the tree.Tested this with loader.conf:if_igb_load="YES" and it does the rightthing.Submitted by: Ian Lepore <[email protected]>
Fix symlink if_igb.ko in -current such that its relative and doesn'tend up with non-standard DESTDIR information in its symlink. Thiscan happen very trivially if the release scripts are used.Spo
Fix symlink if_igb.ko in -current such that its relative and doesn'tend up with non-standard DESTDIR information in its symlink. Thiscan happen very trivially if the release scripts are used.Sponsored by: Limelight Networks
sys/modules: normalize .CURDIR-relative paths to SRCTOPThis simplifies make output/logicTested with: `cd sys/modules; make ALL_MODULES=` on amd64MFC after: 1 monthSponsored by: Dell EMC Isilon
Deprecate kernel configuration option EM_MULTIQUEUE now that the em(4)driver conforms to iflib.
Set CFLAGS correctly for sys/modules/emUnbreak gcc sparc64 builds (or any gcc build that uses em(4)).Reported by: [email protected]
Migrate e1000 to the IFLIB framework:- em(4) igb(4) and lem(4)- deprecate the igb device from kernel configurations- create a symbolic link in /boot/kernel from if_em.ko to if_igb.koDevices test
Migrate e1000 to the IFLIB framework:- em(4) igb(4) and lem(4)- deprecate the igb device from kernel configurations- create a symbolic link in /boot/kernel from if_em.ko to if_igb.koDevices tested:- 82574L- I218-LM- 82546GB- 82579LM- I350- I217Please report problems to [email protected]Partial review from jhb and suggestions on how to *not* brick folks whooriginally would have lost their igbX device.Submitted by: [email protected]MFC after: 2 weeksRelnotes: yesSponsored by: Limelight Networks and Dell EMC IsilonDifferential Revision: https://reviews.freebsd.org/D8299
Include opt_em.h now that there are actual kernel compile options for em(4).Submitted by: jfvMFC after: 2 weekSponsored by: Limelight Networks
Change EM_MULTIQUEUE to a real kernconf entry and enable support forup to 2 rx/tx queues for the 82574.Program the 82574 to enable 5 msix vectors, assign 1 to each rx queue,1 to each tx queue and
Change EM_MULTIQUEUE to a real kernconf entry and enable support forup to 2 rx/tx queues for the 82574.Program the 82574 to enable 5 msix vectors, assign 1 to each rx queue,1 to each tx queue and 1 to the link handler.Inspired by DragonFlyBSD, enable some RSS logic for handling tx queuehandling/processing.Move multiqueue handler functions so that they line up better in a diffreview to if_igb.cAlways enqueue tx work to be done in em_mq_start, if unable to acquirethe TX lock, then this will be processed in the background later by thetaskqueue. Remove mbuf argument from em_start_mq_locked() as the workis always enqueued. (stolen from igb)Setup TARC, TXDCTL and RXDCTL registers for better performance and stabilityin multiqueue and singlequeue implementations. Handle Intel errata 3 andgeneric multiqueue behavior with the initialization of TARC(0) and TARC(1)Bind interrupt threads to cpus in order. (stolen from igb)Add 2 new DDB functions, one to display the queue(s) and their settings andone to reset the adapter. Primarily used for debugging.In the multiqueue configuration, bump RXD and TXD ring size to max for theadapter (4096). Setup an RDTR of 64 and an RADV of 128 in multiqueue configurationto cut down on the number of interrupts. RADV was arbitrarily set to 2x RDTRand can be adjusted as needed.Cleanup the display in top a bit to make it clearer where the taskqueue threadsare running and what they should be doing.Ensure that both queues are processed by em_local_timer() by writing them bothto the IMS register to generate soft interrupts.Ensure that an soft interrupt is generated when em_msix_link() is run so thatany races between assertion of the link/status interrupt and a rx/tx interruptare handled.Document existing tuneables: hw.em.eee_setting, hw.em.msix, hw.em.smart_pwr_down, hw.em.sbpDocument use of hw.em.num_queues and the new kernel option EM_MULTIQUEUEThanks to Intel for their continued support of FreeBSD.Reviewed by: erj jfv hiren gnn wblockObtained from: Intel CorporationMFC after: 2 weeksRelnotes: YesSponsored by: Limelight NetworksDifferential Revision: https://reviews.freebsd.org/D1994
Move most of the 15 variations on generating opt_inet.h andopt_inet6.h into kmod.mk by forcing almost everybody to eat the samedogfood. While at it, consolidate the opt_bpf.h and opt_mroute.htarge
Move most of the 15 variations on generating opt_inet.h andopt_inet6.h into kmod.mk by forcing almost everybody to eat the samedogfood. While at it, consolidate the opt_bpf.h and opt_mroute.htargets here too.
Use src.opts.mk in preference to bsd.own.mk except where we need stufffrom the latter.
Change the E1000 driver option header handling to match theixgbe driver. As it was, when building them as a module INETand INET6 are not defined. In these drivers it does not causea panic, however
Change the E1000 driver option header handling to match theixgbe driver. As it was, when building them as a module INETand INET6 are not defined. In these drivers it does not causea panic, however it does result in different behavior in theioctl routine when you are using a module vs static, and Ithink the behavior should be the same.MFC after: 3 days
Add a source file needed for module linking.MFC after: 4 days
Remove unnecessary clean target in em(4), igb(4) and ixgbe(4).While here also remove man target in igb(4).Reviewed by: jfv
Add new source to the loadable em build, thoughtit wasnt needed but it is.
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 co
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
Add opt_inet.h which has been needed since r184717 introducingchecks for #ifdef INET.MFC after: 54 days
Change to build module with new directory treeMFC after:ASAP
This delta has a few important items:PR 122839 is fixed in both em and in igbSecond, the issue on building modules since the static kernelbuild changes is now resolved. I was not able to get the
This delta has a few important items:PR 122839 is fixed in both em and in igbSecond, the issue on building modules since the static kernelbuild changes is now resolved. I was not able to get the fancierdirectory hierarchy working, but this works, both em and igbbuild 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. Inthe next release I will add a second TX and RX queue. Also, thereis support here for ICH10, the followon to ICH9. Both of these areearly 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 adoptersmay try and comment on the functionality. The IOCTL structure maychange. This feature is off by default, you need to edit the Makefileand add the EM_TIMESYNC define to get the code.Enjoy all!!
This update primarily addresses the ability to have both the emand the igb driver static in the kernel. But it also reflectssome other bug fixes in my development stream at Intel.PR 122373 is also
This update primarily addresses the ability to have both the emand the igb driver static in the kernel. But it also reflectssome other bug fixes in my development stream at Intel.PR 122373 is also fixed in this code.
Remove option headers that do not exist and are not usedfrom the Makefiles in sys/modules.(opt_devfs.h, opt_bdg.h, opt_emu10kx.h and opt_uslcom.h)Approved by: rwatson (mentor)
This change introduces a split to the Intel E1000 driver, now rather thanjust em, there is an igb driver (this follows behavior with our Linux drivers).All adapters up to the 82575 are supported in
This change introduces a split to the Intel E1000 driver, now rather thanjust 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 supportwill 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 havereleased. Some stylistic changes as well.Enjoy :)
Fix kldloading if_em by compiling missing source file.
12