|
@@ -183,6 +183,8 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
|
|
int size;
|
|
int size;
|
|
ulong addr;
|
|
ulong addr;
|
|
|
|
|
|
|
|
+ net_boot_file_name_explicit = false;
|
|
|
|
+
|
|
/* pre-set load_addr */
|
|
/* pre-set load_addr */
|
|
s = env_get("loadaddr");
|
|
s = env_get("loadaddr");
|
|
if (s != NULL)
|
|
if (s != NULL)
|
|
@@ -199,15 +201,18 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
|
|
* mis-interpreted as a valid number.
|
|
* mis-interpreted as a valid number.
|
|
*/
|
|
*/
|
|
addr = simple_strtoul(argv[1], &end, 16);
|
|
addr = simple_strtoul(argv[1], &end, 16);
|
|
- if (end == (argv[1] + strlen(argv[1])))
|
|
|
|
|
|
+ if (end == (argv[1] + strlen(argv[1]))) {
|
|
load_addr = addr;
|
|
load_addr = addr;
|
|
- else
|
|
|
|
|
|
+ } else {
|
|
|
|
+ net_boot_file_name_explicit = true;
|
|
copy_filename(net_boot_file_name, argv[1],
|
|
copy_filename(net_boot_file_name, argv[1],
|
|
sizeof(net_boot_file_name));
|
|
sizeof(net_boot_file_name));
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
|
|
|
|
case 3:
|
|
case 3:
|
|
load_addr = simple_strtoul(argv[1], NULL, 16);
|
|
load_addr = simple_strtoul(argv[1], NULL, 16);
|
|
|
|
+ net_boot_file_name_explicit = true;
|
|
copy_filename(net_boot_file_name, argv[2],
|
|
copy_filename(net_boot_file_name, argv[2],
|
|
sizeof(net_boot_file_name));
|
|
sizeof(net_boot_file_name));
|
|
|
|
|
|
@@ -220,6 +225,7 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
|
|
printf("Invalid address/size\n");
|
|
printf("Invalid address/size\n");
|
|
return CMD_RET_USAGE;
|
|
return CMD_RET_USAGE;
|
|
}
|
|
}
|
|
|
|
+ net_boot_file_name_explicit = true;
|
|
copy_filename(net_boot_file_name, argv[3],
|
|
copy_filename(net_boot_file_name, argv[3],
|
|
sizeof(net_boot_file_name));
|
|
sizeof(net_boot_file_name));
|
|
break;
|
|
break;
|