* Patches by Martin Krause, 14 Jul 2003:
[platform/kernel/u-boot.git] / common / cmd_net.c
index a1ff2ba..4d4a1ea 100644 (file)
  */
 #include <common.h>
 #include <command.h>
-#include <cmd_net.h>
 #include <net.h>
 
 #if (CONFIG_COMMANDS & CFG_CMD_NET)
 
-# if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
-# include <cmd_autoscript.h>
-# endif
 
 extern int do_bootm (cmd_tbl_t *, int, int, char *[]);
 
@@ -44,21 +40,45 @@ int do_bootp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        return netboot_common (BOOTP, cmdtp, argc, argv);
 }
 
+U_BOOT_CMD(
+       bootp,  3,      1,      do_bootp,
+       "bootp   - boot image via network using BootP/TFTP protocol\n",
+       "[loadAddress] [bootfilename]\n"
+);
+
 int do_tftpb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
        return netboot_common (TFTP, cmdtp, argc, argv);
 }
 
+U_BOOT_CMD(
+       tftpboot,       3,      1,      do_tftpb,
+       "tftpboot- boot image via network using TFTP protocol\n",
+       "[loadAddress] [bootfilename]\n"
+);
+
 int do_rarpb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
        return netboot_common (RARP, cmdtp, argc, argv);
 }
 
+U_BOOT_CMD(
+       rarpboot,       3,      1,      do_rarpb,
+       "rarpboot- boot image via network using RARP/TFTP protocol\n",
+       "[loadAddress] [bootfilename]\n"
+);
+
 #if (CONFIG_COMMANDS & CFG_CMD_DHCP)
 int do_dhcp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
        return netboot_common(DHCP, cmdtp, argc, argv);
 }
+
+U_BOOT_CMD(
+       dhcp,   3,      1,      do_dhcp,
+       "dhcp    - invoke DHCP client to obtain IP/boot params\n",
+       "\n"
+);
 #endif /* CFG_CMD_DHCP */
 
 static void netboot_update_env(void)
@@ -95,6 +115,10 @@ static void netboot_update_env(void)
        ip_to_string (NetOurDNSIP, tmp);
        setenv("dnsip", tmp);
     }
+
+    if (NetOurNISDomain[0])
+       setenv("domain", NetOurNISDomain);
+
 }
 static int
 netboot_common (int proto, cmd_tbl_t *cmdtp, int argc, char *argv[])
@@ -165,4 +189,33 @@ netboot_common (int proto, cmd_tbl_t *cmdtp, int argc, char *argv[])
        return rcode;
 }
 
+#if (CONFIG_COMMANDS & CFG_CMD_PING)
+int do_ping (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+       if (argc < 2)
+               return -1;
+
+       NetPingIP = string_to_ip(argv[1]);
+       if (NetPingIP == 0) {
+               printf ("Usage:\n%s\n", cmdtp->usage);
+               return -1;
+       }
+
+       if (NetLoop(PING) < 0) {
+               printf("ping failed; host %s is not alive\n", argv[1]);
+               return 1;
+       }
+
+       printf("host %s is alive\n", argv[1]);
+
+       return 0;
+}
+
+U_BOOT_CMD(
+       ping,   2,      1,      do_ping,
+       "ping    - send ICMP ECHO_REQUEST to network host\n",
+       "pingAddress\n"
+);
+#endif /* CFG_CMD_PING */
+
 #endif /* CFG_CMD_NET */