From: Samuel Mendoza-Jonas <s...@mendozajonas.com>

Adds an "ncsi" command to manually start NC-SI configuration.

Signed-off-by: Samuel Mendoza-Jonas <s...@mendozajonas.com>
Signed-off-by: Joel Stanley <j...@jms.id.au>
---
v4: New patch, split from patch 1

 cmd/net.c   | 22 ++++++++++++++++++++++
 net/net.c   |  1 +
 cmd/Kconfig |  8 ++++++++
 3 files changed, 31 insertions(+)

diff --git a/cmd/net.c b/cmd/net.c
index 3619c843d838..2863fe768118 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 
[]);
 
@@ -524,3 +525,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 */
diff --git a/net/net.c b/net/net.c
index f0faf33d0d77..a4e645ac4425 100644
--- a/net/net.c
+++ b/net/net.c
@@ -434,6 +434,7 @@ int net_loop(enum proto_t protocol)
        } else {
                eth_init_state_only();
        }
+
 restart:
 #ifdef CONFIG_USB_KEYBOARD
        net_busy_flag = 0;
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 3625ff2a50b3..3a5d1bba78a8 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1813,6 +1813,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
-- 
2.35.1

Reply via email to