projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
checkpatch.pl: Warn if the flattree API is used
[oweals/u-boot.git]
/
cmd
/
net.c
diff --git
a/cmd/net.c
b/cmd/net.c
index bed76e4bcb0899e5c368d09ddd33ed6873a1b789..25390b0474f4c9032cea1c678a1053e9d195a3f5 100644
(file)
--- a/
cmd/net.c
+++ b/
cmd/net.c
@@
-1,20
+1,24
@@
+// 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+
*/
/*
* Boot support
*/
#include <common.h>
*/
/*
* Boot support
*/
#include <common.h>
+#include <bootstage.h>
#include <command.h>
#include <command.h>
+#include <env.h>
+#include <image.h>
#include <net.h>
#include <net.h>
-static int netboot_common(enum proto_t,
cmd_tbl_t
*, int, char * const []);
+static int netboot_common(enum proto_t,
struct cmd_tbl
*, int, char * const []);
-static int do_bootp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+#ifdef CONFIG_CMD_BOOTP
+static int do_bootp(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
{
return netboot_common(BOOTP, cmdtp, argc, argv);
}
{
return netboot_common(BOOTP, cmdtp, argc, argv);
}
@@
-24,8
+28,10
@@
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
-int do_tftpb(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+#ifdef CONFIG_CMD_TFTPBOOT
+int do_tftpb(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
int ret;
{
int ret;
@@
-40,9
+46,11
@@
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(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
{
return netboot_common(TFTPPUT, cmdtp, argc, argv);
}
{
return netboot_common(TFTPPUT, cmdtp, argc, argv);
}
@@
-55,7
+63,8
@@
U_BOOT_CMD(
#endif
#ifdef CONFIG_CMD_TFTPSRV
#endif
#ifdef CONFIG_CMD_TFTPSRV
-static int do_tftpsrv(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
+static int do_tftpsrv(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
{
return netboot_common(TFTPSRV, cmdtp, argc, argv);
}
{
return netboot_common(TFTPSRV, cmdtp, argc, argv);
}
@@
-72,7
+81,7
@@
U_BOOT_CMD(
#ifdef CONFIG_CMD_RARP
#ifdef CONFIG_CMD_RARP
-int do_rarpb(
cmd_tbl_t *cmdtp, int flag, int argc, char *
const argv[])
+int do_rarpb(
struct cmd_tbl *cmdtp, int flag, int argc, char *
const argv[])
{
return netboot_common(RARP, cmdtp, argc, argv);
}
{
return netboot_common(RARP, cmdtp, argc, argv);
}
@@
-85,7
+94,8
@@
U_BOOT_CMD(
#endif
#if defined(CONFIG_CMD_DHCP)
#endif
#if defined(CONFIG_CMD_DHCP)
-static int do_dhcp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_dhcp(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
{
return netboot_common(DHCP, cmdtp, argc, argv);
}
{
return netboot_common(DHCP, cmdtp, argc, argv);
}
@@
-98,7
+108,8
@@
U_BOOT_CMD(
#endif
#if defined(CONFIG_CMD_NFS)
#endif
#if defined(CONFIG_CMD_NFS)
-static int do_nfs(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_nfs(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
{
return netboot_common(NFS, cmdtp, argc, argv);
}
{
return netboot_common(NFS, cmdtp, argc, argv);
}
@@
-116,63
+127,63
@@
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
}
-static int netboot_common(enum proto_t proto,
cmd_tbl_t
*cmdtp, int argc,
-
char *
const argv[])
+static int netboot_common(enum proto_t proto,
struct cmd_tbl
*cmdtp, int argc,
+
char *
const argv[])
{
char *s;
char *end;
{
char *s;
char *end;
@@
-180,13
+191,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
+212,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
+234,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;
@@
-255,7
+278,8
@@
static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
}
#if defined(CONFIG_CMD_PING)
}
#if defined(CONFIG_CMD_PING)
-static int do_ping(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_ping(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
{
if (argc < 2)
return CMD_RET_USAGE;
{
if (argc < 2)
return CMD_RET_USAGE;
@@
-291,19
+315,19
@@
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;
}
}
-int do_cdp(
cmd_tbl_t *cmdtp, int flag, int argc, char *
const argv[])
+int do_cdp(
struct cmd_tbl *cmdtp, int flag, int argc, char *
const argv[])
{
int r;
{
int r;
@@
-326,12
+350,12
@@
U_BOOT_CMD(
#endif
#if defined(CONFIG_CMD_SNTP)
#endif
#if defined(CONFIG_CMD_SNTP)
-int do_sntp(
cmd_tbl_t *cmdtp, int flag, int argc, char *
const argv[])
+int do_sntp(
struct cmd_tbl *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;
@@
-344,7
+368,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
@@
-367,7
+391,7
@@
U_BOOT_CMD(
#endif
#if defined(CONFIG_CMD_DNS)
#endif
#if defined(CONFIG_CMD_DNS)
-int do_dns(
cmd_tbl_t *cmdtp, int flag, int argc, char *
const argv[])
+int do_dns(
struct cmd_tbl *cmdtp, int flag, int argc, char *
const argv[])
{
if (argc == 1)
return CMD_RET_USAGE;
{
if (argc == 1)
return CMD_RET_USAGE;
@@
-413,8
+437,8
@@
U_BOOT_CMD(
#endif /* CONFIG_CMD_DNS */
#if defined(CONFIG_CMD_LINK_LOCAL)
#endif /* CONFIG_CMD_DNS */
#if defined(CONFIG_CMD_LINK_LOCAL)
-static int do_link_local(
cmd_tbl_t
*cmdtp, int flag, int argc,
-
char *
const argv[])
+static int do_link_local(
struct cmd_tbl
*cmdtp, int flag, int argc,
+
char *
const argv[])
{
char tmp[22];
{
char tmp[22];
@@
-423,14
+447,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;
}