| #
7b80c8b7
|
| 12-Nov-2025 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Expanded interrupt handling for T7
- Catch up with the new cause/perr registers. The high level approach is the same but the T7 has an extra top level INT_CAUSE concentrator and a PER
cxgbe(4): Expanded interrupt handling for T7
- Catch up with the new cause/perr registers. The high level approach is the same but the T7 has an extra top level INT_CAUSE concentrator and a PERR_CAUSE concentrator with a changed layout.
- Add various flags to control the interrupt handlers' behavior.
- Implement a t4_intr_clear that internally use the slow handler as an iterator over known cause/perr registers. This lets the driver clear all of the interrupt sources that it knows about. The firmware sets up the interrupt enables and clears the causes normally so this call should be redundant.
MFC after: 1 week Sponsored by: Chelsio Communications
show more ...
|
| #
c7b2e390
|
| 29-Sep-2025 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): hw/fw headers and shared code for the Terminator 7 ASIC
This is the first of a series of commits that will add T7 support to cxgbe. The ASIC is gen5x16 on the PCIe side and has a 400Gbps
cxgbe(4): hw/fw headers and shared code for the Terminator 7 ASIC
This is the first of a series of commits that will add T7 support to cxgbe. The ASIC is gen5x16 on the PCIe side and has a 400Gbps MAC on the Ethernet side. NICs using the T7 will come in the following variants:
* 1 x 400Gbps with QSFP-DD connector * 2 x 200/100/40Gbps with QSFP56/QSFP28/QSFP+ connectors * 4 x 50/25/10/1Gbps with SFP28/SFP+/SFP connectors
There are 8 general purpose ARM A72 cores available on select SmartNIC/DPU boards.
Obtained from: Chelsio Communications MFC after: 3 days Sponsored by: Chelsio Communications
show more ...
|
| #
4471ff11
|
| 12-Jun-2024 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbev(4): Shared code for the VF driver to query a VF's VLAN config.
MFC after: 1 week Sponsored by: Chelsio Communications
|
| #
64a00f87
|
| 01-Apr-2023 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Consolidate all mk_set_tcb_field_ulp in one place.
MFC after: 1 week Sponsored by: Chelsio Communications
|
| #
7f10048f
|
| 30-Apr-2024 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Query TPCHMAP once and not once per port.
MFC after: 1 week Sponsored by: Chelsio Communications
|
| #
1c7f9c8b
|
| 26-Apr-2024 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Retire t4_intr_clear.
The firmware clears the interrupts already and it has a better idea of exactly what to clear for which generation of the ASIC. There is no need for the driver to get
cxgbe(4): Retire t4_intr_clear.
The firmware clears the interrupts already and it has a better idea of exactly what to clear for which generation of the ASIC. There is no need for the driver to get involved.
MFC after: 1 week Sponsored by: Chelsio Communications
show more ...
|
| #
b59c5d97
|
| 25-Apr-2024 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Add a helper function to locate MPS/MAC registers.
These register blocks are at different locations in different chips.
MFC after: 1 week Sponsored by: Chelsio Communications
|
| #
f76effed
|
| 29-Mar-2024 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Remove tx_modq lookup table.
The driver always uses the same modulation queue as the channel and the table is unnecessary.
MFC after: 1 week Sponsored by: Chelsio Communications
|
| #
9ea86c8f
|
| 09-Jan-2024 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Use the correct size for the CIM LA on the T6.
The logic analyzer in the T6 CIM block has a different capture size than previous chips.
MFC after: 1 week Sponsored by: Chelsio Communicati
cxgbe(4): Use the correct size for the CIM LA on the T6.
The logic analyzer in the T6 CIM block has a different capture size than previous chips.
MFC after: 1 week Sponsored by: Chelsio Communications
show more ...
|
| #
95ee2897
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
| #
4d846d26
|
| 10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
show more ...
|
| #
e9e7bc82
|
| 04-Feb-2022 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Changes to the fatal error handler.
* New error_flags that can be used from the error ithread and elsewhere without a synch_op. * Stop the adapter immediately in t4_fatal_err but defer m
cxgbe(4): Changes to the fatal error handler.
* New error_flags that can be used from the error ithread and elsewhere without a synch_op. * Stop the adapter immediately in t4_fatal_err but defer most of the rest of the handling to a task. The task is allowed to sleep, unlike the ithread. Remove async_event_task as it is no longer needed. * Dump the devlog, CIMLA, and PCIE_FW exactly once on any fatal error involving the firmware or the CIM block. While here, dump some additional info (see dump_cim_regs) for these errors. * If both reset_on_fatal_err and panic_on_fatal_err are set then attempt a reset first and do not panic the system if it is successful.
MFC after: 1 week Sponsored by: Chelsio Communications
show more ...
|
| #
448bcd01
|
| 10-Nov-2021 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): internal knob for flexible control over FEC selection.
Recent firmwares have support for autonomous FEC selection and a "force" knob to let the driver control this behavior (or not) in a f
cxgbe(4): internal knob for flexible control over FEC selection.
Recent firmwares have support for autonomous FEC selection and a "force" knob to let the driver control this behavior (or not) in a fine grained manner. This change adds a driver knob so that all the different ways of configuring the link FEC can be exercised. Note that this controls the internal driver/firmware interaction for link configuration and is not meant for general use.
MFC after: 1 week Sponsored by: Chelsio Communications
show more ...
|
| #
d99b1d83
|
| 03-Nov-2021 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): sysctl to track the last L1_CFG32 requested by the driver.
dev.<port>.<inst>.rcaps
# sysctl dev.cc | grep rcaps dev.cc.1.rcaps: 581107776 dev.cc.0.rcaps: 582156414
MFC after: 1 week S
cxgbe(4): sysctl to track the last L1_CFG32 requested by the driver.
dev.<port>.<inst>.rcaps
# sysctl dev.cc | grep rcaps dev.cc.1.rcaps: 581107776 dev.cc.0.rcaps: 582156414
MFC after: 1 week Sponsored by: Chelsio Communications
show more ...
|
| #
83a611e0
|
| 07-Sep-2021 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Display HMA information in meminfo.
This should have been added with initial T6 support many years ago.
MFC after: 1 week Sponsored by: Chelsio Communications
|
| #
6beb67c7
|
| 22-Jun-2021 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Get the number of usable traffic classes from the firmware.
Recent firmwares are able to utilize the traffic classes of tx channels that were previously unused. This effectively doubles t
cxgbe(4): Get the number of usable traffic classes from the firmware.
Recent firmwares are able to utilize the traffic classes of tx channels that were previously unused. This effectively doubles the number of traffic classes available per port for 2 port cards. Stop using the raw per-channel value in the driver and ask the firmware for the number of usable traffic classes instead.
MFC after: 2 weeks Sponsored by: Chelsio Communications
show more ...
|
| #
db15dbf8
|
| 01-Jun-2021 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Check if the firmware supports 512 SGL per FR MR.
Firmwares >= 1.25.6.0 support 512 SGL entries in a single memory registration request.
Obtained from: Chelsio Communications MFC after: 1
cxgbe(4): Check if the firmware supports 512 SGL per FR MR.
Firmwares >= 1.25.6.0 support 512 SGL entries in a single memory registration request.
Obtained from: Chelsio Communications MFC after: 1 week Sponsored by: Chelsio Communications
show more ...
|
| #
15f33555
|
| 24-Mar-2021 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Allow a T6 adapter to switch between TOE and NIC TLS mode.
The hw.cxgbe.kern_tls tunable was used for this in the past and if it was set then all T6 adapters would be configured for NIC TL
cxgbe(4): Allow a T6 adapter to switch between TOE and NIC TLS mode.
The hw.cxgbe.kern_tls tunable was used for this in the past and if it was set then all T6 adapters would be configured for NIC TLS operation and could not be reconfigured for TOE without a reload. With this change ifconfig can be used to manipulate toe and txtls caps like any other caps. hw.cxgbe.kern_tls continues to work as usual but its effects are not permanent any more.
* Enable nic_ktls_ofld in the default configuration file and use the firmware instead of direct register manipulation to apply/rollback NIC TLS configuration. This allows the driver to switch the hardware between TOE and NIC TLS mode in a safe manner. Note that the configuration is adapter-wide and not per-port.
* Remove the kern_tls config file as it works with 100G T6 cards only and leads to firmware crashes with 25G cards. The configurations included with the driver (with the exception of the FPGA configs) are supposed to work with all adapters.
Reported by: Veeresh U.K. at Chelsio MFC after: 2 weeks Sponsored by: Chelsio Communications Reviewed by: jhb@ Differential Revision: https://reviews.freebsd.org/D29291
show more ...
|
| #
0460a450
|
| 19-Feb-2021 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Use the correct filter width for T5+.
T5 and above have extra bits for the optional filter fields. This is a correctness issue and not just a waste because a filter mode valid on a T4 (36
cxgbe(4): Use the correct filter width for T5+.
T5 and above have extra bits for the optional filter fields. This is a correctness issue and not just a waste because a filter mode valid on a T4 (36b) may not be valid on a T5+ (40b).
MFC after: 2 weeks Sponsored by: Chelsio Communications
show more ...
|
| #
7ac8040a
|
| 19-Feb-2021 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Use firmware commands to get/set filter configuration.
1. Query the firmware for filter mode, mask, and related ingress config instead of trying to figure them out from hardware registe
cxgbe(4): Use firmware commands to get/set filter configuration.
1. Query the firmware for filter mode, mask, and related ingress config instead of trying to figure them out from hardware registers. Read configuration from the registers only when the firmware does not support this query.
2. Use the firmware to set the filter mode. This is the correct way to do it and is more flexible as well. The filter mode (and associated ingress config) can now be changed any time it is safe to do so.
The user can specify a subset of a valid mode and the driver will enable enough bits to make sure that the mode is maxed out -- that is, it is not possible to set another bit without exceeding the total width for optional filter fields. This is a hardware requirement that was not enforced by the driver previously.
MFC after: 2 weeks Sponsored by: Chelsio Communications
show more ...
|
| #
fae028dd
|
| 18-Feb-2021 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Break up t4_read_chip_settings.
Read the PF-only hardware settings directly in get_params__post_init. Split the rest into two routines used by both the PF and VF drivers: one that reads th
cxgbe(4): Break up t4_read_chip_settings.
Read the PF-only hardware settings directly in get_params__post_init. Split the rest into two routines used by both the PF and VF drivers: one that reads the SGE rx buffer configuration and another that verifies miscellaneous hardware configuration.
MFC after: 1 week Sponsored by: Chelsio Communications
show more ...
|
| #
dbc5c85c
|
| 03-Dec-2020 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): two new debug sysctls.
dev.<nexus>.<instance>.misc.tid_stats dev.<nexus>.<instance>.misc.tnl_stats
MFC after: 3 days Sponsored by: Chelsio Communications
|
| #
8eba75ed
|
| 03-Dec-2020 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Stop but don't free netmap queues when netmap is switched off.
It is common for freelists to be starving when a netmap application stops. Mailbox commands to free queues can hang in such
cxgbe(4): Stop but don't free netmap queues when netmap is switched off.
It is common for freelists to be starving when a netmap application stops. Mailbox commands to free queues can hang in such a situation. Avoid that by not freeing the queues when netmap is switched off. Instead, use an alternate method to stop the queues without releasing the context ids. If netmap is enabled again later then the same queue is reinitialized for use. Move alloc_nm_rxq and txq to t4_netmap.c while here.
MFC after: 1 week Sponsored by: Chelsio Communications
show more ...
|
| #
de0a3472
|
| 09-Nov-2020 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Allow the PF driver to set a VF's MAC address.
The MAC address can be set with the optional mac-addr property in the VF section of the iovctl.conf(5) used to instantiate the VFs.
MFC afte
cxgbe(4): Allow the PF driver to set a VF's MAC address.
The MAC address can be set with the optional mac-addr property in the VF section of the iovctl.conf(5) used to instantiate the VFs.
MFC after: 2 weeks Sponsored by: Chelsio Communications
show more ...
|
| #
dc0800a9
|
| 09-Nov-2020 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbev(4): Use the MAC address set by the the PF if there is one.
Query the firmware for the MAC address set by the PF for the VF and use it instead of the firmware generated MAC if it's available.
cxgbev(4): Use the MAC address set by the the PF if there is one.
Query the firmware for the MAC address set by the PF for the VF and use it instead of the firmware generated MAC if it's available.
MFC after: 2 weeks Sponsored by: Chelsio Communications
show more ...
|