bnxt_fwctl: fwctl for Broadcom Netxtreme devices
From: | Pavan Chebbi <pavan.chebbi-AT-broadcom.com> | |
To: | jgg-AT-ziepe.ca, michael.chan-AT-broadcom.com | |
Subject: | [PATCH net-next v2 0/6] bnxt_fwctl: fwctl for Broadcom Netxtreme devices | |
Date: | Tue, 23 Sep 2025 02:58:19 -0700 | |
Message-ID: | <20250923095825.901529-1-pavan.chebbi@broadcom.com> | |
Cc: | dave.jiang-AT-intel.com, saeedm-AT-nvidia.com, Jonathan.Cameron-AT-huawei.com, davem-AT-davemloft.net, corbet-AT-lwn.net, edumazet-AT-google.com, gospo-AT-broadcom.com, kuba-AT-kernel.org, netdev-AT-vger.kernel.org, pabeni-AT-redhat.com, andrew+netdev-AT-lunn.ch, selvin.xavier-AT-broadcom.com, leon-AT-kernel.org, kalesh-anakkur.purayil-AT-broadcom.com, Pavan Chebbi <pavan.chebbi-AT-broadcom.com> | |
Archive-link: | Article |
Introducing bnxt_fwctl which follows along Jason's work [1]. It is an aux bus driver that enables fwctl for Broadcom NetXtreme 574xx, 575xx and 576xx series chipsets by using bnxt driver's capability to talk to devices' firmware. The first patch moves the ULP definitions to a common place inside include/linux/bnxt/. The second and third patches refactor and extend the existing bnxt aux bus functions to be able to add more than one auxiliary device. The last three patches create an additional bnxt aux device, add bnxt_fwctl, and the documentation. [1] https://lore.kernel.org/netdev/0-v5-642aa0c94070+4447f-fw... v2: In patch #5, fixed a sparse warning where a __le16 was degraded to an integer. Also addressed kdoc warnings for include/uapi/fwctl/bnxt.h in the same patch. v1: https://lore.kernel.org/netdev/20250922090851.719913-1-pa... Pavan Chebbi (6): bnxt_en: Move common definitions to include/linux/bnxt/ bnxt_en: Refactor aux bus functions to be generic bnxt_en: Make a lookup table for supported aux bus devices bnxt_en: Create an aux device for fwctl bnxt_fwctl: Add bnxt fwctl device bnxt_fwctl: Add documentation entries .../userspace-api/fwctl/bnxt_fwctl.rst | 27 ++ Documentation/userspace-api/fwctl/fwctl.rst | 1 + Documentation/userspace-api/fwctl/index.rst | 1 + MAINTAINERS | 6 + drivers/fwctl/Kconfig | 11 + drivers/fwctl/Makefile | 1 + drivers/fwctl/bnxt/Makefile | 4 + drivers/fwctl/bnxt/main.c | 297 ++++++++++++++++++ drivers/infiniband/hw/bnxt_re/debugfs.c | 2 +- drivers/infiniband/hw/bnxt_re/main.c | 2 +- drivers/infiniband/hw/bnxt_re/qplib_fp.c | 2 +- drivers/infiniband/hw/bnxt_re/qplib_res.h | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 30 +- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 13 +- .../net/ethernet/broadcom/bnxt/bnxt_devlink.c | 2 +- .../net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 4 +- .../net/ethernet/broadcom/bnxt/bnxt_sriov.c | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 266 ++++++++++++---- include/linux/bnxt/common.h | 20 ++ .../bnxt_ulp.h => include/linux/bnxt/ulp.h | 14 +- include/uapi/fwctl/bnxt.h | 63 ++++ include/uapi/fwctl/fwctl.h | 1 + 22 files changed, 683 insertions(+), 88 deletions(-) create mode 100644 Documentation/userspace-api/fwctl/bnxt_fwctl.rst create mode 100644 drivers/fwctl/bnxt/Makefile create mode 100644 drivers/fwctl/bnxt/main.c create mode 100644 include/linux/bnxt/common.h rename drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h => include/linux/bnxt/ulp.h (90%) create mode 100644 include/uapi/fwctl/bnxt.h -- 2.39.1