U_BOOT_CMD(
bootp, 3, 1, do_bootp,
- "bootp\t- boot image via network using BOOTP/TFTP protocol\n",
- "[loadAddress] [[hostIPaddr:]bootfilename]\n"
+ "boot image via network using BOOTP/TFTP protocol",
+ "[loadAddress] [[hostIPaddr:]bootfilename]"
);
int do_tftpb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
U_BOOT_CMD(
tftpboot, 3, 1, do_tftpb,
- "tftpboot- boot image via network using TFTP protocol\n",
- "[loadAddress] [[hostIPaddr:]bootfilename]\n"
+ "boot image via network using TFTP protocol",
+ "[loadAddress] [[hostIPaddr:]bootfilename]"
);
int do_rarpb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
U_BOOT_CMD(
rarpboot, 3, 1, do_rarpb,
- "rarpboot- boot image via network using RARP/TFTP protocol\n",
- "[loadAddress] [[hostIPaddr:]bootfilename]\n"
+ "boot image via network using RARP/TFTP protocol",
+ "[loadAddress] [[hostIPaddr:]bootfilename]"
);
#if defined(CONFIG_CMD_DHCP)
U_BOOT_CMD(
dhcp, 3, 1, do_dhcp,
- "dhcp\t- boot image via network using DHCP/TFTP protocol\n",
- "[loadAddress] [[hostIPaddr:]bootfilename]\n"
+ "boot image via network using DHCP/TFTP protocol",
+ "[loadAddress] [[hostIPaddr:]bootfilename]"
);
#endif
U_BOOT_CMD(
nfs, 3, 1, do_nfs,
- "nfs\t- boot image via network using NFS protocol\n",
- "[loadAddress] [[hostIPaddr:]bootfilename]\n"
+ "boot image via network using NFS protocol",
+ "[loadAddress] [[hostIPaddr:]bootfilename]"
);
#endif
break;
- default: printf ("Usage:\n%s\n", cmdtp->usage);
+ default: cmd_usage(cmdtp);
show_boot_progress (-80);
return 1;
}
rcode = do_bootm (cmdtp, 0, 1, local_args);
}
-#ifdef CONFIG_AUTOSCRIPT
- if (((s = getenv("autoscript")) != NULL) && (strcmp(s,"yes") == 0)) {
- printf ("Running autoscript at addr 0x%08lX", load_addr);
-
- s = getenv ("autoscript_uname");
- if (s)
- printf (":%s ...\n", s);
- else
- puts (" ...\n");
-
- show_boot_progress (83);
- rcode = autoscript (load_addr, s);
- }
-#endif
if (rcode < 0)
show_boot_progress (-83);
else
NetPingIP = string_to_ip(argv[1]);
if (NetPingIP == 0) {
- printf ("Usage:\n%s\n", cmdtp->usage);
+ cmd_usage(cmdtp);
return -1;
}
U_BOOT_CMD(
ping, 2, 1, do_ping,
- "ping\t- send ICMP ECHO_REQUEST to network host\n",
- "pingAddress\n"
+ "send ICMP ECHO_REQUEST to network host",
+ "pingAddress"
);
#endif
U_BOOT_CMD(
cdp, 1, 1, do_cdp,
- "cdp\t- Perform CDP network configuration\n",
+ "Perform CDP network configuration",
);
#endif
U_BOOT_CMD(
sntp, 2, 1, do_sntp,
- "sntp\t- synchronize RTC via network\n",
+ "synchronize RTC via network",
"[NTP server IP]\n"
);
#endif
+
+#if defined(CONFIG_CMD_DNS)
+int do_dns(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+ if (argc == 1) {
+ cmd_usage(cmdtp);
+ return -1;
+ }
+
+ /*
+ * We should check for a valid hostname:
+ * - Each label must be between 1 and 63 characters long
+ * - the entire hostname has a maximum of 255 characters
+ * - only the ASCII letters 'a' through 'z' (case-insensitive),
+ * the digits '0' through '9', and the hyphen
+ * - cannot begin or end with a hyphen
+ * - no other symbols, punctuation characters, or blank spaces are
+ * permitted
+ * but hey - this is a minimalist implmentation, so only check length
+ * and let the name server deal with things.
+ */
+ if (strlen(argv[1]) >= 255) {
+ printf("dns error: hostname too long\n");
+ return 1;
+ }
+
+ NetDNSResolve = argv[1];
+
+ if (argc == 3)
+ NetDNSenvvar = argv[2];
+ else
+ NetDNSenvvar = NULL;
+
+ if (NetLoop(DNS) < 0) {
+ printf("dns lookup of %s failed, check setup\n", argv[1]);
+ return 1;
+ }
+
+ return 0;
+}
+
+U_BOOT_CMD(
+ dns, 3, 1, do_dns,
+ "lookup the IP of a hostname",
+ "hostname [envvar]"
+);
+
+#endif /* CONFIG_CMD_DNS */