[PATCH v3 2/2] cmd: brcm: netXtreme commands

Roman Bacik roman.bacik at broadcom.com
Tue Oct 26 01:44:44 CEST 2021


From: Bharat Gooty <bharat.gooty at broadcom.com>

Following netXtreme commands are supported:
probe, remove.

Signed-off-by: Bharat Gooty <bharat.gooty at broadcom.com>

Signed-off-by: Roman Bacik <roman.bacik at broadcom.com>
---

Changes in v3:
- remove commands set/get mac/speed
- add doc/bnxt.rst

 cmd/Kconfig           |  2 +
 cmd/broadcom/Kconfig  | 10 +++++
 cmd/broadcom/Makefile |  3 +-
 cmd/broadcom/bnxt.c   | 97 +++++++++++++++++++++++++++++++++++++++++++
 doc/usage/bnxt.rst    | 35 ++++++++++++++++
 doc/usage/index.rst   |  1 +
 6 files changed, 147 insertions(+), 1 deletion(-)
 create mode 100644 cmd/broadcom/Kconfig
 create mode 100644 cmd/broadcom/bnxt.c
 create mode 100644 doc/usage/bnxt.rst

diff --git a/cmd/Kconfig b/cmd/Kconfig
index 5b30b13e438f..e054292dbcd0 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1953,6 +1953,8 @@ endmenu
 
 source "cmd/ti/Kconfig"
 
+source "cmd/broadcom/Kconfig"
+
 config CMD_BOOTSTAGE
 	bool "Enable the 'bootstage' command"
 	depends on BOOTSTAGE
diff --git a/cmd/broadcom/Kconfig b/cmd/broadcom/Kconfig
new file mode 100644
index 000000000000..6f16b09d1425
--- /dev/null
+++ b/cmd/broadcom/Kconfig
@@ -0,0 +1,10 @@
+menu "Broadcom specific command line interface"
+
+config BNXT_ETH_CMD
+	bool "BNXT commands"
+	depends on BNXT_ETH
+	help
+	  Broadcom NXS ethernet controller commands. Commands supported are:-
+	  Driver probe, Driver remove, Supported speeds, get/set MAC address and get/set Link speeds.
+
+endmenu
diff --git a/cmd/broadcom/Makefile b/cmd/broadcom/Makefile
index 62268d98d0dd..0027c1c15e5a 100644
--- a/cmd/broadcom/Makefile
+++ b/cmd/broadcom/Makefile
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0+
-# Copyright 2020 Broadcom
+# Copyright 2020-2021 Broadcom
 
 obj-y += chimp_boot.o
 obj-y += nitro_image_load.o
 obj-y += chimp_handshake.o
+obj-$(CONFIG_BNXT_ETH_CMD) += bnxt.o
diff --git a/cmd/broadcom/bnxt.c b/cmd/broadcom/bnxt.c
new file mode 100644
index 000000000000..ddc2ceb98863
--- /dev/null
+++ b/cmd/broadcom/bnxt.c
@@ -0,0 +1,97 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2021 Broadcom
+ */
+
+#include <common.h>
+#include <command.h>
+
+#include <asm/io.h>
+#include <pci.h>
+#include <broadcom/bnxt.h>
+#include <broadcom/bnxt_ver.h>
+#include <broadcom/bnxt_hsi.h>
+#include <dm.h>
+#include <env_flags.h>
+#include <env_internal.h>
+#include <errno.h>
+#include <linux/if_ether.h>
+#include <net.h>
+#include <dm/device-internal.h>
+#include <linux/ctype.h>
+#include <linux/delay.h>
+#include <linux/types.h>
+
+static int print_drv(u8 flag)
+{
+	printf("bnxt - Device ");
+	if (flag)
+		printf("already");
+	else
+		printf("not");
+
+	printf(" initialized\n");
+
+	return CMD_RET_SUCCESS;
+}
+
+static int bnxt_parse_input(int argc, char *const argv[])
+{
+	if (!strcmp(argv[2], "probe"))
+		return CMD_PROBE;
+	else if (!strcmp(argv[2], "remove"))
+		return CMD_REMOVE;
+
+	return CMD_UNKNOWN;
+}
+
+static int do_bnxt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
+{
+	struct udevice *dev;
+	struct bnxt *bp;
+	char name[30];
+	int ret = CMD_RET_USAGE;
+	int cardnum;
+	int op;
+
+	printf("\n");
+	if (argc < 2)
+		return ret;
+
+	cardnum = simple_strtoul(argv[1], NULL, 10);
+	sprintf(name, "bnxt_eth%u", cardnum);
+	ret = uclass_get_device_by_name(UCLASS_ETH, name, &dev);
+	if (ret)
+		return CMD_RET_USAGE;
+
+	bp = dev_get_priv(dev);
+	op = bnxt_parse_input(argc, argv);
+	ret = CMD_RET_USAGE;
+	switch (op) {
+	case CMD_PROBE:
+		if (!bp->drv_load)
+			ret = bnxt_drv_probe(dev);
+		else
+			ret = print_drv(1);
+		break;
+	case CMD_REMOVE:
+		ret = bnxt_drv_remove(dev);
+		break;
+	default:
+		if (op && !bp->drv_load)
+			ret = print_drv(0);
+	}
+
+	printf("\n");
+
+	return ret;
+}
+
+U_BOOT_CMD
+	(bnxt, 5, 1, do_bnxt,
+	"Broadcom NetXtreme-C/E Management",
+	/* */"<bnxt_eth#> probe\n"
+	"     - Load Driver Instance.\n"
+	"bnxt <bnxt_eth#> remove\n"
+	"     - Unload Driver Instance.\n"
+);
diff --git a/doc/usage/bnxt.rst b/doc/usage/bnxt.rst
new file mode 100644
index 000000000000..4b0b7b22411a
--- /dev/null
+++ b/doc/usage/bnxt.rst
@@ -0,0 +1,35 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+bnxt command
+============
+
+Synopsis
+--------
+
+::
+
+    bnxt bnxt_eth# probe
+    bnxt bnxt_eth# remove
+
+Description
+-----------
+
+The bnxt commands are used to load and unload the bnxt driver. The probe loads and remove unloads the driver.
+
+Example
+-------
+
+::
+
+    => bnxt 0 probe
+    => bnxt 0 remove
+
+Configuration
+-------------
+
+The bnxt commands are only available if CONFIG_CMD_BNXT=y.
+
+Return value
+------------
+
+The return value $? is 0 if successful and nonzero error code if the command fails.
diff --git a/doc/usage/index.rst b/doc/usage/index.rst
index 356f2a56181b..834e8d274646 100644
--- a/doc/usage/index.rst
+++ b/doc/usage/index.rst
@@ -20,6 +20,7 @@ Shell commands
    addrmap
    askenv
    base
+   bnxt
    bootefi
    booti
    bootmenu
-- 
2.17.1


-- 
This electronic communication and the information and any files transmitted 
with it, or attached to it, are confidential and are intended solely for 
the use of the individual or entity to whom it is addressed and may contain 
information that is confidential, legally privileged, protected by privacy 
laws, or otherwise restricted from disclosure to anyone else. If you are 
not the intended recipient or the person responsible for delivering the 
e-mail to the intended recipient, you are hereby notified that any use, 
copying, distributing, dissemination, forwarding, printing, or copying of 
this e-mail is strictly prohibited. If you received this e-mail in error, 
please return the e-mail to the sender, delete it from your computer, and 
destroy any printed copy of it.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4206 bytes
Desc: S/MIME Cryptographic Signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20211025/97ca6dd1/attachment.bin>


More information about the U-Boot mailing list