summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorSamuel Mendoza-Jonas <sam@mendozajonas.com>2022-08-08 15:16:04 +0300
committerTom Rini <trini@konsulko.com>2022-10-21 23:04:39 +0300
commit4b290d4a757caaf5efedc74ea3db9974b51f35f2 (patch)
treee068e8c4cfce2e0d8309753f2084e1491e4c291c /cmd
parent09bd3d0b0a954f250bac61fee7e3c6d037914569 (diff)
downloadu-boot-4b290d4a757caaf5efedc74ea3db9974b51f35f2.tar.xz
cmd: Add ncsi command
Adds an "ncsi" command to manually start NC-SI configuration. Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com> Signed-off-by: Joel Stanley <joel@jms.id.au> Reviewed-by: Cédric Le Goater <clg@kaod.org>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/Kconfig8
-rw-r--r--cmd/net.c22
2 files changed, 30 insertions, 0 deletions
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 16030e34a1..41cf1d46fb 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1842,6 +1842,14 @@ config CMD_LINK_LOCAL
help
Acquire a network IP address using the link-local protocol
+config CMD_NCSI
+ bool "ncsi"
+ depends on PHY_NCSI
+ help
+ Manually configure the attached NIC via NC-SI.
+ Normally this happens automatically before other network
+ operations.
+
endif
config CMD_ETHSW
diff --git a/cmd/net.c b/cmd/net.c
index 46f8c87b69..addcad3ac1 100644
--- a/cmd/net.c
+++ b/cmd/net.c
@@ -16,6 +16,7 @@
#include <net.h>
#include <net/udp.h>
#include <net/sntp.h>
+#include <net/ncsi.h>
static int netboot_common(enum proto_t, struct cmd_tbl *, int, char * const []);
@@ -566,3 +567,24 @@ U_BOOT_CMD(
"list - list available devices\n"
);
#endif // CONFIG_DM_ETH
+
+#if defined(CONFIG_CMD_NCSI)
+static int do_ncsi(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[])
+{
+ if (!phy_interface_is_ncsi() || !ncsi_active()) {
+ printf("Device not configured for NC-SI\n");
+ return CMD_RET_FAILURE;
+ }
+
+ if (net_loop(NCSI) < 0)
+ return CMD_RET_FAILURE;
+
+ return CMD_RET_SUCCESS;
+}
+
+U_BOOT_CMD(
+ ncsi, 1, 1, do_ncsi,
+ "Configure attached NIC via NC-SI",
+ ""
+);
+#endif /* CONFIG_CMD_NCSI */