aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/cxgbe/common
Commit message (Collapse)AuthorAgeFilesLines
...
* cxgbe(4): Fix page fault in t4_get_lb_stats with 2 port T5 cards.Navdeep Parhar2020-10-191-9/+12
| | | | | | | | | | PR: 250449 Reported by: freqlabs@ MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=366853
* cxgbe(4): Do not request FEC when requesting speeds that don't have FEC.Navdeep Parhar2020-10-141-1/+1
| | | | | | | | MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=366696
* cxgbe(4): More fixes for the T6 FCS error counter.Navdeep Parhar2020-10-091-27/+4
| | | | | | | | | | | | | | | | | | | | r365732 was the first attempt to get an accurate count but it was writing to some read-only registers to clear them and that obviously didn't work. Instead, note the counter's value when it is supposed to be cleared and subtract it from future readings. dev.<port>.stats.rx_fcs_error should not be serviced from the MPS register for T6. The stats.* sysctls should all use T5_PORT_REG for T5 and above. This must have been missed in the initial T5 support years ago. Fix it while here. MFC after: 3 days Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=366589
* cxgbe(4): add support for stateless offloads for VXLAN traffic.Navdeep Parhar2020-09-182-12/+4
| | | | | | | | | | | Hardware assistance includes checksumming (tx and rx), TSO, and RSS on the inner traffic in a VXLAN tunnel. Relnotes: Yes Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=365871
* cxgbe(4): Get the count of FCS errors from the MAC and not MPS for T6 ports.Navdeep Parhar2020-09-141-1/+27
| | | | | | | | | | | The MPS register on the T6 counts something other than FCS errors despite its name. MFC after: 3 days Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=365732
* cxgbe(4): Use large clusters for TOE rx queues when TOE+TLS is enabled.Navdeep Parhar2020-08-232-1/+18
| | | | | | | | | | | | Rx is more efficient within the chip when the receive buffer size matches the TLS PDU size. MFC after: 3 days Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D26127 Notes: svn path=/head/; revision=364497
* cxgbe(4): Some updates to the common code.Navdeep Parhar2020-07-243-91/+607
| | | | | | | | | Obtained from: Chelsio Communications MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=363498
* cxgbe(4): changes in the Tx path to help increase tx coalescing.Navdeep Parhar2020-07-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | - Ask the firmware for the number of frames that can be stuffed in one work request. - Modify mp_ring to increase the likelihood of tx coalescing when there are just one or two threads that are doing most of the tx. Add teeth to the abdication mechanism by pushing the consumer lock into mp_ring. This reduces the likelihood that a consumer will get stuck with all the work even though it is above its budget. - Add support for coalesced tx WR to the VF driver. This, with the changes above, results in a 7x improvement in the tx pps of the VF driver for some common cases. The firmware vets the L2 headers submitted by the VF driver and it's a big win if the checks are performed for a batch of packets and not each one individually. Reviewed by: jhb@ MFC after: 2 weeks Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D25454 Notes: svn path=/head/; revision=362905
* cxgbe(4): Congestion drops are maintained per E-channel and not perNavdeep Parhar2020-02-191-1/+2
| | | | | | | | | | | | | buffer group. This fixes a bug where congestion drops on port 1 of a T6 card would incorrectly be counted as drops on port 0. MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=358086
* cxgbe(4): Allow the driver to specify multiple FECs that the firmwareNavdeep Parhar2019-11-262-57/+116
| | | | | | | | | | | | | | | | | | | | | | | | should try in order to link up with the peer. Various FEC variables within the driver can now have multiple bits set instead of being powers of 2. 0 and -1 in the user knobs still mean no FEC and auto (driver decides) respectively for backward compatibility, but no-FEC and auto now have their own bits in the internal representation. There is a new bit that can be set to request the FEC recommended by the cable/transceiver module. Add sysctls to display link related capabilities of the local side as well as the link partner. Note that all this needs a new firmware and the documentation for the driver FEC knobs will be updated after that firmware is added to the driver. MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=355107
* NIC KTLS for Chelsio T6 adapters.John Baldwin2019-11-213-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for ifnet (NIC) KTLS using Chelsio T6 adapters. Unlike the TOE-based KTLS in r353328, NIC TLS works with non-TOE connections. NIC KTLS on T6 is not able to use the normal TSO (LSO) path to segment the encrypted TLS frames output by the crypto engine. Instead, the TOE is placed into a special setup to permit "dummy" connections to be associated with regular sockets using KTLS. This permits using the TOE to segment the encrypted TLS records. However, this approach does have some limitations: 1) Regular TOE sockets cannot be used when the TOE is in this special mode. One can use either TOE and TOE-based KTLS or NIC KTLS, but not both at the same time. 2) In NIC KTLS mode, the TOE is only able to accept a per-connection timestamp offset that varies in the upper 4 bits. Put another way, only connections whose timestamp offset has the 28 lower bits cleared can use NIC KTLS and generate correct timestamps. The driver will refuse to enable NIC KTLS on connections with a timestamp offset with any of the lower 28 bits set. To use NIC KTLS, users can either disable TCP timestamps by setting the net.inet.tcp.rfc1323 sysctl to 0, or apply a local patch to the tcp_new_ts_offset() function to clear the lower 28 bits of the generated offset. 3) Because the TCP segmentation relies on fields mirrored in a TCB in the TOE, not all fields in a TCP packet can be sent in the TCP segments generated from a TLS record. Specifically, for packets containing TCP options other than timestamps, the driver will inject an "empty" TCP packet holding the requested options (e.g. a SACK scoreboard) along with the segments from the TLS record. These empty TCP packets are counted by the dev.cc.N.txq.M.kern_tls_options sysctls. Unlike TOE TLS which is able to buffer encrypted TLS records in on-card memory to handle retransmits, NIC KTLS must re-encrypt TLS records for retransmit requests as well as non-retransmit requests that do not include the start of a TLS record but do include the trailer. The T6 NIC KTLS code tries to optimize some of the cases for requests to transmit partial TLS records. In particular it attempts to minimize sending "waste" bytes that have to be given as input to the crypto engine but are not needed on the wire to satisfy mbufs sent from the TCP stack down to the driver. TCP packets for TLS requests are broken down into the following classes (with associated counters): - Mbufs that send an entire TLS record in full do not have any waste bytes (dev.cc.N.txq.M.kern_tls_full). - Mbufs that send a short TLS record that ends before the end of the trailer (dev.cc.N.txq.M.kern_tls_short). For sockets using AES-CBC, the encryption must always start at the beginning, so if the mbuf starts at an offset into the TLS record, the offset bytes will be "waste" bytes. For sockets using AES-GCM, the encryption can start at the 16 byte block before the starting offset capping the waste at 15 bytes. - Mbufs that send a partial TLS record that has a non-zero starting offset but ends at the end of the trailer (dev.cc.N.txq.M.kern_tls_partial). In order to compute the authentication hash stored in the trailer, the entire TLS record must be sent as input to the crypto engine, so the bytes before the offset are always "waste" bytes. In addition, other per-txq sysctls are provided: - dev.cc.N.txq.M.kern_tls_cbc: Count of sockets sent via this txq using AES-CBC. - dev.cc.N.txq.M.kern_tls_gcm: Count of sockets sent via this txq using AES-GCM. - dev.cc.N.txq.M.kern_tls_fin: Count of empty FIN-only packets sent to compensate for the TOE engine not being able to set FIN on the last segment of a TLS record if the TLS record mbuf had FIN set. - dev.cc.N.txq.M.kern_tls_records: Count of TLS records sent via this txq including full, short, and partial records. - dev.cc.N.txq.M.kern_tls_octets: Count of non-waste bytes (TLS header and payload) sent for TLS record requests. - dev.cc.N.txq.M.kern_tls_waste: Count of waste bytes sent for TLS record requests. To enable NIC KTLS with T6, set the following tunables prior to loading the cxgbe(4) driver: hw.cxgbe.config_file=kern_tls hw.cxgbe.kern_tls=1 Reviewed by: np Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D21962 Notes: svn path=/head/; revision=354974
* cxgbe(4): Use correct size while converting lpacaps32 to nativeNavdeep Parhar2019-10-311-1/+1
| | | | | | | endianness. Notes: svn path=/head/; revision=354210
* cxgbe(4): Use correct FetchBurstMin values for T6.Navdeep Parhar2019-10-251-0/+5
| | | | | | | | MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=354106
* cxgbe(4): Completely ignore all top level interrupts that are not enabled.Navdeep Parhar2019-07-121-7/+6
| | | | | | | | | | | | The driver used to log any non-zero cause and when running with a single line interrupt it would spam the console/logs with reports of interrupts that are of no interest to anyone. MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=349956
* cxgbe/t4_tom: Add a "TCB history" feature that samples hardware stateNavdeep Parhar2019-04-221-1/+2
| | | | | | | | | | for a tid and maintains a running history of some interesting events. Service TCP_INFO queries from the history when the tid is being tracked there. Notes: svn path=/head/; revision=346570
* cxgbe(4): Add a flag to indicate that bits in interrupt cause but not inNavdeep Parhar2019-04-021-47/+82
| | | | | | | | | | | | | | | | interrupt enable are not fatal. The firmware sets up all the interrupt enables based on run time configuration, which means the information in the enables is more accurate than what's compiled into the driver. This change also allows the fatal bits to be updated without any changes in the driver in some cases. MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=345810
* cxgbe(4): Treat the viid as an opaque identifier.Navdeep Parhar2019-03-202-21/+42
| | | | | | | | | | | Recent firmwares prefer to use a different format for viid internally and this change allows them to do so. MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=345334
* cxgbe(4): Use correct port_info in the call to is_bt().Navdeep Parhar2019-02-251-1/+1
| | | | | | | | | | | | This fixes a panic during configuration if the tx channel of a port isn't the same as its port id. Reported by: Fabrice Bruel MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=344519
* cxgbe(4): Ignore unused interrupts.Navdeep Parhar2019-02-101-0/+1
| | | | | | | Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=343968
* cxgbe(4): Auto-dump the CIM block's logic analyzer on a TIMER0 interrupt.Navdeep Parhar2019-02-071-1/+5
| | | | | | | Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=343862
* cxgbe(4): Auto-dump the device log on a mailbox timeout or when theNavdeep Parhar2019-02-071-3/+11
| | | | | | | | | firmware reports an error in pcie_fw. Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=343861
* cxgbe(4): Improved error reporting and diagnostics.Navdeep Parhar2019-02-012-667/+1221
| | | | | | | | | | | | | | | | | | | | | | | "slow" interrupt handler: - Expand the list of INT_CAUSE registers known to the driver. - Add decode information for many more bits but decouple it from the rest of intr_info so that it is entirely optional. - Call t4_fatal_err exactly once, and from the top level PL intr handler. t4_fatal_err: - Use t4_shutdown_adapter from the common code to stop the adapter. - Stop servicing slow interrupts after the first fatal one. Driver/firmware interaction: - CH_DUMP_MBOX: note whether the mailbox being dumped is a command or a reply or something else. - Log the raw value of pcie_fw for some errors. - Use correct log levels (debug vs. error). Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=343666
* cxgbe(4): Clear FW_OK if the firmware reports an error.Navdeep Parhar2019-01-041-1/+3
| | | | | | | Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=342758
* cxgbe(4): Fall back to a basic configuration in case of any error duringNavdeep Parhar2018-12-062-90/+28
| | | | | | | | | | | | | card initialization. This is an expanded version of r333682. Break up prep_firmware into simpler routines while here. Load the firmware/config KLD only if needed. MFC after: 1 month Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=341620
* cxgbe(4): Link related changes.Navdeep Parhar2018-09-252-125/+372
| | | | | | | | | | | | | | | | | | | | | | | - Switch to using 32b port/link capabilities in the driver. The 32b format is used internally by firmwares > 1.16.45.0 and the driver will now interact with the firmware in its native format, whether it's 16b or 32b. Note that the 16b format doesn't have room for 50G, 200G, or 400G speeds. - Add a bit in the pause_settings knobs to allow negotiated PAUSE settings to override manual settings. - Ensure that manual link settings persist across an administrative down/up as well as transceiver unplug/replug. - Remove unused is_*G_port() functions. Approved by: re@ (gjb@) MFC after: 1 month Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=338924
* cxgbe(4): Avoid overflow while calculating channel rate.Navdeep Parhar2018-08-211-1/+1
| | | | | | | | | Reported by: Coverity (CID 1008352) MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=338156
* cxgbe(4): Add support for high priority filters on T6+. They have theirNavdeep Parhar2018-08-091-0/+7
| | | | | | | | | | | | | | | | | | own region in the TCAM starting with T6, unlike previous chips where they were in the same region as normal filters. These filters "hit" before anything else in the LE's lookup. The exact order is: a) High priority filters b) TOE's active region (TCAM and/or hash) c) Servers (TOE hw listeners) d) Normal filters MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=337538
* cxgbe(4): Allow the driver to specify a burst size when configuring aNavdeep Parhar2018-08-072-2/+3
| | | | | | | | | | | | | | | traffic class for rate limiting. Add experimental knobs that allow the user to specify a default pktsize and burstsize for traffic classes associated with a port: dev.<ifname>.<instance>.tc.pktsize dev.<ifname>.<instance>.tc.burstsize Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=337439
* cxgbe(4): Improvements in TID management.Navdeep Parhar2018-08-021-8/+4
| | | | | | | | | | | | | | | | | | | - Ignore any type of TID where the start/end values are not in the correct order. There are situations where the firmware isn't able to reserve room for the number requested in the config file but doesn't report a failure during configuration and instead sets end <= start. - Track start/end in tid_tab and remove some redundant copies from adapter->params. - Move all the start/end and other read-only parameters to a quiet part of tid_tab, away from the tid locks. MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=337192
* cxgbe(4): Assume that any unknown flash on the card is 4MB and has 64KBNavdeep Parhar2018-07-061-35/+14
| | | | | | | | | | | sectors, instead of refusing to attach to the card. Submitted by: Casey Leedom @ Chelsio MFC after: 3 days Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=336042
* cxgbe(4): Some mailbox commands require access to the Tx pipeline andNavdeep Parhar2018-06-191-3/+67
| | | | | | | | | | | | can time out if it's backed up due to a non-stop deluge of PAUSE frames from a misbehaving peer. Detect this situation and toggle MPS TxEn to allow forward progress. MFC after: 2 weeks Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=335352
* cxgbe(4): Consider all supported speeds when building the ifmedia listNavdeep Parhar2018-05-302-11/+17
| | | | | | | | | | | | | | | | | 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. MFC after: 2 days Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=334406
* cxgbe(4): Make FW4_ACK a shared CPL. ETHOFLD in the base driver willNavdeep Parhar2018-05-241-0/+24
| | | | | | | | | use it for per-flow rate limiting. Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=334138
* cxgbe(4): Fix range checks in is_etid.Navdeep Parhar2018-05-241-2/+3
| | | | Notes: svn path=/head/; revision=334137
* cxgbe(4): Add support for two more flash parts.Navdeep Parhar2018-05-151-0/+38
| | | | | | | | | Obtained from: Chelsio Communications MFC after: 2 days Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=333652
* cxgbe(4): Filtering related features and fixes.Navdeep Parhar2018-05-153-6/+19
| | | | | | | | | | | | - Driver support for hardware NAT. - Driver support for swapmac action. - Validate a request to create a hashfilter against the filter mask. - Add a hashfilter config file for T5. Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=333620
* cxgbe(4): Determine whether the firmware supports the FILTER2 workNavdeep Parhar2018-05-101-0/+1
| | | | | | | | | | | request, which can be used to configure hardware NAT and swapmac. All firmwares released after Jan 2017 support this work request. Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=333442
* cxgbe(4): Add support for hash filters.Navdeep Parhar2018-05-092-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These filters reside in the card's memory instead of its TCAM and can be configured via a new "hashfilter" subcommand in cxgbetool. Hash and normal TCAM filters can be used together. The hardware does an exact-match of packet fields for hash filters, unlike the masked match performed for TCAM filters. Any T5/T6 card with memory can support at least half a million hash filters. The sample config file with the driver configures 512K of these, it is possible to double this to 1 million+ in some cases. The chip does an exact-match of fields of incoming datagrams with hash filters and performs the action configured for the filter if it matches. The fields to match are specified in a "filter mask" in the firmware config file. The filter mask always includes the 5-tuple (sip, dip, sport, dport, ipproto). It can, optionally, also include any subset of the filter mode (see filterMode and filterMask in the firmware config file). For example: filterMode = fragmentation, mpshittype, protocol, vlan, port, fcoe filterMask = protocol, port, vlan Exact values of the 5-tuple, the physical port, and VLAN tag would have to be provided while setting up a hash filter with the chip configuration above. Hash filters support all actions supported by TCAM filters. A packet that hits a hash filter can be dropped, let through (with optional steering to a specific queue or RSS region), switched out of another port (with optional L2 rewrite of DMAC, SMAC, VLAN tag), or get NAT'ed. (Support for some of these will show up in the driver in a follow-up commit very shortly). Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=333394
* cxgbe(4): Update all firmwares to 1.19.1.0.Navdeep Parhar2018-05-051-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These firmwares and the following list of changes are from the public ChelsioUwire-3.7.1.0 release. T6 Firmware ================================================================================ Version : 1.19.1.0 Date : 04/23/2018 ================================================================================ Fixes ----- BASE: - Fixed traffic stall when rate-limit is modified while running traffic. - Fixes a firmware crash in FW_ETH_TX_EO_WR handling. - Fixes host DCB support when FW_PORT_CMD is used. ETH: - Exit Auto-Negotiation if we don't receive base page from peer within 10s. This fixes some cases where in we keep on restarting auto negotiation without ever exiting, resulting in link failure. - Fixes an issue where VF packets counter were not increasing if VF packets coalesced WR is used by driver. OFLD: - Kernel and user mode NVMEoF performance enhancements. FOiSCSI: - Fixes fw crash when trying to connect to non-existence IPv6 iSNS target. ================================================================================ Version : 1.18.9.0 Date : 03/27/2018 ================================================================================ Fixes ----- BASE: - For Ethernet frames less than 64B, pad them with zero bytes as per IEEE spec (RFC 894). - Added a new parameter iqtype to FW_IQ_CMD to identify the ingress NIC or offload queues. This fixes an issue where driver was receiving interrupt with no new messages in queue. - FW_PARAMS_CMD processes all the valaid paramaters and returns value 0UL for any unknown parameter. OFLD: - Fixes connection failure during SRQ reuse. - Fixes incorrect cqe in case of WRITE with immediate operation. FOiSCSI: - Fixes a fw crash when wrong node-id is passed to FW_FOISCSI_CTRL_WR. FOFCoE: - Fixes a fw hang while creating NPIV. Enhancements ------------ ETH: - A new WR FW_ETH_TX_PKTS_VM_WR added to support VM packet coalescing. ================================================================================ Version : 1.18.4.0 Date : 02/28/2018 ================================================================================ Fixes ----- BASE: - Fixed Rate limiting not working for 101Mbps<=rate limit<=163Mbps range. - Fixed starting more than 32 VMs on PF4 causing firmware hang. ETH: - Fixed link failure due to FEC mismatch with optics. - Fixed link failure with link toggle stress tests. - Only BaseR FEC is supported for 50G. - Fixed a bug in next page handling which sometimes causes link down. - Fixed port down due to failre to read eeprom contents of some modules. - Fixed a bug causing adapter to fail with spider configuration. FOiSCSI: - Fixed a bug causing login failure when connecting to multiple targets. Enhancements ------------ BASE: - Added a new firmware API to retrieve the maximum temperaturethreshold for the chip (FW_PARAM_DEV_DIAG_MAXTMPTHRESH). ETH: - Added support for user to contol pause negotiation during auto negotiation. FOiSCSI: - Added a new facility to redirect few fw events to offload rx queue (based on driver's configration) - Driver can ignore providing ipv6 prefix len during ipv6 address configuration. ================================================================================ Version : 1.17.14.0 Date : 12/27/2017 ================================================================================ FIXES ----- BASE: - Fixed an FLR failure during simulteneous power up of VM. - Fixed an issue in vlan acl which was limiting vlan range to 1024. ETH: - Enabled RS-FEC for 25G active copper cable and 25GBASE-SR. - When auto negotiation is enabled, final pause settings are resolved based on local and peer pause settings. - Handle NACK for an I2C access. OFLD - Fixed rdma connection cleanup in SO adpater. - Fixed rdma connections during read invalidate. - Fixed the crash when invalid BW rate is passed to fw. - Fixed the traffic hang when BW allocation is changed from switch during traffic. FOFCoE: - Fixed an issue where initiator remains logged-in even after LLDP is disabled on switch. ENHANCEMENTS ------------ BASE: - Added support for 248 VFs. - Added fw driver periodic calibration for MC. ETH: - Added XLAUI port type support. - Added raw mac entry deletion support (FW_VI_MAC_ID_BASED_FREE). OFLD: - Inline IPSec support added (flag F_FW_ULPTX_WR_DATA indicates the inline IPSec WR). - New work request FW_RI_RDMA_WRITE_CMPL_WR (write with completion) added to T5 Firmware ================================================================================ Version : 1.19.1.0 Date : 04/23/2018 ================================================================================ Fixes ----- BASE: - Fixes a firmware crash in FW_ETH_TX_EO_WR handling. - Fixes host DCB support when FW_PORT_CMD is used. ETH: - Fixes an issue where VF packets counter were not increasing if VF packets coalesced WR is used by driver. OFLD: - Fixes an issue where fw hangs if max traffic rate passed is 0. FOiSCSI: - Fixes fw crash when trying to connect to non-existence IPv6 iSNS target. ================================================================================ Version : 1.18.9.0 Date : 03/27/2018 ================================================================================ Fixes ----- BASE: - For Ethernet frames less than 64B, pad them with zero bytes as per IEEE spec (RFC 894). - Added a new parameter iqtype to FW_IQ_CMD to identify the ingress NIC or offload queues. This fixes an issue where driver was receiving interrupt with no new messages in queue. ETH: - Pad the Ethernet packets of size less than 64B with zeros. This fixes the incorrect checksum generation of packets less then 64B. FOiSCSI: - Fixes a fw crash when wrong node-id is passed to FW_FOISCSI_CTRL_WR. FOFCoE: - Fixes a fw hang while creating NPIV. Enhancements ------------ ETH: - A new WR FW_ETH_TX_PKTS_VM_WR added to support VM packet coalescing. ================================================================================ Version : 1.18.4.0 Date : 02/28/2018 ================================================================================ Fixes ----- BASE: - Fixed starting more than 32 VMs on PF4 causing firmware hang. FOiSCSI: - Fixed a bug causing login failure when connecting to multiple targets. Enhancements ------------ BASE: - Added a new firmware API to retrieve the maximum temperaturethreshold for the chip (FW_PARAM_DEV_DIAG_MAXTMPTHRESH). ETH: - Added support for user to contol pause negotiation during auto negotiation. FOiSCSI: - Added a new facility to redirect few fw events to offload rx queue (based on driver's configration) - Driver can ignore providing ipv6 prefix len during ipv6 address configuration. ================================================================================ Version : 1.17.14.0 Date : 12/27/2017 ================================================================================ FIXES ----- BASE: - Fixed an issue in vlan acl which was limiting vlan range to 1024. ETH: - Corrected lane inversion logic. - Fixed improper LED behavior in T580 cards. - When auto negotiation is enabled, final pause settings are resolved based on local and peer pause settings. - Handle NACK for an I2C access. OFLD - Fixed rdma connections during read invalidate. FOiSCSI: - Fixed a connections hang when link is toggled frequently. FOFCoE: - Fixed an issue where initiator remains logged-in even after LLDP is disabled on switch. ENHANCEMENTS ------------ BASE: - Added support for 124 VFs. ETH: - Added XLAUI port type support. - Added raw mac entry deletion support (FW_VI_MAC_ID_BASED_FREE). OFLD: - New work request FW_RI_RDMA_WRITE_CMPL_WR (write with completion) added to optimize NVMEoF write. T4 Firmware ================================================================================ Version : 1.19.1.0 Date : 04/23/2018 ================================================================================ Fixes ----- BASE: - Fixes a firmware crash in FW_ETH_TX_EO_WR handling. - Fixes host DCB support when FW_PORT_CMD is used. FOiSCSI: - Fixes fw crash when trying to connect to non-existence IPv6 iSNS target. ================================================================================ Version : 1.18.9.0 Date : 03/27/2018 ================================================================================ Fixes ----- BASE: - Added a new paramter iqtype to FW_IQ_CMD to identify the ingress NIC or offload queues. This fixes an issue where driver was receiving interrupt with no new messages in queue. FOFCoE: - Fixes a fw hang while creating NPIV. Enhancements ------------ ETH: - A new WR FW_ETH_TX_PKTS_VM_WR added to support VM packet coalescing. ================================================================================ Version : 1.18.4.0 Date : 02/28/2018 ================================================================================ Enhancements ------------ BASE: - Added a new firmware API to retrieve the maximum temperaturethreshold for the chip (FW_PARAM_DEV_DIAG_MAXTMPTHRESH). ================================================================================ Version : 1.17.14.0 Date : 12/27/2017 ================================================================================ FIXES ----- BASE: - Fixed an issue in vlan acl which was limiting vlan range to 1024. MFC after: 3 days Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=333276
* cxgbe(4): Convert ACT_OPEN_RPL to a shared CPL.Navdeep Parhar2018-04-301-1/+6
| | | | | | | | | | | | Reserve 3b in the 14b atid to identify the owner and use it to dispatch the CPL. This allows all CPLs that use an atid to be used as shared CPLs, although ACT_OPEN_RPL is the only one being converted in this revision. Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=333128
* cxgbe: Implement tcp_info handler for connections handled by t4_tom.Navdeep Parhar2018-04-031-0/+6
| | | | | | | | | | | | | The TCB is read using a memory window right now. A better alternate to get self-consistent, uncached information would be to use a GET_TCB request but waiting for a reply from hw while holding non-sleepable locks is quite inconvenient. Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D14817 Notes: svn path=/head/; revision=331902
* cxgbe(4): Do not read MFG diags information from custom boards.Navdeep Parhar2018-03-221-5/+9
| | | | | | | | MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=331342
* Bring in additional constants and message fields for TLS-related messages.John Baldwin2018-02-222-3/+65
| | | | | | | Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=329788
* cxgbe(4): Do not display harmless warning in non-debug builds.Navdeep Parhar2018-01-261-0/+2
| | | | | | | | MFC after: 3 days Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=328420
* cxgbe(4): Read the MFG diags version from the VPD and make it availableNavdeep Parhar2017-12-212-23/+46
| | | | | | | | | | in the sysctl MIB. MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=327062
* sys/dev: further adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-277-0/+14
| | | | | | | | | | | | | | | Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. 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. Notes: svn path=/head/; revision=326255
* Merge ^/head r325842 through r325998.Hans Petter Selasky2017-11-191-0/+1
|\ | | | | | | Notes: svn path=/projects/bsd_rdma_4_9/; revision=325999
| * cxgbe(4): Add core Vdd to the sysctl MIB.Navdeep Parhar2017-11-171-0/+1
| | | | | | | | | | | | | | Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=325961
* | Merge ^/head r325663 through r325841.Hans Petter Selasky2017-11-151-1/+2
|\| | | | | | | Notes: svn path=/projects/bsd_rdma_4_9/; revision=325842
| * cxgbe(4): Excluce mdi from the check against port capabilities.Navdeep Parhar2017-11-101-1/+2
| | | | | | | | | | | | | | | | MFC after: 1 week Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=325680