projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'u-boot-imx-20200121' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
[oweals/u-boot.git]
/
cmd
/
net.c
diff --git
a/cmd/net.c
b/cmd/net.c
index b2f3c7b709bc59f7449b86a540faaf78d1cce292..1b724cc57090e7ab81eecf750c48157d1fa57ce8 100644
(file)
--- a/
cmd/net.c
+++ b/
cmd/net.c
@@
-1,8
+1,7
@@
+// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2000
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
/*
* (C) Copyright 2000
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * SPDX-License-Identifier: GPL-2.0+
*/
/*
*/
/*
@@
-10,10
+9,13
@@
*/
#include <common.h>
#include <command.h>
*/
#include <common.h>
#include <command.h>
+#include <env.h>
+#include <image.h>
#include <net.h>
static int netboot_common(enum proto_t, cmd_tbl_t *, int, char * const []);
#include <net.h>
static int netboot_common(enum proto_t, cmd_tbl_t *, int, char * const []);
+#ifdef CONFIG_CMD_BOOTP
static int do_bootp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
return netboot_common(BOOTP, cmdtp, argc, argv);
static int do_bootp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
return netboot_common(BOOTP, cmdtp, argc, argv);
@@
-24,7
+26,9
@@
U_BOOT_CMD(
"boot image via network using BOOTP/TFTP protocol",
"[loadAddress] [[hostIPaddr:]bootfilename]"
);
"boot image via network using BOOTP/TFTP protocol",
"[loadAddress] [[hostIPaddr:]bootfilename]"
);
+#endif
+#ifdef CONFIG_CMD_TFTPBOOT
int do_tftpb(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int ret;
int do_tftpb(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int ret;
@@
-40,9
+44,10
@@
U_BOOT_CMD(
"boot image via network using TFTP protocol",
"[loadAddress] [[hostIPaddr:]bootfilename]"
);
"boot image via network using TFTP protocol",
"[loadAddress] [[hostIPaddr:]bootfilename]"
);
+#endif
#ifdef CONFIG_CMD_TFTPPUT
#ifdef CONFIG_CMD_TFTPPUT
-int do_tftpput(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+
static
int do_tftpput(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
return netboot_common(TFTPPUT, cmdtp, argc, argv);
}
{
return netboot_common(TFTPPUT, cmdtp, argc, argv);
}
@@
-116,57
+121,57
@@
static void netboot_update_env(void)
if (net_gateway.s_addr) {
ip_to_string(net_gateway, tmp);
if (net_gateway.s_addr) {
ip_to_string(net_gateway, tmp);
-
setenv
("gatewayip", tmp);
+
env_set
("gatewayip", tmp);
}
if (net_netmask.s_addr) {
ip_to_string(net_netmask, tmp);
}
if (net_netmask.s_addr) {
ip_to_string(net_netmask, tmp);
-
setenv
("netmask", tmp);
+
env_set
("netmask", tmp);
}
if (net_hostname[0])
}
if (net_hostname[0])
-
setenv
("hostname", net_hostname);
+
env_set
("hostname", net_hostname);
if (net_root_path[0])
if (net_root_path[0])
-
setenv
("rootpath", net_root_path);
+
env_set
("rootpath", net_root_path);
if (net_ip.s_addr) {
ip_to_string(net_ip, tmp);
if (net_ip.s_addr) {
ip_to_string(net_ip, tmp);
-
setenv
("ipaddr", tmp);
+
env_set
("ipaddr", tmp);
}
#if !defined(CONFIG_BOOTP_SERVERIP)
/*
}
#if !defined(CONFIG_BOOTP_SERVERIP)
/*
- * Only attempt to change serverip if net/bootp.c:
BootpCopyNetP
arams()
+ * Only attempt to change serverip if net/bootp.c:
store_net_p
arams()
* could have set it
*/
if (net_server_ip.s_addr) {
ip_to_string(net_server_ip, tmp);
* could have set it
*/
if (net_server_ip.s_addr) {
ip_to_string(net_server_ip, tmp);
-
setenv
("serverip", tmp);
+
env_set
("serverip", tmp);
}
#endif
if (net_dns_server.s_addr) {
ip_to_string(net_dns_server, tmp);
}
#endif
if (net_dns_server.s_addr) {
ip_to_string(net_dns_server, tmp);
-
setenv
("dnsip", tmp);
+
env_set
("dnsip", tmp);
}
#if defined(CONFIG_BOOTP_DNS2)
if (net_dns_server2.s_addr) {
ip_to_string(net_dns_server2, tmp);
}
#if defined(CONFIG_BOOTP_DNS2)
if (net_dns_server2.s_addr) {
ip_to_string(net_dns_server2, tmp);
-
setenv
("dnsip2", tmp);
+
env_set
("dnsip2", tmp);
}
#endif
if (net_nis_domain[0])
}
#endif
if (net_nis_domain[0])
-
setenv
("domain", net_nis_domain);
+
env_set
("domain", net_nis_domain);
#if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_TIMEOFFSET)
if (net_ntp_time_offset) {
sprintf(tmp, "%d", net_ntp_time_offset);
#if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_TIMEOFFSET)
if (net_ntp_time_offset) {
sprintf(tmp, "%d", net_ntp_time_offset);
-
setenv
("timeoffset", tmp);
+
env_set
("timeoffset", tmp);
}
#endif
#if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_NTPSERVER)
if (net_ntp_server.s_addr) {
ip_to_string(net_ntp_server, tmp);
}
#endif
#if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_NTPSERVER)
if (net_ntp_server.s_addr) {
ip_to_string(net_ntp_server, tmp);
-
setenv
("ntpserverip", tmp);
+
env_set
("ntpserverip", tmp);
}
#endif
}
}
#endif
}
@@
-180,13
+185,18
@@
static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
int size;
ulong addr;
int size;
ulong addr;
- /* pre-set load_addr */
- s = getenv("loadaddr");
+ net_boot_file_name_explicit = false;
+
+ /* pre-set image_load_addr */
+ s = env_get("loadaddr");
if (s != NULL)
if (s != NULL)
- load_addr = simple_strtoul(s, NULL, 16);
+
image_
load_addr = simple_strtoul(s, NULL, 16);
switch (argc) {
case 1:
switch (argc) {
case 1:
+ /* refresh bootfile name from env */
+ copy_filename(net_boot_file_name, env_get("bootfile"),
+ sizeof(net_boot_file_name));
break;
case 2: /*
break;
case 2: /*
@@
-196,15
+206,21
@@
static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
* mis-interpreted as a valid number.
*/
addr = simple_strtoul(argv[1], &end, 16);
* mis-interpreted as a valid number.
*/
addr = simple_strtoul(argv[1], &end, 16);
- if (end == (argv[1] + strlen(argv[1])))
- load_addr = addr;
- else
+ if (end == (argv[1] + strlen(argv[1]))) {
+ image_load_addr = addr;
+ /* refresh bootfile name from env */
+ copy_filename(net_boot_file_name, env_get("bootfile"),
+ sizeof(net_boot_file_name));
+ } else {
+ net_boot_file_name_explicit = true;
copy_filename(net_boot_file_name, argv[1],
sizeof(net_boot_file_name));
copy_filename(net_boot_file_name, argv[1],
sizeof(net_boot_file_name));
+ }
break;
case 3:
break;
case 3:
- load_addr = simple_strtoul(argv[1], NULL, 16);
+ image_load_addr = simple_strtoul(argv[1], NULL, 16);
+ net_boot_file_name_explicit = true;
copy_filename(net_boot_file_name, argv[2],
sizeof(net_boot_file_name));
copy_filename(net_boot_file_name, argv[2],
sizeof(net_boot_file_name));
@@
-212,11
+228,12
@@
static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
#ifdef CONFIG_CMD_TFTPPUT
case 4:
#ifdef CONFIG_CMD_TFTPPUT
case 4:
- if (strict_strtoul(argv[1], 16, &save_addr) < 0 ||
- strict_strtoul(argv[2], 16, &save_size) < 0) {
+ if (strict_strtoul(argv[1], 16, &
image_
save_addr) < 0 ||
+ strict_strtoul(argv[2], 16, &
image_
save_size) < 0) {
printf("Invalid address/size\n");
return CMD_RET_USAGE;
}
printf("Invalid address/size\n");
return CMD_RET_USAGE;
}
+ net_boot_file_name_explicit = true;
copy_filename(net_boot_file_name, argv[3],
sizeof(net_boot_file_name));
break;
copy_filename(net_boot_file_name, argv[3],
sizeof(net_boot_file_name));
break;
@@
-243,9
+260,6
@@
static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
return CMD_RET_SUCCESS;
}
return CMD_RET_SUCCESS;
}
- /* flush cache */
- flush_cache(load_addr, size);
-
bootstage_mark(BOOTSTAGE_ID_NET_LOADED);
rcode = bootm_maybe_autostart(cmdtp, argv[0]);
bootstage_mark(BOOTSTAGE_ID_NET_LOADED);
rcode = bootm_maybe_autostart(cmdtp, argv[0]);
@@
-294,14
+308,14
@@
static void cdp_update_env(void)
printf("CDP offered appliance VLAN %d\n",
ntohs(cdp_appliance_vlan));
vlan_to_string(cdp_appliance_vlan, tmp);
printf("CDP offered appliance VLAN %d\n",
ntohs(cdp_appliance_vlan));
vlan_to_string(cdp_appliance_vlan, tmp);
-
setenv
("vlan", tmp);
+
env_set
("vlan", tmp);
net_our_vlan = cdp_appliance_vlan;
}
if (cdp_native_vlan != htons(-1)) {
printf("CDP offered native VLAN %d\n", ntohs(cdp_native_vlan));
vlan_to_string(cdp_native_vlan, tmp);
net_our_vlan = cdp_appliance_vlan;
}
if (cdp_native_vlan != htons(-1)) {
printf("CDP offered native VLAN %d\n", ntohs(cdp_native_vlan));
vlan_to_string(cdp_native_vlan, tmp);
-
setenv
("nvlan", tmp);
+
env_set
("nvlan", tmp);
net_native_vlan = cdp_native_vlan;
}
}
net_native_vlan = cdp_native_vlan;
}
}
@@
-334,7
+348,7
@@
int do_sntp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
char *toff;
if (argc < 2) {
char *toff;
if (argc < 2) {
- net_ntp_server =
getenv
_ip("ntpserverip");
+ net_ntp_server =
env_get
_ip("ntpserverip");
if (net_ntp_server.s_addr == 0) {
printf("ntpserverip not set\n");
return CMD_RET_FAILURE;
if (net_ntp_server.s_addr == 0) {
printf("ntpserverip not set\n");
return CMD_RET_FAILURE;
@@
-347,7
+361,7
@@
int do_sntp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
}
}
}
}
- toff =
getenv
("timeoffset");
+ toff =
env_get
("timeoffset");
if (toff == NULL)
net_ntp_time_offset = 0;
else
if (toff == NULL)
net_ntp_time_offset = 0;
else
@@
-426,14
+440,14
@@
static int do_link_local(cmd_tbl_t *cmdtp, int flag, int argc,
net_gateway.s_addr = 0;
ip_to_string(net_gateway, tmp);
net_gateway.s_addr = 0;
ip_to_string(net_gateway, tmp);
-
setenv
("gatewayip", tmp);
+
env_set
("gatewayip", tmp);
ip_to_string(net_netmask, tmp);
ip_to_string(net_netmask, tmp);
-
setenv
("netmask", tmp);
+
env_set
("netmask", tmp);
ip_to_string(net_ip, tmp);
ip_to_string(net_ip, tmp);
-
setenv
("ipaddr", tmp);
-
setenv
("llipaddr", tmp); /* store this for next time */
+
env_set
("ipaddr", tmp);
+
env_set
("llipaddr", tmp); /* store this for next time */
return CMD_RET_SUCCESS;
}
return CMD_RET_SUCCESS;
}