From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dl1-f100.google.com (mail-dl1-f100.google.com [74.125.82.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 027BB2E7F17 for ; Sun, 18 Jan 2026 12:39:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.100 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768739990; cv=none; b=orB3yTf3rwiV5TKOFnKYajIllmpTAklFPV/KkJyyA8PboWNpVV0eBepSqy8HtvgiC756uEW5GWKayfi0DcA7ApTr0ohPRDxa3aYn1XOp9yaL5FQH3r3bfeLYDa/ynDQ/eavQNZnLefkRTTDyQUfFWpv0qoJiI4TdHU1IGp8xU+s= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768739990; c=relaxed/simple; bh=WMfzhV7vRbrbEUGEPNMAmYBfnvu4+CW3zsTJ+g3xH4k=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=VAdTqb+gqJeEN7dZr7UUJUSehGa5iiDkwmFe43/Ub+VkRW5F4xuX4MM1l1DWlMLsydXp4hZK+y+3MgJBJz3ct3bw2uFwEG+E08jN426487DZdrDuk+jUFhjXbSoY3QeTUJrHM7H7wDIGTMNmIWYSCUoN+QZmOZZ2KmrSkyQ+TtA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=eCH5ejt/; arc=none smtp.client-ip=74.125.82.100 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="eCH5ejt/" Received: by mail-dl1-f100.google.com with SMTP id a92af1059eb24-121a0bcd376so1727012c88.0 for ; Sun, 18 Jan 2026 04:39:48 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768739988; x=1769344788; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dkim-signature:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CPMk65kuy0/P81k3hN/YX5QdiD7CEsSVuvhp28jPq8A=; b=gxJZgAITL6keKK2cBChKo4pGnGYpi5XK0tTYLq0cnO1F18oLbHjcq+045BmDs5+qih aHlKF/Z3XhBcD4IO20cr19tDqP1N8xtcy9+94dWv3rPWU2CV82Ymjep4fWgKTglVW5Gh YYoVFaSDr7QV/Gpv3uBdQUz5rgoUyJJwR5pp7clqFr0MgxykLKArvF5HjPce7lcju25E NDQq4zsrar+a8o9e5yehzEO5gy2E8vk3Tz9MZ9gOCJEC64+LA7OV6mYavurf0gGT9Mf0 EQ/Kjh/bilQoRJj7cbw1g6YgVeJHLTuzziFlwGzm6DBqQ2Q7HIapz9GKMfDpbnrlm3lO iC3w== X-Gm-Message-State: AOJu0Yy7Owo9R+6/4kEJnjlqRrAom+LKuv9g7AabJLopW4UmeItg0PZp lZYC9XiNaly3kskR1gwyCHNIp0I7AZc9AeqW5tYNn2a0eDSiz8A+2jkAL4khGmAT1BiFUDsgW/X WlHPjZzxtawHDLbNeQxX5kZcvJ+nxl+dc13TkaZM9JUA3Qp0lwouPEl/eBWslMWf8m94Ggw+u/d Ko2CMy1A7dXBVlNj7z74J/pATNv1pGCNYB/3UYfMOoDdHVg+CTBB6vITlRZNIH0Lw6ueOQ3AI5+ hp48G5K2mb9CfTdYAY= X-Gm-Gg: AY/fxX4iC751l48Zt1MqIwbJRIW0Bj/CN7qmuLKl46FCMNRdPfxrjHdyvPBRyWf+F0R lEZCAprN5xO5Fw7SenFvZDqguugaDt+L4IOP1EA90JsVNTpClnZF4M1exRbvENFPhAKo14yO5vI Ovpfgc884/LCGOmjVuQtHnvUyN0ffEQrLOJtSmqf+HBPQ3U4fcboFIWF6XzkTNNcs2y+uM1/GNN eEucQNCm0dCYbZTiedet4nvkgCBBlfE0lw627w7Q4fTVaffl2/d/IuDM6CS2UJaj01b5QokgBaX QKSF21aXeB8L+Jg7yhkzVL031aXV1xbhak7M3Aw3Fn+i8iGU5uta5wsg7e8Y7ft0WUhTvOs8O8O juWDm9fZcAPWBgUKUU1hNK3SEXdvXAxOxLjzB9G9MH6peEw8i/mYE7Pgwyqnvx8+LXHIvKOx3Ef uIoHd6RfKm2BupD2yIcy+2x1h0BJqy+Q/jor/6hYg14g== X-Received: by 2002:a05:7022:4183:b0:123:3628:2ef9 with SMTP id a92af1059eb24-1244a74fb75mr8589640c88.36.1768739988004; Sun, 18 Jan 2026 04:39:48 -0800 (PST) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-2.dlp.protect.broadcom.com. [144.49.247.2]) by smtp-relay.gmail.com with ESMTPS id a92af1059eb24-1244aedb39dsm1612947c88.8.2026.01.18.04.39.47 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 18 Jan 2026 04:39:47 -0800 (PST) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-34ac814f308so5457099a91.3 for ; Sun, 18 Jan 2026 04:39:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1768739986; x=1769344786; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=CPMk65kuy0/P81k3hN/YX5QdiD7CEsSVuvhp28jPq8A=; b=eCH5ejt/xdhwj2APX5ocm75dW7DvRispGtzYRz38XTRooj7MmlauR8QJVJ10E19gkf lNHI1BOALpyoBuuCwcUTLQRXZX/IVYvYDZ0TAGNtpPzfMfWvaljEhd751do1Mk2fuSfW KNTVXOI3VHXZYtZzy4s4bnLfchv4U8t9zMT5A= X-Received: by 2002:a17:90b:2d92:b0:34e:5aa2:cf61 with SMTP id 98e67ed59e1d1-35272fa8ee2mr6062146a91.28.1768739986112; Sun, 18 Jan 2026 04:39:46 -0800 (PST) X-Received: by 2002:a17:90b:2d92:b0:34e:5aa2:cf61 with SMTP id 98e67ed59e1d1-35272fa8ee2mr6062135a91.28.1768739985774; Sun, 18 Jan 2026 04:39:45 -0800 (PST) Received: from PC-MID-R740.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c5edf249c24sm6761246a12.11.2026.01.18.04.39.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 18 Jan 2026 04:39:45 -0800 (PST) From: Pavan Chebbi To: jgg@ziepe.ca, michael.chan@broadcom.com Cc: linux-kernel@vger.kernel.org, dave.jiang@intel.com, saeedm@nvidia.com, Jonathan.Cameron@huawei.com, gospo@broadcom.com, selvin.xavier@broadcom.com, leon@kernel.org, kalesh-anakkur.purayil@broadcom.com, Pavan Chebbi Subject: [PATCH fwctl 0/5] fwctl/bnxt_fwctl: fwctl for Broadcom Netxtreme devices Date: Sun, 18 Jan 2026 04:33:56 -0800 Message-Id: <20260118123401.3188438-1-pavan.chebbi@broadcom.com> X-Mailer: git-send-email 2.39.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e 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. Based on the feedback received on v5 here: https://lore.kernel.org/netdev/20251014081033.1175053-1-pavan.chebbi@broadcom.com/ , posting this new series to fwctl tree. This series has the below changes from v5 that was posted to netdev: Patch #2: Addressed Leon's comment regarding defensive programming style of aux dev functions Patch #4: Removed support for commands that don't comply with fwctl guidelines. Also addressed additional comments from Jonathan Patch #5: Added info for example python3 program v5: Addressed the v4's review comments as below: Patch #2 and #3: Simplified aux bus device creation logic by having the core maintain arrays of pointers to aux devices and their contexts, thereby avoiding function calls from aux dev. [thanks Leon] Patch #4: Used memdup_user() as suggested by cocci. Addressed additional review comments from Jonathon and Dave. Collected Rb tags from Dave. v4: In patch #4, added the missing kfree on error for response buffer. Improved documentation in patch #5 based on comments from Dave. v3: Addressed the review comments as below Patch #1: Removed redundant common.h [thanks Saeed] Patch #2 and #3 merged into a single patch [thanks Jonathan] Patch #3: Addressed comments from Jonathan Patch #4 and #5: Addressed comments from Jonathan and Dave 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. The following are changes since commit e84d960149e71e8d5e4db69775ce31305898ed0c: Merge tag 'for-6.19-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux and are available in the git repository at: https://github.com/pavanchebbi/linux/tree/fwctl-bnxt [1] https://lore.kernel.org/netdev/0-v5-642aa0c94070+4447f-fwctl_jgg@nvidia.com/ Pavan Chebbi (5): fwctl/bnxt_en: Move common definitions to include/linux/bnxt/ fwctl/bnxt_en: Refactor aux bus functions to be more generic fwctl/bnxt_en: Create an aux device for fwctl fwctl/bnxt_fwctl: Add bnxt fwctl device fwctl/bnxt_fwctl: Add documentation entries .../userspace-api/fwctl/bnxt_fwctl.rst | 83 ++++ 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 | 416 ++++++++++++++++++ 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 | 31 +- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 17 +- .../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 | 331 ++++++++------ .../bnxt_ulp.h => include/linux/bnxt/ulp.h | 24 +- include/uapi/fwctl/bnxt.h | 64 +++ include/uapi/fwctl/fwctl.h | 1 + 21 files changed, 847 insertions(+), 160 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 rename drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h => include/linux/bnxt/ulp.h (87%) create mode 100644 include/uapi/fwctl/bnxt.h -- 2.39.1