Linux CXL
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
Cc: Andy Gospodarek <andrew.gospodarek@broadcom.com>,
	Aron Silverton <aron.silverton@oracle.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Daniel Vetter <daniel.vetter@ffwll.ch>,
	Dave Jiang <dave.jiang@intel.com>,
	David Ahern <dsahern@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Christoph Hellwig <hch@infradead.org>,
	Itay Avraham <itayavr@nvidia.com>, Jiri Pirko <jiri@nvidia.com>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Leonid Bloch <lbloch@nvidia.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	linux-cxl@vger.kernel.org, linux-rdma@vger.kernel.org,
	netdev@vger.kernel.org, Saeed Mahameed <saeedm@nvidia.com>,
	"Nelson, Shannon" <shannon.nelson@amd.com>
Subject: [PATCH v5 8/8] mlx5: Create an auxiliary device for fwctl_mlx5
Date: Thu, 27 Feb 2025 20:26:36 -0400	[thread overview]
Message-ID: <8-v5-642aa0c94070+4447f-fwctl_jgg@nvidia.com> (raw)
In-Reply-To: <0-v5-642aa0c94070+4447f-fwctl_jgg@nvidia.com>

From: Saeed Mahameed <saeedm@nvidia.com>

If the device supports User Context then it can support fwctl. Create an
auxiliary device to allow fwctl to bind to it.

Create a sysfs like:

$ ls /sys/devices/pci0000:00/0000:00:0a.0/mlx5_core.fwctl.0/driver -l
lrwxrwxrwx 1 root root 0 Apr 25 19:46 /sys/devices/pci0000:00/0000:00:0a.0/mlx5_core.fwctl.0/driver -> ../../../../bus/auxiliary/drivers/mlx5_fwctl.mlx5_fwctl

Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/dev.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/dev.c b/drivers/net/ethernet/mellanox/mlx5/core/dev.c
index 9a79674d27f15a..891bbbbfbbf1a4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/dev.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/dev.c
@@ -228,8 +228,15 @@ enum {
 	MLX5_INTERFACE_PROTOCOL_VNET,
 
 	MLX5_INTERFACE_PROTOCOL_DPLL,
+	MLX5_INTERFACE_PROTOCOL_FWCTL,
 };
 
+static bool is_fwctl_supported(struct mlx5_core_dev *dev)
+{
+	/* fwctl is most useful on PFs, prevent fwctl on SFs for now */
+	return MLX5_CAP_GEN(dev, uctx_cap) && !mlx5_core_is_sf(dev);
+}
+
 static const struct mlx5_adev_device {
 	const char *suffix;
 	bool (*is_supported)(struct mlx5_core_dev *dev);
@@ -252,6 +259,8 @@ static const struct mlx5_adev_device {
 					   .is_supported = &is_mp_supported },
 	[MLX5_INTERFACE_PROTOCOL_DPLL] = { .suffix = "dpll",
 					   .is_supported = &is_dpll_supported },
+	[MLX5_INTERFACE_PROTOCOL_FWCTL] = { .suffix = "fwctl",
+					    .is_supported = &is_fwctl_supported },
 };
 
 int mlx5_adev_idx_alloc(void)
-- 
2.43.0


  parent reply	other threads:[~2025-02-28  0:26 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-28  0:26 [PATCH v5 0/8] Introduce fwctl subystem Jason Gunthorpe
2025-02-28  0:26 ` [PATCH v5 1/8] fwctl: Add basic structure for a class subsystem with a cdev Jason Gunthorpe
2025-02-28  0:26 ` [PATCH v5 2/8] fwctl: Basic ioctl dispatch for the character device Jason Gunthorpe
2025-02-28  0:26 ` [PATCH v5 3/8] fwctl: FWCTL_INFO to return basic information about the device Jason Gunthorpe
2025-02-28  0:26 ` [PATCH v5 4/8] taint: Add TAINT_FWCTL Jason Gunthorpe
2025-02-28  0:26 ` [PATCH v5 5/8] fwctl: FWCTL_RPC to execute a Remote Procedure Call to device firmware Jason Gunthorpe
2025-02-28  0:26 ` [PATCH v5 6/8] fwctl: Add documentation Jason Gunthorpe
2025-03-15  2:53   ` Bagas Sanjaya
2025-02-28  0:26 ` [PATCH v5 7/8] fwctl/mlx5: Support for communicating with mlx5 fw Jason Gunthorpe
2025-03-02 12:11   ` Leon Romanovsky
2025-03-04 17:50     ` Jason Gunthorpe
2025-02-28  0:26 ` Jason Gunthorpe [this message]
2025-03-02 12:09   ` [PATCH v5 8/8] mlx5: Create an auxiliary device for fwctl_mlx5 Leon Romanovsky
2025-03-04  1:53 ` [PATCH v5 0/8] Introduce fwctl subystem Jakub Kicinski
2025-03-04 14:00   ` Jason Gunthorpe
2025-03-04 17:59     ` Saeed Mahameed
2025-03-05  0:42     ` Jakub Kicinski
2025-03-05 13:32       ` Jason Gunthorpe
2025-03-05 13:43         ` Leon Romanovsky
2025-03-05 15:08         ` Jiri Pirko
2025-03-05 15:22           ` Leon Romanovsky
2025-03-05 15:56             ` Jiri Pirko
2025-03-05 18:17           ` David Ahern
2025-03-05 18:28             ` Leon Romanovsky
2025-03-05 20:41               ` Saeed Mahameed
2025-03-05 23:21                 ` Jason Gunthorpe
2025-03-06  7:29                   ` Leon Romanovsky
2025-03-11 11:23                   ` David Ahern
2025-03-11 13:59                     ` Leon Romanovsky
2025-03-12  9:31                       ` David Ahern
2025-03-12 10:34                         ` Stanislav Fomichev
2025-03-14 22:34                           ` David Ahern
2025-03-16  7:34                             ` Stanislav Fomichev
2025-03-17 12:30                         ` Jason Gunthorpe
2025-03-11 14:27                     ` Nelson, Shannon
2025-03-13 12:30               ` David Ahern
2025-03-13 12:48                 ` Leon Romanovsky
2025-03-13 19:59                   ` Nelson, Shannon
2025-03-14  5:37                     ` Greg Kroah-Hartman
2025-03-14 18:39                       ` Leon Romanovsky
2025-03-14 18:09                     ` Jacob Keller
2025-03-17 12:33                       ` Jason Gunthorpe
2025-03-17 19:00                         ` David Ahern
2025-03-17 20:33                           ` Keller, Jacob E
2025-03-18 13:20                             ` Greg Kroah-Hartman
2025-03-18 13:25                               ` Jason Gunthorpe
2025-03-18 15:39                                 ` Dave Jiang
2025-03-18 16:06                                   ` Greg Kroah-Hartman
2025-03-19  5:48                                     ` Przemek Kitszel
2025-03-19  8:14                                       ` Leon Romanovsky
2025-03-19 10:46                                         ` Przemek Kitszel
2025-03-19 11:22                                           ` Leon Romanovsky
2025-03-19  8:17                                     ` Leon Romanovsky
2025-03-18 22:07                                 ` Keller, Jacob E
2025-03-06  2:16         ` Jakub Kicinski
2025-03-20 23:22 ` Jason Gunthorpe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8-v5-642aa0c94070+4447f-fwctl_jgg@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=andrew.gospodarek@broadcom.com \
    --cc=aron.silverton@oracle.com \
    --cc=dan.j.williams@intel.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dave.jiang@intel.com \
    --cc=dsahern@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hch@infradead.org \
    --cc=itayavr@nvidia.com \
    --cc=jiri@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=lbloch@nvidia.com \
    --cc=leonro@nvidia.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=saeedm@nvidia.com \
    --cc=shannon.nelson@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox