History log of /freebsd-current/sys/dev/bxe/bxe.h
Revision Date Author Comments
# b0056b31 03-Jun-2024 Doug Moore <dougm@FreeBSD.org>

libkern: add ilog2 macro

The kernel source contains several definitions of an ilog2 function;
some are slower than necessary, and one of them is incorrect.
Elimininate them all and define an ilog2 macro in libkern to replace
them, in a way that is fast, correct for all argument types, and, in a
GENERIC kernel, includes a check for an invalid zero parameter.

Folks at Microsoft have verified that having a correct ilog2
definition for their MANA driver doesn't break it.

Reviewed by: alc, markj, mhorne (older version), jhibbits (older version)
Differential Revision: https://reviews.freebsd.org/D45170
Differential Revision: https://reviews.freebsd.org/D45235


# fdafd315 24-Nov-2023 Warner Losh <imp@FreeBSD.org>

sys: Automated cleanup of cdefs and other formatting

Apply the following automated changes to try to eliminate
no-longer-needed sys/cdefs.h includes as well as now-empty
blank lines in a row.

Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/
Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/
Remove /\n+#if.*\n#endif.*\n+/
Remove /^#if.*\n#endif.*\n/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/

Sponsored by: Netflix


# 685dc743 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# e602f0c8 01-Mar-2020 Warner Losh <imp@FreeBSD.org>

Remove FreeBSD 7-10 support from bxe driver.

Use new PCIER and PCIEM names in the driver rather than relying on old, compat
shims.


# 349ecfc3 21-Oct-2019 Gleb Smirnoff <glebius@FreeBSD.org>

Convert to if_foreach_llmaddr() KPI.


# 7790c8c1 17-Oct-2019 Conrad Meyer <cem@FreeBSD.org>

Split out a more generic debugnet(4) from netdump(4)

Debugnet is a simplistic and specialized panic- or debug-time reliable
datagram transport. It can drive a single connection at a time and is
currently unidirectional (debug/panic machine transmit to remote server
only).

It is mostly a verbatim code lift from netdump(4). Netdump(4) remains
the only consumer (until the rest of this patch series lands).

The INET-specific logic has been extracted somewhat more thoroughly than
previously in netdump(4), into debugnet_inet.c. UDP-layer logic and up, as
much as possible as is protocol-independent, remains in debugnet.c. The
separation is not perfect and future improvement is welcome. Supporting
INET6 is a long-term goal.

Much of the diff is "gratuitous" renaming from 'netdump_' or 'nd_' to
'debugnet_' or 'dn_' -- sorry. I thought keeping the netdump name on the
generic module would be more confusing than the refactoring.

The only functional change here is the mbuf allocation / tracking. Instead
of initiating solely on netdump-configured interface(s) at dumpon(8)
configuration time, we watch for any debugnet-enabled NIC for link
activation and query it for mbuf parameters at that time. If they exceed
the existing high-water mark allocation, we re-allocate and track the new
high-water mark. Otherwise, we leave the pre-panic mbuf allocation alone.
In a future patch in this series, this will allow initiating netdump from
panic ddb(4) without pre-panic configuration.

No other functional change intended.

Reviewed by: markj (earlier version)
Some discussion with: emaste, jhb
Objection from: marius
Differential Revision: https://reviews.freebsd.org/D21421


# 92e9c060 08-Aug-2019 Xin LI <delphij@FreeBSD.org>

Update bxe(4) to use new zlib.

PR: 229763
Submitted by: Yoshihiro Ota <ota j email ne jp>
Differential Revision: https://reviews.freebsd.org/D21175


# 36baf17e 15-Oct-2018 David C Somayajulu <davidcs@FreeBSD.org>

Add support for Error Recovery

Submitted by:Vaishali.Kulkarni@cavium.com
Approved by:re(kib)
MFC after:5 days


# 6eadb68b 05-May-2018 Mark Johnston <markj@FreeBSD.org>

Add netdump support to bxe(4).

Tested with a NetXtreme II BCM57810 adapter.

Reviewed by: davidcs
MFC after: 1 month
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D15257


# 7282444b 20-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

sys/dev: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

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.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.


# 27a8713f 19-Jul-2017 Andrey V. Elsukov <ae@FreeBSD.org>

Add HPE FlexFabric 10Gb 4-port 536FLR-T device id to the bxe(4) driver.

Tested by: David Miguel Almas <dmalmas gmail com>
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D11478


# 7a1297c8 27-Feb-2017 David C Somayajulu <davidcs@FreeBSD.org>

1. state checks in bxe_tx_mq_start_locked() and bxe_tx_mq_start() to sync threads during interface down or detach.
2. add sysctl to set pause frame parameters
3. increase max segs for TSO packets to BXE_TSO_MAX_SEGMENTS (32)
4. add debug messages for PHY
5. HW LRO support restricted to FreeBSD versions 8.x and above.

Submitted by:Vaishali.Kulkarni@cavium.com
MFC after:5 days


# c7873d96 18-Oct-2016 David C Somayajulu <davidcs@FreeBSD.org>

1. Use taskqueue_create() instead of taskqueue_create_fast() for both
fastpath and slowpath taskqueues.
2. Service all transmits in taskqueue threads.
3. additional stats counters for keeping track of
- bd availability
- tx buf ring not emptied in the fp task queue.
These are drained via timeout taskqueue.
- tx attempts during link down.

MFC after: 5 days


# 106961b6 30-Sep-2016 David C Somayajulu <davidcs@FreeBSD.org>

Revert commit
r306284 - Fixes for issues under high workloads

Will fix and recommit patch


# 678b8d82 23-Sep-2016 David C Somayajulu <davidcs@FreeBSD.org>

Fixes for issues under high workloads

MFC after:5 days


# 6f39c760 19-Apr-2016 David C Somayajulu <davidcs@FreeBSD.org>

1. modify fwdump (a.k.a grcdump) so that grcdump memory is allocated
and freed on as needed basis.
2. grcdump can be taken at failure points by invoking bxe_grc_dump()
when trigger_grcdump sysctl flag is set. When grcdump is taken
grcdump_done sysctl flag is set.
3. grcdump_done can be monitored by the user to retrieve the grcdump.

Submitted by:vaishali.kulkarni@qlogic.com


# 3e8a5445 13-Apr-2016 David C Somayajulu <davidcs@FreeBSD.org>

reversed commits r297916 r297909 r297898 due to i386 build failures.

MFC after:5 days


# 6dbd80fa 12-Apr-2016 David C Somayajulu <davidcs@FreeBSD.org>

1. modify fwdump (a.k.a grcdump) memory is allocated and freed on as needed
basis.
2. grcdump can be taken at failure points by invoking bxe_grc_dump() when
trigger_grcdump sysctl flag is set. When grcdump is taken grcdump_done
sysctl flag is set.
3. grcdump_done can be monitored by the user to retrieve the grcdump.

Submitted by:vaishali.kulkarni@qlogic.com
Approved by:davidcs@freebsd.org
MFC after:5 days


# 6ba5a1d9 12-Apr-2016 David C Somayajulu <davidcs@FreeBSD.org>

Add support for Flash Update

Submitted by:nrapendra.singh@qlogic.com;vaishali.kulkarni@qlogic.com;davidcs@freebsd.org
Approved by:davidcs@freebsd.org
MFC after:5 days


# 32020557 21-Mar-2016 David C Somayajulu <davidcs@FreeBSD.org>

Modifications to achieve a common source base from FreeBSD7.x thru 10.x

MFC after:5 days


# 4ef8ebfd 25-Feb-2016 David C Somayajulu <davidcs@FreeBSD.org>

Upgrade the firmware carried in driver and loaded during hardware
initialization (a.k.a STORM firmware) to version 7.13.1 (latest version)


# bb329d4b 19-Feb-2016 David C Somayajulu <davidcs@FreeBSD.org>

Remove dead code. Code Cleanup. Improve clarity in debug messages

MFC after:5 days


# 34b133bc 19-Feb-2016 David C Somayajulu <davidcs@FreeBSD.org>

Modified the use of bxe_grc_dump() function so that it can be invoked directly at any potential error path, where a fwdump is needed. The fwdump (a.k.a grcdump) is stored in a driver buffer. The sysctl grcdump_done indicates if a fwdump was taken and waiting to be retrieved.
The sysctl trigger_grcdump can be used to manually trigger a fwdump.

MFC after:5 days


# 29e60198 22-Dec-2015 David C Somayajulu <davidcs@FreeBSD.org>

Add support for firmware dump (a.k.a grcdump)

MFC after:5 days


# ab97207a 28-Jul-2015 David C Somayajulu <davidcs@FreeBSD.org>

- Avoid lock contention in the if_transmit callback by using trylock and
enqueueing the frames when it fails. This way there is some latency
removed from the transmitting path.
- If IFF_DRV_OACTIVE is set (and also if IFF_DRV_RUNNING is not) just
enqueue the desired frames and return successful transmit. This way we
avoid to return errors on transmit side and resulting in
possible out-of-order frames. Please note that IFF_DRV_OACTIVE is set
everytime we get the threshold ring hit, so this can be happening quite
often.

Submitted by: Attilio.Rao@isilon.com
MFC after:5 days


# 04e9541d 12-Jun-2015 David C Somayajulu <davidcs@FreeBSD.org>

PHY LOCK acquires the hardware lock via bxe_acquire_phy_lock() and releases it via bxe_release_phy_lock(). It was simply acquiring a mutex earlier which can cause the PHY to use bogus values. Fixes intermittent link failures.

bxe_ioctl() completes all functions within its context as opposed to a taskqueue earlier.

bxe_handle_rx_mode_tq() no longer required. bxe_set_rx_mode() handles the functionality within its context

Submitted by:gary.zambrano@qlogic.com
MFC after:5 days


# d9db5225 22-Apr-2015 Craig Rodrigues <rodrigc@FreeBSD.org>

Move zlib.c from net to libkern.

It is not network-specific code and would
be better as part of libkern instead.
Move zlib.h and zutil.h from net/ to sys/
Update includes to use sys/zlib.h and sys/zutil.h instead of net/

Submitted by: Steve Kiernan stevek@juniper.net
Obtained from: Juniper Networks, Inc.
GitHub Pull Request: https://github.com/freebsd/freebsd/pull/28
Relnotes: yes


# e3a36fb0 18-Jul-2014 David C Somayajulu <davidcs@FreeBSD.org>

Initiate error recovery stats fail to update after 3 retries.
Change bxe_panic() ECORE_DBG_BREAK_IF() ECORE_BUG() ECORE_BUG_ON() to
panic only if ECORE_STOP_ON_ERROR is defined.

MFC after:5 days


# 717568ad 02-Jun-2014 Marcel Moolenaar <marcel@FreeBSD.org>

Convert bxe(4) to use the driver API.

Submitted by: Sreekanth Rupavatharam <rupavath@juniper.net>
Obtained from: Juniper Networks, Inc.


# e36ffbdd 05-May-2014 David C Somayajulu <davidcs@FreeBSD.org>

Modify Copyright information to reflect Qlogic Corporation's purchase
of Broadcom's NetXtreme business

Submitted by:David C Somayajulu (davidcs@freebsd.org) QLogic Corporation
MFC after:5 days


# 5e33beca 15-Nov-2013 Eric Davis <edavis@FreeBSD.org>

Fixed a tx watchdog chip reset that could occur on mostly idle links.
Fixed various link related issues and 10GBaseT is now linking properly.
Modified the types for the driver tunables to be consistent with the sysctl APIs.

Approved by: davidch (mentor)


# 4e400768 20-Sep-2013 David Christensen <davidch@FreeBSD.org>

Substantial rewrite of bxe(4) to add support for the BCM57712 and
BCM578XX controllers.

Approved by: re
MFC after: 4 weeks