aboutsummaryrefslogtreecommitdiff
path: root/sys/modules
Commit message (Collapse)AuthorAgeFilesLines
* MFC r338422: Adding support for CS46xx MIDI output.Tai-hwa Liang2020-03-201-2/+2
| | | | | | | | | | | | With this patch, users can play the MIDI files through /dev/sequencer device with tools like playmidi. The audio output will go through the external MIDI device such like wavetable synthesis card. Reviewed by: matk (a long time ago), kib Tested with: Terratec SiXPack 5.1+ + Yamaha DB50XG Notes: svn path=/stable/10/; revision=359161
* MFC r319872, r321063, r321582, r322034, r322425, r322962, r322985,Navdeep Parhar2019-10-103-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r325596, r326026, r328420, r331472, r333276, r333650, r333652, r334406, r334409-r334410, r334489, r336042, r340651, r342603, and r345083. This updates the cxgbe firmwares in stable/10 and also pulls in support for some newer boards and flash parts. r319872: cxgbe(4): Do not request an FEC setting that the port does not support. r321063: cxgbe(4): Various link/media related improvements. r321582: cxgbe(4): Some updates to the common code. r322034: cxgbe(4): Always use the first and not the last virtual interface associated with a port in begin_synchronized_op. r322425: cxgbe(4): Save the last reported link parameters and compare them with the current state to determine whether to generate a link-state change notification. This fixes a bug introduced in r321063 that caused the driver to sometimes skip these notifications. r322962: cxgbe(4): Remove write only variable from t4_port_init. r322985: cxgbe(4): Maintain one ifmedia per physical port instead of one per Virtual Interface (VI). All autonomous VIs that share a port share the same media. r325596: cxgbe(4): Do not request settings not supported by the port. r326026: cxgbe(4): Add a custom board to the device id list. r328420: cxgbe(4): Do not display harmless warning in non-debug builds. r331472: cxgbe(4): Always initialize requested_speed to a valid value. This fixes an avoidable EINVAL when the user tries to disable AN after the port is initialized but l1cfg doesn't have a valid speed to use. r333276: cxgbe(4): Update all firmwares to 1.19.1.0. r333650: cxgbe(4): Claim some more T5 and T6 boards. r333652: cxgbe(4): Add support for two more flash parts. r334406: cxgbe(4): Consider all supported speeds when building the ifmedia list for a port. Fix other related issues while here: - Require port lock for access to link_config. - Allow 100Mbps operation by tracking the speed in Mbps. Yes, really. - New port flag to indicate that the media list is immutable. It will be used in future refinements. This also fixes a bug where the driver reports incorrect media with recent firmwares. r334409: cxgbe(4): Implement ifm_change callback. r334410: cxgbe(4): Use ifm for ifmedia just like the rest of the kernel. No functional change. r334489: cxgbe(4): Include full duplex mediaopt in media that can be reported as active. Always report full duplex in active media. r336042: cxgbe(4): Assume that any unknown flash on the card is 4MB and has 64KB sectors, instead of refusing to attach to the card. r340651: cxgbe(4): Update T4/5/6 firmwares to 1.22.0.3. r342603: cxgbe(4): Attach to two T540 variants. r345083: cxgbe(4): Update T4/5/6 firmwares to 1.23.0.0. Notes: svn path=/stable/10/; revision=353418
* MFC: r346191Rick Macklem2019-04-271-0/+1
| | | | | | | | | | | Add support for INET6 addresses to the kernel code that dumps open/lock state. PR#223036 reported that INET6 callback addresses were not printed by nfsdumpstate(8). This kernel patch adds INET6 addresses to the dump structure, so that nfsdumpstate(8) can print them out, post-r346190. Notes: svn path=/stable/10/; revision=346779
* MFC: r345992, r346087Rick Macklem2019-04-211-0/+1
| | | | | | | | | | | | | | Add INET6 support for the upcalls to the nfsuserd daemon. The kernel code uses UDP to do upcalls to the nfsuserd(8) daemon to get updates to the username<->uid and groupname<->gid mappings. A change to AF_LOCAL last year had to be reverted, since it could result in vnode locking issues on the AF_LOCAL socket. This patch adds INET6 support and the required #ifdef INET and INET6 to the code. Notes: svn path=/stable/10/; revision=346466
* MFC r316615 by sevan: Remove the last vestiges of FDC_DEBUG & FD_DEBUGEugene Grosbein2018-09-091-6/+0
| | | | | | | | PR: 105608 Submitted by: Differential Revision: https://reviews.freebsd.org/D10303 Notes: svn path=/stable/10/; revision=338545
* MFC r336695David C Somayajulu2018-08-093-1/+87
| | | | | | | | | | Remove support for QLNX_RCV_IN_TASKQ - i.e., Rx only in TaskQ. Added support for LLDP passthru Upgrade ECORE to version 8.33.5.0 Upgrade STORMFW to version 8.33.7.0 Notes: svn path=/stable/10/; revision=337519
* sys/modules: don't build bxe,qlxgbe if the user objects to sourceless ucodeEd Maste2018-05-231-0/+4
| | | | | | | | | | | MFC of r322682 and r322684 PR: 204747 Submitted by: Fabian Keil Obtained from: ElectroBSD Notes: svn path=/stable/10/; revision=334096
* MFC r323006 and r324386.Navdeep Parhar2018-03-293-3/+3
| | | | | | | | | This brings the cxgbe(4) firmware up to 1.16.63.0. Sponsored by: Chelsio Communications Notes: svn path=/stable/10/; revision=331719
* MFC r330949:Brooks Davis2018-03-272-2/+2
| | | | | | | | | | | | | | Fix FSACTL_GET_NEXT_ADAPTER_FIB under 32-bit compat. This includes FSACTL_LNX_GET_NEXT_ADAPTER_FIB. Reviewed by: cem Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14672 Notes: svn path=/stable/10/; revision=331637
* MFC r330876, r330945Brooks Davis2018-03-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | r330876: Fix ISP_FC_LIP and ISP_RESCAN on big-endian 64-bit systems. For _IO() ioctls, addr is a pointer to uap->data which is a caddr_t. When the caddr_t stores an int, dereferencing addr as an (int *) results in truncation on little-endian 64-bit systems and corruption (owing to extracting top bits) on big-endian 64-bit systems. In practice the value of chan was probably always zero on systems of the latter type as all such FreeBSD platforms use a register-based calling convention. Reviewed by: mav Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14673 r330945: Add opt_compat.h to isp(4) as required by r330876. Notes: svn path=/stable/10/; revision=331635
* MFC r330819, r330885, r330934Brooks Davis2018-03-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r330819: Reject CAMIOGET and CAMIOQUEUE ioctl's on pass(4) in 32-bit compat mode. These take a union ccb argument which is full of kernel pointers. Substantial translation efforts would be required to make this work. By rejecting the request we avoid processing or returning entierly wrong data. Reviewed by: imp, ken, markj, cem Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14654 r330885: We need opt_compat.h after r330819 and 330820. Add opt_compat.h to fix the stand-alone build case. Sponsored by: Netflix. r330934: This should have been += so clean builds work. Noticed by: hps@ Notes: svn path=/stable/10/; revision=331632
* MFC r330304: imcsmb(4): Intel integrated Memory Controller (iMC) SMBusRavi Pokala2018-03-092-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | controller driver imcsmb(4) provides smbus(4) support for the SMBus controller functionality in the integrated Memory Controllers (iMCs) embedded in Intel Sandybridge- Xeon, Ivybridge-Xeon, Haswell-Xeon, and Broadwell-Xeon CPUs. Each CPU implements one or more iMCs, depending on the number of cores; each iMC implements two SMBus controllers (iMC-SMBs). *** IMPORTANT NOTE *** Because motherboard firmware or the BMC might try to use the iMC-SMBs for monitoring DIMM temperatures and/or managing an NVDIMM, the driver might need to temporarily disable those functions, or take a hardware interlock, before using the iMC-SMBs. Details on how to do this may vary from board to board, and the procedure may be proprietary. It is strongly suggested that anyone wishing to use this driver contact their motherboard vendor, and modify the driver as described in the manual page and in the driver itself. (For what it's worth, the driver as-is has been tested on various SuperMicro motherboards.) Notes: svn path=/stable/10/; revision=330680
* MFC r329843:Ravi Pokala2018-02-282-0/+8
| | | | | | | | | | | | | jedec_dimm(4): report asset info and temperatures for DDR3 and DDR4 DIMMs A super-set of the functionality of jedec_ts(4). jedec_dimm(4) reports asset information (Part Number, Serial Number) encoded in the "Serial Presence Detect" (SPD) data on JEDEC DDR3 and DDR4 DIMMs. It also calculates and reports the memory capacity of the DIMM, in megabytes. If the DIMM includes a "Thermal Sensor On DIMM" (TSOD), the temperature is also reported. Notes: svn path=/stable/10/; revision=330109
* MFC r322810 and r322830:Hans Petter Selasky2017-09-062-0/+26
| | | | | | | | | | | | | | | | | | | Add new mlx5ib(4) driver to the kernel source tree which supports Remote DMA over Converged Ethernet, RoCE, for the ConnectX-4 series of PCI express network cards. There is currently no user-space support and this driver only supports kernel side non-routable RoCE V1. The krping kernel module can be used to test this driver. Full user-space support including RoCE V2 will be added as part of the ongoing upgrade to ibcore from Linux 4.9. Otherwise this driver is feature equivalent to mlx4ib(4). The mlx5ib(4) kernel module will only be built when WITH_OFED=YES is specified. Approved by: re (marius) Sponsored by: Mellanox Technologies Notes: svn path=/stable/10/; revision=323223
* MFC 322771David C Somayajulu2017-08-281-1/+3
| | | | | | | | | | | | | | Upgrade FW to 5.4.66 sysctls to display stats, stats polled every 2 seconds Modify QLA_LOCK()/QLA_UNLOCK() to not sleep after acquiring mtx_lock Add support to turn OFF/ON error recovery following heartbeat failure for debug purposes. Set default max values to 32 Tx/Rx/SDS rings Approved by: re(gjb) Notes: svn path=/stable/10/; revision=322975
* MFC r322408David C Somayajulu2017-08-241-1/+1
| | | | | | | | | | | Performance enhancements to reduce CPU utililization for large number of TCP connections (order of tens of thousands), with predominantly Transmits. Submitted by: Vaishali.Kulkarni@cavium.com Approved by: re(marius) Notes: svn path=/stable/10/; revision=322864
* MFC r322331David C Somayajulu2017-08-241-0/+1
| | | | | | | | | | Provide compile option to choose receive processing in either Ithread or Taskqueue Thread. Approved by: re(marius) Notes: svn path=/stable/10/; revision=322850
* MFC r284152:Andrey V. Elsukov2017-08-211-0/+8
| | | | | | | | | | | Add makefile to build geom_map kld. Document some GEOM_* options in NOTES and geom(4). PR: 197766 Approved by: re (kib) Notes: svn path=/stable/10/; revision=322744
* MFC r312872:Hans Petter Selasky2017-08-031-0/+1
| | | | | | | | | | | | | | | | | | | Add support for reading advanced diagnostic counters. By default reading the diagnostic counters is disabled. The firmware decides which counters are supported and only those supported show up in the dev.mce.X.diagnostics sysctl tree. To enable reading of diagnostic counters set one or more of the following sysctls to one: dev.mce.X.conf.diag_general_enable=1 dev.mce.X.conf.diag_pci_enable=1 Sponsored by: Mellanox Technologies Notes: svn path=/stable/10/; revision=322007
* MFC r318762:Navdeep Parhar2017-05-313-3/+3
| | | | | | | | | | | | | | cxgbe(4): Update the T4, T5, and T6 firmwares to 1.16.45.0. The latest firmware has a number of link related fixes, support for a new custom card, and the fix for a bug that affected rate limiting on FreeBSD. Relnotes: Yes Sponsored by: Chelsio Communications Notes: svn path=/stable/10/; revision=319270
* MFC r317702, r317847, r318307Navdeep Parhar2017-05-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | r317702: cxgbe(4): Support routines for Tx traffic scheduling. - Create a new file, t4_sched.c, and move all of the code related to traffic management from t4_main.c and t4_sge.c to this file. - Track both Channel Rate Limiter (ch_rl) and Class Rate Limiter (cl_rl) parameters in the PF driver. - Initialize all the cl_rl limiters with somewhat arbitrary default rates and provide routines to update them on the fly. - Provide routines to reserve and release traffic classes. r317847: cxgbe(4): The Tx scheduler initialization either works or doesn't. It doesn't need a refresh in either case. r318307: cxgbe(4): Avoid an out of bounds access when an attempt to unbind a tx queue from a traffic class fails. Sponsored by: Chelsio Communications Notes: svn path=/stable/10/; revision=318851
* MFC r318382David C Somayajulu2017-05-221-2/+0
| | | | | | | | | | | | | | | | | 1. Move Rx Processing to fp_taskqueue(). With this CPU utilization for processing interrupts drops to around 1% for 100G and under 1% for other speeds. 2. Use sysctls for TRACE_LRO_CNT and TRACE_TSO_PKT_LEN 3. remove unused mtx tx_lock 4. bind taskqueue kernel thread to the appropriate cpu core 5. when tx_ring is full, stop further transmits till at least 1/16th of the Tx Ring is empty. In our case 1K entries. Also if there are rx_pkts to process, put the taskqueue thread to sleep for 100ms, before enabling interrupts. 6. Use rx_pkt_threshold of 128. Notes: svn path=/stable/10/; revision=318661
* MFC 318136Sepherosa Ziehau2017-05-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | hyperv/vmbus: Reorganize vmbus device tree For GEN1 Hyper-V, vmbus is attached to pcib0, which contains the resources for PCI passthrough and SR-IOV. There is no acpi_syscontainer0 on GEN1 Hyper-V. For GEN2 Hyper-V, vmbus is attached to acpi_syscontainer0, which contains the resources for PCI passthrough and SR-IOV. There is no pcib0 on GEN2 Hyper-V. The ACPI VMBUS device now only holds its _CRS, which is empty as of this commit; its existence is mainly for upward compatibility. Device tree structure is suggested by jhb@. Tested-by: dexuan@ Collabrated-wth: dexuan@ Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D10565 Notes: svn path=/stable/10/; revision=318393
* MFC: r292180 (partial), r297127 (partial), r311911, r311923, r312939,Marius Strobl2017-05-113-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r313250, r313712, r314811 (partial), r314887 (partial), r315430, r317981, r315466 o Move the DRIVER_MODULE() statements that declare mmc(4) to be a child of the various bridge drivers out of dev/mmc.c and into the bridge drivers. o Add ACPI platform support for SDHCI driver. o Fix some overly long lines, whitespace and other bugs according to style(9) as well as spelling etc. in mmc(4), mmcsd(4) and sdhci(4). o In the mmc(4) bridges and sdhci(4) (bus) front-ends: - Remove redundant assignments of the default bus_generic_print_child device method, - use DEVMETHOD_END, - use NULL instead of 0 for pointers. o Trim/adjust includes. o Add and use a MMC_DECLARE_BRIDGE macro for declaring mmc(4) bridges as kernel drivers and their dependency onto mmc(4). o Add support for eMMC "partitions". Besides the user data area, i. e. the default partition, eMMC v4.41 and later devices can additionally provide up to: 1 enhanced user data area partition 2 boot partitions 1 RPMB (Replay Protected Memory Block) partition 4 general purpose partitions (optionally with a enhanced or extended attribute) Besides simply subdividing eMMC devices, some Intel NUCs having UEFI code in the boot partitions etc., another use case for the partition support is the activation of pseudo-SLC mode, which manufacturers of eMMC chips typically associate with the enhanced user data area and/ or the enhanced attribute of general purpose partitions. CAVEAT EMPTOR: Partitioning eMMC devices is a one-time operation. o Now that properly issuing CMD6 is crucial (so data isn't written to the wrong partition for example), make a step into the direction of correctly handling the timeout for these commands in the MMC layer. Also, do a SEND_STATUS when CMD6 is invoked with an R1B response as recommended by relevant specifications. o Add an IOCTL interface to mmcsd(4); this is sufficiently compatible with Linux so that the GNU mmc-utils can be ported to and used with FreeBSD (note that due to the remaining deficiencies outlined above SANITIZE operations issued by/with `mmc` currently most likely will fail). These latter have been added to ports as sysutils/mmc-utils. Among others, the `mmc` tool of mmc-utils allows for partitioning eMMC devices (tested working). o For devices following the eMMC specification v4.41 or later, year 0 is 2013 rather than 1997; so correct this for assembling the device ID string properly. o Let mmcsd.ko depend on mmc.ko. Additionally, bump MMC_VERSION as at least for some of the above a matching pair is required. Notes: svn path=/stable/10/; revision=318198
* MFC: r287013 (partial), r294616, r314097 (partial)Marius Strobl2017-05-102-0/+9
| | | | | | | | | | | | | | | | | | | | - Allow overriding the FDT slicer with a custom slicer. - Teach the flashmap code about SPI flash. - Allow different slicers for different flash types to be registered with geom_flashmap(4) and teach it about MMC for slicing enhanced user data area partitions. The FDT slicer still is the default for CFI, NAND and SPI flash on FDT-enabled platforms. - In addition to a device_t, also pass the name of the GEOM provider in question to the slicers as a single device may provide more than one provider. - Build a geom_flashmap.ko. - Use MODULE_VERSION() so other modules can depend on geom_flashmap(4). - Remove redundant/superfluous GEOM routines that either do nothing or provide/just call default GEOM (slice) functionality. - Trim/adjust includes Notes: svn path=/stable/10/; revision=318159
* Revert r314937 as anonymous unions in GCC don't seem to work.Pedro F. Giffuni2017-04-271-3/+0
| | | | | | | | | This has been breaking the powerpc(LINT64 at least) for quite a while now. Reported by: emaste Notes: svn path=/stable/10/; revision=317532
* MFC r316485David C Somayajulu2017-04-193-0/+111
| | | | | | | | Add 25/40/100Gigabit Ethernet Driver version v1.3.0 for Cavium Inc's. Qlogic 45000 Series Adapters Notes: svn path=/stable/10/; revision=317120
* MFC r315579, r315670: Add initial support for multiple MSI-X vectors.Alexander Motin2017-04-021-0/+1
| | | | | | | | | | For 24xx and above use 2 vectors (default and response queue). For 26xx and above use 3 vectors (default, response and ATIO queues). Due to global lock interrupt hardlers never run simultaneously now, but at least this allows to save one regitster read per interrupt. Notes: svn path=/stable/10/; revision=316399
* MFC r314048,r314194: reimplement zfsctl (.zfs) supportAndriy Gapon2017-03-231-1/+0
| | | | Notes: svn path=/stable/10/; revision=315844
* ixgbe(4): Update to 3.2.11-kEric Joyner2017-03-152-6/+5
| | | | | | | | | | | | | | | | | | | | | | Includes: 1. Support for X553 (Denverton) Ethernet devices. 2. Initialization code refactoring. 3. ixgbe-specific netmap code moved to ixgbe folder (but not removed from dev/netmap/). 4. VF driver full split. Some cleanup can be had due to redundant code, but this split goes inline with the refactoring. NOTE: This is a direct commit to stable/10. Newer branches will receive an iflib-converted version of ixgbe, with these updates included, instead. Differential Revision: https://reviews.freebsd.org/D9310 Submitted by: Jeb Cramer (jeb.j.cramer@intel.com) Tested by: Jeffrey Pieper (jeffrey.e.pieper@intel.com) Sponsored by: Intel Corporation Notes: svn path=/stable/10/; revision=315333
* MFC r314644:Enji Cooper2017-03-121-0/+1
| | | | | | | Fix "make depend" with geom_uzip.ko: add opt_geom.h to SRCS Notes: svn path=/stable/10/; revision=315119
* qlxgbe: add GCC_MS_EXTENSIONS to CFLAGS to make old base GCC happyAndriy Gapon2017-03-111-0/+3
| | | | | | | | | | | | | | The module uses unnamed structure and union fields and base GCC in stable/10 doesn't like it. I think that that is a C11 feature, so it is courteous of more modern compilers to not complain about it when compiling in C99 mode. This is a direct commit as the change is not required in head. Approved by: davidcs Notes: svn path=/stable/10/; revision=315069
* Revert 294545:Pedro F. Giffuni2017-03-091-0/+3
| | | | | | | | | | Bringing back ext4: add support for reading sparse files Add GCC_MS_EXTENSIONS to the CFLAGS in the module to make the old GCC in base happy. This workaround is only required in stable/10. Notes: svn path=/stable/10/; revision=314937
* mlx5 module: remove include path that doesn't exist in this branchAndriy Gapon2017-03-031-1/+0
| | | | | | | | This is a direct commit. It allows the module to be compiled with the base gcc. Notes: svn path=/stable/10/; revision=314594
* fix up r314327 (MFC of r292782): sha2 -> sha512 in sys/modules/randomAndriy Gapon2017-02-271-1/+1
| | | | Notes: svn path=/stable/10/; revision=314331
* MFC r292782: Replace sys/crypto/sha2/sha2.c with lib/libmd/sha512c.cAndriy Gapon2017-02-273-3/+3
| | | | | | | | | | cperciva's libmd implementation is 5-30% faster The same was done for SHA256 previously in r263218 Approved by: secteam Notes: svn path=/stable/10/; revision=314327
* MFC r263219: add sha256c.c to the various modules that included sha2.c...Andriy Gapon2017-02-234-4/+4
| | | | Notes: svn path=/stable/10/; revision=314146
* MFC r312513:Enji Cooper2017-02-111-17/+17
| | | | | | | | | Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones This simplifies pathing in make/displayed output Notes: svn path=/stable/10/; revision=313631
* MFC r299864,r303166:Enji Cooper2017-01-171-0/+1
| | | | | | | | | | | | | r299864 (by markj): opt_kdtrace.h is not needed for SDT probes as of r258541. r303166 (by imp): Add opt_ddb.h. Notes: svn path=/stable/10/; revision=312357
* MFC r310151 and r311173.Navdeep Parhar2017-01-063-3/+3
| | | | | | | | | | | | | | | | | r310151: cxgbe(4): Changes to the default T6 firmware configuration file. - Disable features that are not supported or not used on FreeBSD. - Increase the RSS table slice per interface. - Increase the share of the TCAM reserved for filtering. r311173: cxgbe(4): Update T4, T5 and T6 firmwares to 1.16.26.0. Sponsored by: Chelsio Communications Notes: svn path=/stable/10/; revision=311507
* MFC r310817Andrew Rybchenko2017-01-061-1/+1
| | | | | | | | | | | | | | sfxge(4): remove obsolete Wake-On-LAN support Wake-on-lan is not supported in production on any of our adapters, as they don't have the required AUX power connector. (It's possible that AUX power is supplied to some of our ALOM or mezz adapters, but if so then we've never implemented or tested WoL support.) Sponsored by: Solarflare Communications, Inc. Notes: svn path=/stable/10/; revision=311500
* MFC 310324Sepherosa Ziehau2017-01-041-3/+3
| | | | | | | | | | hyperv/ic: Rename cleaned up files. Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8850 Notes: svn path=/stable/10/; revision=311254
* MFC 310317Sepherosa Ziehau2017-01-041-1/+6
| | | | | | | | | | hyperv/ic: Rname cleaned up file. Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8848 Notes: svn path=/stable/10/; revision=311251
* MFC r310758Andrew Rybchenko2017-01-021-1/+1
| | | | | | | | | | sfxge(4): delete hunt_phy.c Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc. Notes: svn path=/stable/10/; revision=311087
* MFC 309346,309348Sepherosa Ziehau2016-12-301-1/+1
| | | | | | | | | | | | | | | | | | | | 309346 hyperv/hn: Add HN_DEBUG kernel option. If bufring is used for per-TX ring descs, don't update "available" counter, which is only used to help debugging. Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8674 309348 hyperv/hn: Don't hold txdesc, if no BPFs are attached. Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8675 Notes: svn path=/stable/10/; revision=310799
* MFC 308664,308742,308743Sepherosa Ziehau2016-12-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 308664 hyperv/vss: Add driver and tools for VSS VSS stands for "Volume Shadow Copy Service". Unlike virtual machine snapshot, it only takes snapshot for the virtual disks, so both filesystem and applications have to aware of it, and cooperate the whole VSS process. This driver exposes two device files to the userland: /dev/hv_fsvss_dev Normally userland programs should _not_ mess with this device file. It is currently used by the hv_vss_daemon(8), which freezes and thaws the filesystem. NOTE: currently only UFS is supported, if the system mounts _any_ other filesystems, the hv_vss_daemon(8) will veto the VSS process. If hv_vss_daemon(8) was disabled, then this device file must be opened, and proper ioctls must be issued to keep the VSS working. /dev/hv_appvss_dev Userland application can opened this device file to receive the VSS freeze notification, hold the VSS for a while (mainly to flush application data to filesystem), release the VSS process, and receive the VSS thaw notification i.e. applications can run again. The VSS will still work, even if this device file is not opened. However, only filesystem consistency is promised, if this device file is not opened or is not operated properly. hv_vss_daemon(8) is started by devd(8) by default. It can be disabled by editting /etc/devd/hyperv.conf. Submitted by: Hongjiang Zhang <honzhan microsoft com> Reviewed by: kib, mckusick Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8224 308742 hyperv/vss: Nuke unused variables. Submitted by: markj Reported by: markj Sponsored by: Microsoft 308743 hyperv/vss: Install the userland daemon to /usr/sbin instead of / Submitted by: markj Reported by: markj Sponsored by: Microsoft Notes: svn path=/stable/10/; revision=310735
* MFC r309491: Build smbios.ko as a module for amd64 and i386Ravi Pokala2016-12-112-1/+6
| | | | | | | | | | | | | | For whatever reason, smapi, smbios, vpd are all under the "bios" directory. smapi is only for i386, so the entire "bios" directory is only built for i386. Break smapi out, and make only it i386-specific. Then, build the "bios" directory for both amd64 and i386. Because 'sys/modules/Makefile' was refactored after stable/10 was branched, the diff for that file is different from that of the original commit. They are functionally equivalent. Notes: svn path=/stable/10/; revision=309842
* MFC 309613: cxgbe(4): Update firmwares from version 1.16.12.0 to 1.16.22.0.John Baldwin2016-12-093-3/+3
| | | | | | | Sponsored by: Chelsio Communications Notes: svn path=/stable/10/; revision=309724
* MFC 305695,305696,305699,305702,305703,305713,305715,305827,305852,305906,John Baldwin2016-12-056-2/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 305908,306062,306063,306137,306138,306206,306216,306273,306295,306301, 306465,309302: Add support for adapters using the Terminator T6 ASIC. 305695: cxgbe(4): Set up fl_starve_threshold2 accurately for T6. 305696: cxgbe(4): Use correct macro for header length with T6 ASICs. This affects the transmit of the VF driver only. 305699: cxgbe(4): Update the pad_boundary calculation for T6, which has a different range of boundaries. 305702: cxgbe(4): Use smaller min/max bursts for fl descriptors with a T6. 305703: cxgbe(4): Deal with the slightly different SGE_STAT_CFG in T6. 305713: cxgbe(4): Add support for additional port types and link speeds. 305715: cxgbe(4): Catch up with the rename of tlscaps -> cryptocaps. TLS is one of the capabilities of the crypto engine in T6. 305827: cxgbe(4): Use the interface's viid to calculate the PF/VF/VFValid fields to use in tx work requests. 305852: cxgbe(4): Attach to cards with the Terminator 6 ASIC. T6 cards will come up as 't6nex' nexus devices with 'cc' ports hanging off them. The T6 firmware and configuration files will be added as soon as they are released. For now the driver will try to work with whatever firmware and configuration is on the card's flash. 305906: cxgbe/t4_tom: The SMAC entry for a VI is at a different location in the T6. 305908: cxgbe/t4_tom: Update the active/passive open code to support T6. Data path works as-is. 306062: cxgbe(4): Show wcwr_stats for T6 cards. 306063: cxgbe(4): Setup congestion response for T6 rx queues. 306137: cxgbetool: Add T6 support to the SGE context decoder. 306138: Fix typo. 306206: cxgbe(4): Catch up with the different layout of WHOAMI in T6. Note that the code moved below t4_prep_adapter() as part of this change because now it needs a working chip_id(). 306216: cxgbe(4): Fix the output of the "tids" sysctl on T6. 306273: cxgbe(4): Fix netmap with T6, which doesn't encapsulate SGE_EGR_UPDATE message inside a FW_MSG. The base NIC already deals with updates in either form. 306295: cxgbe(4): Support SIOGIFXMEDIA so that ifconfig displays correct media for 25Gbps and 100Gbps ports. This should have been part of r305713, which is when the driver first started reporting extended media types. 306301: cxgbe(4): Use the port's top speed to figure out whether it is "high speed" or not (for the purpose of calculating the number of queues etc.) This does the right thing for 25Gbps and 100Gbps ports. 306465: cxgbe(4): Claim the T6 -DBG card. 309302: cxgbe(4): Include firmware for T6 cards in the driver. Update all firmwares to 1.16.12.0. Sponsored by: Chelsio Communications Notes: svn path=/stable/10/; revision=309560
* MFC 303522,303647,303860,303880,304168-304170,304479,304482,304485,305548,John Baldwin2016-12-023-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 305549: Chelsio T4/T5 VF driver. 303522: Various fixes to the t4/5nex character device. - Remove null open/close methods. - Don't set d_flags to 0 explicitly. - Remove t5_cdevsw as the .d_name member isn't really used and doesn't warrant a separate cdevsw just for the name. - Use ENOTTY as the error value for an unknown ioctl request. - Use make_dev_s() to close race with setting si_drv1. 303647: Store the offset of the KDOORBELL and GTS registers in the softc. VF devices use a different register layout than PF devices. Storing the offset in a value in the softc allows code to be shared between the PF and VF drivers. 303860: Reserve an adapter flag IS_VF to mark VF devices vs PF devices. 303880: Track the base absolute ID of ingress and egress queues. Use this to map an absolute queue ID to a logical queue ID in interrupt handlers. For the regular cxgbe/cxl drivers this should be a no-op as the base absolute ID should be zero. VF devices have a non-zero base absolute ID and require this change. While here, export the absolute ID of egress queues via a sysctl. 304168: Make SGE parameter handling more VF-friendly. Add fields to hold the SGE control register and free list buffer sizes to the sge_params structure. Populate these new fields in t4_init_sge_params() for PF devices and change t4_read_chip_settings() to pull these values out of the params structure instead of reading registers directly. This will permit t4_read_chip_settings() to be reused for VF devices which cannot read SGE registers directly. While here, move the call to t4_init_sge_params() to get_params__post_init(). The VF driver will populate the SGE parameters structure via a different method before calling t4_read_chip_settings(). 304169: Update mailbox writes to work with VF devices. - Use alternate register locations for the data and control registers for VFs. - Do a dummy read to force the writes to the mailbox data registers to post before the write to the control register on VFs. - Do not check the PCI-e firmware register for errors on VFs. 304170: Add support for register dumps on VF devices. - Add handling of VF register sets to t4_get_regs_len() and t4_get_regs(). - While here, use t4_get_regs_len() in the ioctl handler for regdump instead of inlining it. 304479: Add structures for VF-specific adapter parameters. While here, mark which parameters are PF-specific and which are VF-specific. 304482: Adjust t4_port_init() to work with VF devices. Specifically, the FW_PORT_CMD may or may not work for a VF (the PF driver can choose whether or not to permit access to this command), so don't attempt to fetch port information on a VF if permission is denied by the PF. 304485: Reorder sysctls so that nodes shared with the VF driver are added first. This permits a single early return for VF devices in the routines that add sysctl nodes. 305548: Don't break out of the m_advance() loop if len drops to zero. If a packet contains the Ethernet header (14 bytes) in the first mbuf and the payload (IP + UDP + data) in the second mbuf, then the attempt to fetch the l3hdr will return a NULL pointer. The first loop iteration will drop len to zero and exit the loop without setting 'p'. However, the desired data is at the start of the second mbuf, so the correct behavior is to loop around and let the conditional set 'p' to m_data of the next mbuf (and leave offset as 0). 305549: Chelsio T4/T5 VF driver. The cxgbev/cxlv driver supports Virtual Function devices for Chelsio T4 and T4 adapters. The VF devices share most of their code with the existing PF4 driver (cxgbe/cxl) and as such the VF device driver currently depends on the PF4 driver. Similar to the cxgbe/cxl drivers, the VF driver includes a t4vf/t5vf PCI device driver that attaches to the VF device. It then creates child cxgbev/cxlv devices representing ports assigned to the VF. By default, the PF driver assigns a single port to each VF. t4vf_hw.c contains VF-specific routines from the shared code used to fetch VF-specific parameters from the firmware. t4_vf.c contains the VF-specific PCI device driver and includes its own attach routine. VF devices are required to use a different firmware request when transmitting packets (which in turn requires a different CPL message to encapsulate messages). This alternate firmware request does not permit chaining multiple packets in a single message, so each packet results in a firmware request. In addition, the different CPL message requires more detailed information when enabling hardware checksums, so parse_pkt() on VF devices must examine L2 and L3 headers for all packets (not just TSO packets) for VF devices. Finally, L2 checksums on non-UDP/non-TCP packets do not work reliably (the firmware trashes the IPv4 fragment field), so IPv4 checksums for such packets are calculated in software. Most of the other changes in the non-VF-specific code are to expose various variables and functions private to the PF driver so that they can be used by the VF driver. Note that a limited subset of cxgbetool functions are supported on VF devices including register dumps, scheduler classes, and clearing of statistics. In addition, TOE is not supported on VF devices, only for the PF interfaces. Sponsored by: Chelsio Communications Notes: svn path=/stable/10/; revision=309447