On 8/8/22 14:16, Joel Stanley wrote:
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>

Reviewed-by: Cédric Le Goater <c...@kaod.org>

---
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

Reply via email to