<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/bnxt, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>bnxt: set hardware checksum only if required</title>
<updated>2026-02-05T14:07:49+00:00</updated>
<author>
<name>acazuc</name>
<email>acazuc@acazuc.fr</email>
</author>
<published>2025-11-27T10:29:34+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2e94e1631ef517f5495e25d7fa22c95f7dca0dc6'/>
<id>2e94e1631ef517f5495e25d7fa22c95f7dca0dc6</id>
<content type='text'>
The test condition in the bnxt driver for TCP/UDP transmit hardware checksum
offload is invalid: only the TCP / UDP csum bits should be tested

Only the relevant ipi_csum_flags bits are now tested

Reviewed by: tuexen
Sponsored by: Stormshield
Differential Revision: https://reviews.freebsd.org/D53941
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test condition in the bnxt driver for TCP/UDP transmit hardware checksum
offload is invalid: only the TCP / UDP csum bits should be tested

Only the relevant ipi_csum_flags bits are now tested

Reviewed by: tuexen
Sponsored by: Stormshield
Differential Revision: https://reviews.freebsd.org/D53941
</pre>
</div>
</content>
</entry>
<entry>
<title>bnxt_re/libbnxtre: Add support for Variable WQE on BCM576xx controllers</title>
<updated>2026-01-27T12:13:47+00:00</updated>
<author>
<name>Sreekanth Reddy</name>
<email>sreekanth.reddy@broadcom.com</email>
</author>
<published>2026-01-23T16:40:13+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=823f158a01330484f83f69c31d695035c607f8ee'/>
<id>823f158a01330484f83f69c31d695035c607f8ee</id>
<content type='text'>
Variable size WQE means that each send Work Queue Entry to
HW can use different WQE sizes as opposed to the static WQE
size on the current devices. Set variable WQE mode for BCM576xx
devices. Depth of the Queue will be a multiple of slot which
is 16 bytes. The number of slots should be a multiple of 256
as per the HW requirement.
Initialize the Software shadow queue to hold requests equal to
the number of slots.

Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54525
MFC after: 3 days
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Variable size WQE means that each send Work Queue Entry to
HW can use different WQE sizes as opposed to the static WQE
size on the current devices. Set variable WQE mode for BCM576xx
devices. Depth of the Queue will be a multiple of slot which
is 16 bytes. The number of slots should be a multiple of 256
as per the HW requirement.
Initialize the Software shadow queue to hold requests equal to
the number of slots.

Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54525
MFC after: 3 days
</pre>
</div>
</content>
</entry>
<entry>
<title>bnxt_re: Add support to display board_id in ibv_devinfo output</title>
<updated>2026-01-27T12:13:09+00:00</updated>
<author>
<name>Sreekanth Reddy</name>
<email>sreekanth.reddy@broadcom.com</email>
</author>
<published>2026-01-23T16:38:02+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=3a9565c2a8e4f1b3da698bf6a8af5889dc4fefbd'/>
<id>3a9565c2a8e4f1b3da698bf6a8af5889dc4fefbd</id>
<content type='text'>
Added support to display board_id in ibv_devinfo output.
ibv_devinfo util reads the board_id from below sysctl
attribute, so added this sysctl attribute.

sys.class.infiniband.bnxt_reX.board_id

Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54524
MFC after: 3 days
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added support to display board_id in ibv_devinfo output.
ibv_devinfo util reads the board_id from below sysctl
attribute, so added this sysctl attribute.

sys.class.infiniband.bnxt_reX.board_id

Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54524
MFC after: 3 days
</pre>
</div>
</content>
</entry>
<entry>
<title>bnxt_re: Fix active_speed value when two ports are aggregated</title>
<updated>2026-01-27T12:12:23+00:00</updated>
<author>
<name>Sreekanth Reddy</name>
<email>sreekanth.reddy@broadcom.com</email>
</author>
<published>2026-01-23T16:36:02+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=b7d6334df61a559e98191f90fd5e611e0d077def'/>
<id>b7d6334df61a559e98191f90fd5e611e0d077def</id>
<content type='text'>
Currently driver is not considering the active_lanes while
displaying the speed &amp; width of port and hence it showing
invalid active_speed and active_width values in the ibv_devinfo
command output when two ports are aggregated at hardware level.
Fixed the driver to consider the active_lanes while determining
the active_speed &amp; active_width values.

Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54523
MFC after: 3 days
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently driver is not considering the active_lanes while
displaying the speed &amp; width of port and hence it showing
invalid active_speed and active_width values in the ibv_devinfo
command output when two ports are aggregated at hardware level.
Fixed the driver to consider the active_lanes while determining
the active_speed &amp; active_width values.

Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54523
MFC after: 3 days
</pre>
</div>
</content>
</entry>
<entry>
<title>bnxt_en/re: Use FW defined resource limit for RoCE</title>
<updated>2026-01-27T12:11:41+00:00</updated>
<author>
<name>Sreekanth Reddy</name>
<email>sreekanth.reddy@broadcom.com</email>
</author>
<published>2026-01-23T16:32:51+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=913e454f306124c83797bfa71681dcdf806532c6'/>
<id>913e454f306124c83797bfa71681dcdf806532c6</id>
<content type='text'>
Check FW flags for status of Resource Limits. If bit
FUNC_QCAPS_RESP_FLAGS_EXT2_SW_MAX_RESOURCE_LIMITS_SUPPORTED
is set, that means FW set the resource limit for L2 and RoCE.
We'll then do the following:

L2 driver would allocate context memory based on what FW reported.
RoCE driver uses FW reported values without capping. These values
are the total FW reported value minus L2 and other components shares.

For example:

FW reported max_qps = 137217 in L2 query, this includes:
5120 for L2
1025 for QP1
131072 for RoCE
L2 will allocate backing store memory for the total.
In RoCE query, we'll get max_qp = 131072 and use it
without further capping.

Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54522
MFC after: 3 days
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Check FW flags for status of Resource Limits. If bit
FUNC_QCAPS_RESP_FLAGS_EXT2_SW_MAX_RESOURCE_LIMITS_SUPPORTED
is set, that means FW set the resource limit for L2 and RoCE.
We'll then do the following:

L2 driver would allocate context memory based on what FW reported.
RoCE driver uses FW reported values without capping. These values
are the total FW reported value minus L2 and other components shares.

For example:

FW reported max_qps = 137217 in L2 query, this includes:
5120 for L2
1025 for QP1
131072 for RoCE
L2 will allocate backing store memory for the total.
In RoCE query, we'll get max_qp = 131072 and use it
without further capping.

Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54522
MFC after: 3 days
</pre>
</div>
</content>
</entry>
<entry>
<title>bnxt_re/libbnxtre: Add RoCE support for BCM576xx controllers</title>
<updated>2026-01-27T12:10:42+00:00</updated>
<author>
<name>Sreekanth Reddy</name>
<email>sreekanth.reddy@broadcom.com</email>
</author>
<published>2026-01-23T16:27:22+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=92ba9b2fe58910b1d2cd6cd34b5ec093f0d9f700'/>
<id>92ba9b2fe58910b1d2cd6cd34b5ec093f0d9f700</id>
<content type='text'>
Added RoCE support for BCM576xx controllers with below changes,

1. Update the BAR offsets for handling BCM576xx controllers.
Use the values populated by the L2 driver for getting the
Doorbell offsets.

2. Use msn index instead of tail to pull psn table entry.

3. Temporarily disable dbr pacing feature untill it is
fully implemented.

4. Add support for 400G speed.

Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54521
MFC after: 3 days
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added RoCE support for BCM576xx controllers with below changes,

1. Update the BAR offsets for handling BCM576xx controllers.
Use the values populated by the L2 driver for getting the
Doorbell offsets.

2. Use msn index instead of tail to pull psn table entry.

3. Temporarily disable dbr pacing feature untill it is
fully implemented.

4. Add support for 400G speed.

Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54521
MFC after: 3 days
</pre>
</div>
</content>
</entry>
<entry>
<title>bnxt: don't set media status if link is down</title>
<updated>2026-01-26T23:21:48+00:00</updated>
<author>
<name>Anaëlle CAZUC</name>
<email>Anaelle.CAZUC@stormshield.eu</email>
</author>
<published>2026-01-26T23:06:02+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=69de2b4e96794793f04d1b323d354fcde3c480f6'/>
<id>69de2b4e96794793f04d1b323d354fcde3c480f6</id>
<content type='text'>
When the link is down don't set flags other than IFM_AVALID &amp; IFM_ETHER
This avoids `media: Ethernet autoselect (Unknown &lt;full-duplex&gt;)` on ifconfig

Reviewed by:	zlei, pouria
Approved by:	glebius (mentor)
MFC after:	1 week
Sponsored by:	Stormshield
Differential Revision: https://reviews.freebsd.org/D54573
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the link is down don't set flags other than IFM_AVALID &amp; IFM_ETHER
This avoids `media: Ethernet autoselect (Unknown &lt;full-duplex&gt;)` on ifconfig

Reviewed by:	zlei, pouria
Approved by:	glebius (mentor)
MFC after:	1 week
Sponsored by:	Stormshield
Differential Revision: https://reviews.freebsd.org/D54573
</pre>
</div>
</content>
</entry>
<entry>
<title>bnxt: Fix up ioctl opcodes to support IOC_VOID along with IOC_IN</title>
<updated>2026-01-09T10:40:18+00:00</updated>
<author>
<name>Sumit Saxena</name>
<email>ssaxena@FreeBSD.org</email>
</author>
<published>2026-01-09T10:28:53+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=d53d7b466016408229491cfd2f8bdc742ff642e3'/>
<id>d53d7b466016408229491cfd2f8bdc742ff642e3</id>
<content type='text'>
The driver and applications currently use hard-coded numeric ioctl command
opcodes. These opcodes are interpreted as having the IOC_IN direction (data
copied from the user application to the driver), regardless of the actual packet
size. Consequently, when the packet size is zero and the direction is set to
IOC_IN, the kernel fails these ioctls if COMPAT is disabled.

While the driver and applications should ideally set the direction correctly—
for example, using IOC_VOID when the packet size is zero—the driver will now
be updated to define ioctl opcodes using the _IOC macro to support both
IOC_VOID and IOC_IN. This change ensures backward compatibility with older
applications that exclusively use IOC_IN.

Reviewed by: gallatin
Differential Revision: https://reviews.freebsd.org/D54601
MFC after: 3 days
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The driver and applications currently use hard-coded numeric ioctl command
opcodes. These opcodes are interpreted as having the IOC_IN direction (data
copied from the user application to the driver), regardless of the actual packet
size. Consequently, when the packet size is zero and the direction is set to
IOC_IN, the kernel fails these ioctls if COMPAT is disabled.

While the driver and applications should ideally set the direction correctly—
for example, using IOC_VOID when the packet size is zero—the driver will now
be updated to define ioctl opcodes using the _IOC macro to support both
IOC_VOID and IOC_IN. This change ensures backward compatibility with older
applications that exclusively use IOC_IN.

Reviewed by: gallatin
Differential Revision: https://reviews.freebsd.org/D54601
MFC after: 3 days
</pre>
</div>
</content>
</entry>
<entry>
<title>bnxt: fix i2c read to allow access to different addresses</title>
<updated>2026-01-08T13:52:01+00:00</updated>
<author>
<name>Andrew Gallatin</name>
<email>gallatin@FreeBSD.org</email>
</author>
<published>2026-01-08T13:49:38+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=b72cb305899ed30daf103b92818c199ccfc52378'/>
<id>b72cb305899ed30daf103b92818c199ccfc52378</id>
<content type='text'>
Allow reading of i2c addresses other than A0. A0 does provide most
information, but doesn't provide things like module temps, and optical
signal levels.

Sponsored by: Netflix
Reviewed by: sumit.saxena_broadcom.com
Differential Revision: https://reviews.freebsd.org/D54590
MFC after: 3 days
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allow reading of i2c addresses other than A0. A0 does provide most
information, but doesn't provide things like module temps, and optical
signal levels.

Sponsored by: Netflix
Reviewed by: sumit.saxena_broadcom.com
Differential Revision: https://reviews.freebsd.org/D54590
MFC after: 3 days
</pre>
</div>
</content>
</entry>
<entry>
<title>LinuxKPI: pci: implementation of [lkpi_]pci_get_slot()</title>
<updated>2025-09-29T23:16:18+00:00</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2025-09-04T20:19:48+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=4179e6b78297369f0cf0eae1076e01e5151c5cbe'/>
<id>4179e6b78297369f0cf0eae1076e01e5151c5cbe</id>
<content type='text'>
Like lkpi_pci_get_domain_bus_and_slot() implement lkpi_pci_get_slot()
using pci_find_bsf() instead of pci_find_dbsf() (no domain).
This is needed for a wireless driver.

Unfortunately the name [pci_get_slot()] collides with the native PCI
function.  Add a guard around it and disable the use when the native
version is required (in lkpifill_pci_dev() and in bnxt/bnxt_en; if the
latter gets fixed we can probably also fix work around it in the former;
further conflicts in drm-kmod 6.1-lts, 6.6-lts, and master were resolved).

Sponsored by:	The FreeBSD Foundation (initially)
MFC aftre:	3 days
Reviewed by:	dumbbell
Differential Revision:	https://reviews.freebsd.org/D52065
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Like lkpi_pci_get_domain_bus_and_slot() implement lkpi_pci_get_slot()
using pci_find_bsf() instead of pci_find_dbsf() (no domain).
This is needed for a wireless driver.

Unfortunately the name [pci_get_slot()] collides with the native PCI
function.  Add a guard around it and disable the use when the native
version is required (in lkpifill_pci_dev() and in bnxt/bnxt_en; if the
latter gets fixed we can probably also fix work around it in the former;
further conflicts in drm-kmod 6.1-lts, 6.6-lts, and master were resolved).

Sponsored by:	The FreeBSD Foundation (initially)
MFC aftre:	3 days
Reviewed by:	dumbbell
Differential Revision:	https://reviews.freebsd.org/D52065
</pre>
</div>
</content>
</entry>
</feed>
