All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 0/3] net: Sanitize DHCP variable override
@ 2018-06-14 10:04 Alexander Graf
  2018-06-14 10:04 ` [U-Boot] [PATCH v2 1/3] net: Prefer command line arguments Alexander Graf
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Alexander Graf @ 2018-06-14 10:04 UTC (permalink / raw)
  To: u-boot

While trying to boot from network on a RISC-V AX25 platform, I saw
that the DHCP IP address did not get populated from the DHCP server
IP address. The reason for that was simple: CONFIG_BOOTP_SERVERIP
was set.

I don't know the history of that option, but it seems to decrease
intuitivity levels of the dhcp command rather than improve it.

What I usually would expect is that explicitly set values populate
through all layers. So if I set a TFTP file name, it populates. If
I set a target IP address, it populates. If I don't set anything,
the values get filled in automatically.

This patch set is trying to move us into that direction without
breaking people that rely on the existing behavior. With this patch
set applied, boards have the option to prefer the 'serverip'
environment variable (ax25-ae350 gets moved to it) over the DHCP
given address and any value explicitly set on the command line is
always preferred.

This hopefully makes the command line a bit more intuitive.

v1 -> v2:

  - new patch: net: Prefer command line arguments
  - remove README entry
  - improve Kconfig help texts


Alexander Graf (3):
  net: Prefer command line arguments
  net: Add option to prefer bootp/dhcp serverip
  ax25: Switch to CONFIG_BOOTP_PREFER_SERVERIP

 cmd/Kconfig                  | 11 +++++++++++
 cmd/net.c                    | 10 ++++++++--
 configs/ax25-ae350_defconfig |  1 +
 include/configs/ax25-ae350.h |  1 -
 include/net.h                |  2 ++
 net/bootp.c                  | 10 ++++++++--
 net/net.c                    |  2 ++
 7 files changed, 32 insertions(+), 5 deletions(-)

-- 
2.12.3

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH v2 1/3] net: Prefer command line arguments
  2018-06-14 10:04 [U-Boot] [PATCH v2 0/3] net: Sanitize DHCP variable override Alexander Graf
@ 2018-06-14 10:04 ` Alexander Graf
  2018-06-14 16:34   ` Joe Hershberger
  2018-06-14 10:04 ` [U-Boot] [PATCH v2 2/3] net: Add option to prefer bootp/dhcp serverip Alexander Graf
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 13+ messages in thread
From: Alexander Graf @ 2018-06-14 10:04 UTC (permalink / raw)
  To: u-boot

We can call commands like dhcp and bootp without arguments or with
explicit command line arguments that really should tell the code where
to look for files instead.

Unfortunately, the current code simply overwrites command line arguments
in the dhcp case with dhcp values.

This patch allows the code to preserve the command line values if they
were set on the command line. That way the semantics are slightly more
intuitive.

The reason this patch does that by introducing a new variable is that we
can not rely on net_boot_file_name[0] being unset, as today it's
completely legal to call "dhcp" and afterwards run "tftp" and expect the
latter to repeat the same query as before. I would prefer not to break
that behavior in case anyone relies on it.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 cmd/net.c     | 10 ++++++++--
 include/net.h |  2 ++
 net/bootp.c   |  3 ++-
 net/net.c     |  2 ++
 4 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/cmd/net.c b/cmd/net.c
index f83839c35e..eca6dd8918 100644
--- a/cmd/net.c
+++ b/cmd/net.c
@@ -183,6 +183,8 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
 	int   size;
 	ulong addr;
 
+	net_boot_file_name_explicit = false;
+
 	/* pre-set load_addr */
 	s = env_get("loadaddr");
 	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.
 		 */
 		addr = simple_strtoul(argv[1], &end, 16);
-		if (end == (argv[1] + strlen(argv[1])))
+		if (end == (argv[1] + strlen(argv[1]))) {
 			load_addr = addr;
-		else
+		} else {
+			net_boot_file_name_explicit = true;
 			copy_filename(net_boot_file_name, argv[1],
 				      sizeof(net_boot_file_name));
+		}
 		break;
 
 	case 3:
 		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));
 
@@ -220,6 +225,7 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
 			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;
diff --git a/include/net.h b/include/net.h
index 5760685556..a259b7c530 100644
--- a/include/net.h
+++ b/include/net.h
@@ -539,6 +539,8 @@ enum proto_t {
 };
 
 extern char	net_boot_file_name[1024];/* Boot File name */
+/* Indicates whether the file name was specified on the command line */
+extern bool	net_boot_file_name_explicit;
 /* The actual transferred size of the bootfile (in bytes) */
 extern u32	net_boot_file_size;
 /* Boot file size in blocks as reported by the DHCP server */
diff --git a/net/bootp.c b/net/bootp.c
index 9d7cb5d30c..f3da8572b7 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -157,7 +157,8 @@ static void store_net_params(struct bootp_hdr *bp)
 #if defined(CONFIG_CMD_DHCP)
 	    !(dhcp_option_overload & OVERLOAD_FILE) &&
 #endif
-	    (strlen(bp->bp_file) > 0)) {
+	    (strlen(bp->bp_file) > 0) &&
+	    !net_boot_file_name_explicit) {
 		copy_filename(net_boot_file_name, bp->bp_file,
 			      sizeof(net_boot_file_name));
 	}
diff --git a/net/net.c b/net/net.c
index a4932f46d9..510d491271 100644
--- a/net/net.c
+++ b/net/net.c
@@ -165,6 +165,8 @@ ushort		net_native_vlan = 0xFFFF;
 
 /* Boot File name */
 char net_boot_file_name[1024];
+/* Indicates whether the file name was specified on the command line */
+bool net_boot_file_name_explicit;
 /* The actual transferred size of the bootfile (in bytes) */
 u32 net_boot_file_size;
 /* Boot file size in blocks as reported by the DHCP server */
-- 
2.12.3

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH v2 2/3] net: Add option to prefer bootp/dhcp serverip
  2018-06-14 10:04 [U-Boot] [PATCH v2 0/3] net: Sanitize DHCP variable override Alexander Graf
  2018-06-14 10:04 ` [U-Boot] [PATCH v2 1/3] net: Prefer command line arguments Alexander Graf
@ 2018-06-14 10:04 ` Alexander Graf
  2018-06-14 16:57   ` Joe Hershberger
  2018-06-14 10:04 ` [U-Boot] [PATCH v2 3/3] ax25: Switch to CONFIG_BOOTP_PREFER_SERVERIP Alexander Graf
       [not found] ` <752D002CFF5D0F4FA35C0100F1D73F3F6B7A657C@ATCPCS16.andestech.com>
  3 siblings, 1 reply; 13+ messages in thread
From: Alexander Graf @ 2018-06-14 10:04 UTC (permalink / raw)
  To: u-boot

Currently we can choose between 2 different types of behavior for the
serverip variable:

  1) Always overwrite it with the DHCP server IP address (default)
  2) Ignore what the DHCP server says (CONFIG_BOOTP_SERVERIP)

This patch adds a 3rd option:

  3) Use serverip from DHCP if no serverip is given
     (CONFIG_BOOTP_PREFER_SERVERIP)

With this new option, we can have the default case that a boot file gets
loaded from the DHCP provided TFTP server work while allowing users to
specify their own serverip variable to explicitly use a different tftp
server.

Signed-off-by: Alexander Graf <agraf@suse.de>

---

v1 -> v2:

  - remove README entry
  - improve Kconfig help texts
---
 cmd/Kconfig | 11 +++++++++++
 net/bootp.c |  7 ++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/cmd/Kconfig b/cmd/Kconfig
index e283cb9a8a..80a5af8a0c 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1121,6 +1121,17 @@ config BOOTP_HOSTNAME
 	help
 	  The name may or may not be qualified with the local domain name.
 
+config BOOTP_PREFER_SERVERIP
+	bool "Serverip variable takes precedent over DHCP server IP.
+	default n
+	depends on CMD_BOOTP
+	help
+	  By default a BOOTP/DHCP reply will overwrite the 'serverip' variable.
+
+	  With this option enabled, the 'serverip' variable in the environment
+	  takes precedence over DHCP server IP and will only be set by the DHCP
+	  server if not already set in the environment.
+
 config BOOTP_SUBNETMASK
 	bool "Request & store 'netmask' from BOOTP/DHCP server"
 	default y
diff --git a/net/bootp.c b/net/bootp.c
index f3da8572b7..154c71d694 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -147,9 +147,14 @@ static void store_net_params(struct bootp_hdr *bp)
 {
 #if !defined(CONFIG_BOOTP_SERVERIP)
 	struct in_addr tmp_ip;
+	bool overwrite_serverip = true;
+
+#if defined(CONFIG_BOOTP_PREFER_SERVERIP)
+	overwrite_serverip = false;
+#endif
 
 	net_copy_ip(&tmp_ip, &bp->bp_siaddr);
-	if (tmp_ip.s_addr != 0)
+	if (tmp_ip.s_addr != 0 && (overwrite_serverip || !net_server_ip.s_addr))
 		net_copy_ip(&net_server_ip, &bp->bp_siaddr);
 	memcpy(net_server_ethaddr,
 	       ((struct ethernet_hdr *)net_rx_packet)->et_src, 6);
-- 
2.12.3

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH v2 3/3] ax25: Switch to CONFIG_BOOTP_PREFER_SERVERIP
  2018-06-14 10:04 [U-Boot] [PATCH v2 0/3] net: Sanitize DHCP variable override Alexander Graf
  2018-06-14 10:04 ` [U-Boot] [PATCH v2 1/3] net: Prefer command line arguments Alexander Graf
  2018-06-14 10:04 ` [U-Boot] [PATCH v2 2/3] net: Add option to prefer bootp/dhcp serverip Alexander Graf
@ 2018-06-14 10:04 ` Alexander Graf
  2018-06-14 16:58   ` Joe Hershberger
       [not found] ` <752D002CFF5D0F4FA35C0100F1D73F3F6B7A657C@ATCPCS16.andestech.com>
  3 siblings, 1 reply; 13+ messages in thread
From: Alexander Graf @ 2018-06-14 10:04 UTC (permalink / raw)
  To: u-boot

The ax25-ae350 target currently uses CONFIG_BOOTP_SERVERIP which means we
ignore the DHCP provided TFTP ip address. This breaks every case where we
do now provide a serverip environment variable.

Instead, let's use the new CONFIG_BOOT_PREFER_SERVERIP option to fall back
to the DHCP provided TFTP IP if no serverip environment variable is set.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 configs/ax25-ae350_defconfig | 1 +
 include/configs/ax25-ae350.h | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/ax25-ae350_defconfig b/configs/ax25-ae350_defconfig
index fc04c87485..a328555af6 100644
--- a/configs/ax25-ae350_defconfig
+++ b/configs/ax25-ae350_defconfig
@@ -40,3 +40,4 @@ CONFIG_DM_SPI=y
 CONFIG_ATCSPI200_SPI=y
 CONFIG_TIMER=y
 CONFIG_ATCPIT100_TIMER=y
+CONFIG_BOOTP_PREFER_SERVERIP=y
diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
index b1ca5ac11a..b230896734 100644
--- a/include/configs/ax25-ae350.h
+++ b/include/configs/ax25-ae350.h
@@ -11,7 +11,6 @@
  * CPU and Board Configuration Options
  */
 #define CONFIG_BOOTP_SEND_HOSTNAME
-#define CONFIG_BOOTP_SERVERIP
 
 /*
  * Miscellaneous configurable options
-- 
2.12.3

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH v2 1/3] net: Prefer command line arguments
  2018-06-14 10:04 ` [U-Boot] [PATCH v2 1/3] net: Prefer command line arguments Alexander Graf
@ 2018-06-14 16:34   ` Joe Hershberger
  0 siblings, 0 replies; 13+ messages in thread
From: Joe Hershberger @ 2018-06-14 16:34 UTC (permalink / raw)
  To: u-boot

On Thu, Jun 14, 2018 at 5:04 AM, Alexander Graf <agraf@suse.de> wrote:
> We can call commands like dhcp and bootp without arguments or with
> explicit command line arguments that really should tell the code where
> to look for files instead.
>
> Unfortunately, the current code simply overwrites command line arguments
> in the dhcp case with dhcp values.
>
> This patch allows the code to preserve the command line values if they
> were set on the command line. That way the semantics are slightly more
> intuitive.
>
> The reason this patch does that by introducing a new variable is that we
> can not rely on net_boot_file_name[0] being unset, as today it's
> completely legal to call "dhcp" and afterwards run "tftp" and expect the
> latter to repeat the same query as before. I would prefer not to break
> that behavior in case anyone relies on it.
>
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
>  cmd/net.c     | 10 ++++++++--
>  include/net.h |  2 ++
>  net/bootp.c   |  3 ++-
>  net/net.c     |  2 ++
>  4 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/cmd/net.c b/cmd/net.c
> index f83839c35e..eca6dd8918 100644
> --- a/cmd/net.c
> +++ b/cmd/net.c
> @@ -183,6 +183,8 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
>         int   size;
>         ulong addr;
>
> +       net_boot_file_name_explicit = false;
> +
>         /* pre-set load_addr */
>         s = env_get("loadaddr");
>         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.
>                  */
>                 addr = simple_strtoul(argv[1], &end, 16);
> -               if (end == (argv[1] + strlen(argv[1])))
> +               if (end == (argv[1] + strlen(argv[1]))) {
>                         load_addr = addr;
> -               else
> +               } else {
> +                       net_boot_file_name_explicit = true;
>                         copy_filename(net_boot_file_name, argv[1],
>                                       sizeof(net_boot_file_name));
> +               }
>                 break;
>
>         case 3:
>                 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));
>
> @@ -220,6 +225,7 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
>                         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;
> diff --git a/include/net.h b/include/net.h
> index 5760685556..a259b7c530 100644
> --- a/include/net.h
> +++ b/include/net.h
> @@ -539,6 +539,8 @@ enum proto_t {
>  };
>
>  extern char    net_boot_file_name[1024];/* Boot File name */
> +/* Indicates whether the file name was specified on the command line */
> +extern bool    net_boot_file_name_explicit;
>  /* The actual transferred size of the bootfile (in bytes) */
>  extern u32     net_boot_file_size;
>  /* Boot file size in blocks as reported by the DHCP server */
> diff --git a/net/bootp.c b/net/bootp.c
> index 9d7cb5d30c..f3da8572b7 100644
> --- a/net/bootp.c
> +++ b/net/bootp.c
> @@ -157,7 +157,8 @@ static void store_net_params(struct bootp_hdr *bp)
>  #if defined(CONFIG_CMD_DHCP)
>             !(dhcp_option_overload & OVERLOAD_FILE) &&
>  #endif
> -           (strlen(bp->bp_file) > 0)) {
> +           (strlen(bp->bp_file) > 0) &&
> +           !net_boot_file_name_explicit) {

This seems like a reasonable check, but it also needs to happen in the
case that the file is passed under option 67.

>                 copy_filename(net_boot_file_name, bp->bp_file,
>                               sizeof(net_boot_file_name));
>         }
> diff --git a/net/net.c b/net/net.c
> index a4932f46d9..510d491271 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -165,6 +165,8 @@ ushort              net_native_vlan = 0xFFFF;
>
>  /* Boot File name */
>  char net_boot_file_name[1024];
> +/* Indicates whether the file name was specified on the command line */
> +bool net_boot_file_name_explicit;
>  /* The actual transferred size of the bootfile (in bytes) */
>  u32 net_boot_file_size;
>  /* Boot file size in blocks as reported by the DHCP server */
> --
> 2.12.3
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH v2 2/3] net: Add option to prefer bootp/dhcp serverip
  2018-06-14 10:04 ` [U-Boot] [PATCH v2 2/3] net: Add option to prefer bootp/dhcp serverip Alexander Graf
@ 2018-06-14 16:57   ` Joe Hershberger
  0 siblings, 0 replies; 13+ messages in thread
From: Joe Hershberger @ 2018-06-14 16:57 UTC (permalink / raw)
  To: u-boot

On Thu, Jun 14, 2018 at 5:04 AM, Alexander Graf <agraf@suse.de> wrote:
> Currently we can choose between 2 different types of behavior for the
> serverip variable:
>
>   1) Always overwrite it with the DHCP server IP address (default)
>   2) Ignore what the DHCP server says (CONFIG_BOOTP_SERVERIP)
>
> This patch adds a 3rd option:
>
>   3) Use serverip from DHCP if no serverip is given
>      (CONFIG_BOOTP_PREFER_SERVERIP)
>
> With this new option, we can have the default case that a boot file gets
> loaded from the DHCP provided TFTP server work while allowing users to
> specify their own serverip variable to explicitly use a different tftp
> server.
>
> Signed-off-by: Alexander Graf <agraf@suse.de>

Acked-by: Joe Hershberger <joe.hershberger@ni.com>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH v2 3/3] ax25: Switch to CONFIG_BOOTP_PREFER_SERVERIP
  2018-06-14 10:04 ` [U-Boot] [PATCH v2 3/3] ax25: Switch to CONFIG_BOOTP_PREFER_SERVERIP Alexander Graf
@ 2018-06-14 16:58   ` Joe Hershberger
  2018-06-15  8:24     ` Alexander Graf
  0 siblings, 1 reply; 13+ messages in thread
From: Joe Hershberger @ 2018-06-14 16:58 UTC (permalink / raw)
  To: u-boot

On Thu, Jun 14, 2018 at 5:04 AM, Alexander Graf <agraf@suse.de> wrote:
> The ax25-ae350 target currently uses CONFIG_BOOTP_SERVERIP which means we
> ignore the DHCP provided TFTP ip address. This breaks every case where we
> do now provide a serverip environment variable.
>
> Instead, let's use the new CONFIG_BOOT_PREFER_SERVERIP option to fall back
> to the DHCP provided TFTP IP if no serverip environment variable is set.
>
> Signed-off-by: Alexander Graf <agraf@suse.de>

Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>

> ---
>  configs/ax25-ae350_defconfig | 1 +
>  include/configs/ax25-ae350.h | 1 -
>  2 files changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/configs/ax25-ae350_defconfig b/configs/ax25-ae350_defconfig
> index fc04c87485..a328555af6 100644
> --- a/configs/ax25-ae350_defconfig
> +++ b/configs/ax25-ae350_defconfig
> @@ -40,3 +40,4 @@ CONFIG_DM_SPI=y
>  CONFIG_ATCSPI200_SPI=y
>  CONFIG_TIMER=y
>  CONFIG_ATCPIT100_TIMER=y
> +CONFIG_BOOTP_PREFER_SERVERIP=y
> diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
> index b1ca5ac11a..b230896734 100644
> --- a/include/configs/ax25-ae350.h
> +++ b/include/configs/ax25-ae350.h
> @@ -11,7 +11,6 @@
>   * CPU and Board Configuration Options
>   */
>  #define CONFIG_BOOTP_SEND_HOSTNAME
> -#define CONFIG_BOOTP_SERVERIP

Feel like moving this to Kconfig?

>
>  /*
>   * Miscellaneous configurable options
> --
> 2.12.3
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH v2 0/3] net: Sanitize DHCP variable override
       [not found] ` <752D002CFF5D0F4FA35C0100F1D73F3F6B7A657C@ATCPCS16.andestech.com>
@ 2018-06-15  6:12   ` Rick Chen
  0 siblings, 0 replies; 13+ messages in thread
From: Rick Chen @ 2018-06-15  6:12 UTC (permalink / raw)
  To: u-boot

> From: Alexander Graf [mailto:agraf at suse.de]
> Sent: Thursday, June 14, 2018 6:04 PM
> To: u-boot at lists.denx.de
> Cc: Rick Jian-Zhi Chen(陳建志); Joe Hershberger; Greentime Ying-Han Hu(胡英
> 漢); Simon Glass
> Subject: [PATCH v2 0/3] net: Sanitize DHCP variable override
>
> While trying to boot from network on a RISC-V AX25 platform, I saw that the
> DHCP IP address did not get populated from the DHCP server IP address. The
> reason for that was simple: CONFIG_BOOTP_SERVERIP was set.
>
> I don't know the history of that option, but it seems to decrease intuitivity levels
> of the dhcp command rather than improve it.
>
> What I usually would expect is that explicitly set values populate through all
> layers. So if I set a TFTP file name, it populates. If I set a target IP address, it
> populates. If I don't set anything, the values get filled in automatically.
>
> This patch set is trying to move us into that direction without breaking people
> that rely on the existing behavior. With this patch set applied, boards have the
> option to prefer the 'serverip'
> environment variable (ax25-ae350 gets moved to it) over the DHCP given address
> and any value explicitly set on the command line is always preferred.
>
> This hopefully makes the command line a bit more intuitive.
>
> v1 -> v2:
>
>   - new patch: net: Prefer command line arguments
>   - remove README entry
>   - improve Kconfig help texts
>
>
> Alexander Graf (3):
>   net: Prefer command line arguments
>   net: Add option to prefer bootp/dhcp serverip
>   ax25: Switch to CONFIG_BOOTP_PREFER_SERVERIP
>
>  cmd/Kconfig                  | 11 +++++++++++
>  cmd/net.c                    | 10 ++++++++--
>  configs/ax25-ae350_defconfig |  1 +
>  include/configs/ax25-ae350.h |  1 -
>  include/net.h                |  2 ++
>  net/bootp.c                  | 10 ++++++++--
>  net/net.c                    |  2 ++
>  7 files changed, 32 insertions(+), 5 deletions(-)
>
> --
> 2.12.3

Hi Alex

The V2 is ok about the dhcp verification.

Message as below:

U-Boot 2018.07-rc1-00075-g3411a40 (Jun 15 2018 - 14:05:21 +0800)

DRAM:  1 GiB
No arch specific invalidate_icache_all available!
Flash: 64 MiB
MMC:   mmc at f0e00000: 0
Loading Environment from SPI Flash... SF: Detected mx25u1635e with
page size 256 Bytes, erase size 4 KiB, total 2 MiB
OK
In:    serial at f0300000
Out:   serial at f0300000
Err:   serial at f0300000
Net:   no alias for ethernet0

Warning: mac at e0100000 (eth0) using random MAC address - 7e:c1:32:b2:20:cf
eth0: mac at e0100000
Hit any key to stop autoboot:  0
RISC-V #
RISC-V # env print
baudrate=38400
bootcmd=fatload mmc 0:1 0x20000000 ae350_64.dtb;fatload mmc 0:1 0x0
bbl-ae350.bin;go 0x0
bootdelay=3
bootfile=10.0.4.97:boomimage-310y-ag101p.bin
ethact=mac at e0100000
fdtcontroladdr=3fede290
fileaddr=600000
filesize=1bb7d34
stderr=serial at f0300000
stdin=serial at f0300000
stdout=serial at f0300000

Environment size: 329/8188 bytes
RISC-V # dhcp 0x600000 10.0.4.97:boomimage-310y-ag101p.bin
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
DHCP client bound to address 10.0.4.124 (4596 ms)
Using mac at e0100000 device
TFTP from server 10.0.4.97; our IP address is 10.0.4.124
Filename 'boomimage-310y-ag101p.bin'.
Load address: 0x600000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ########################################
         174.8 KiB/s
done
Bytes transferred = 13938796 (d4b06c hex)
RISC-V #

Rick

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH v2 3/3] ax25: Switch to CONFIG_BOOTP_PREFER_SERVERIP
  2018-06-14 16:58   ` Joe Hershberger
@ 2018-06-15  8:24     ` Alexander Graf
  2018-06-15 20:08       ` Joe Hershberger
  0 siblings, 1 reply; 13+ messages in thread
From: Alexander Graf @ 2018-06-15  8:24 UTC (permalink / raw)
  To: u-boot



On 14.06.18 18:58, Joe Hershberger wrote:
> On Thu, Jun 14, 2018 at 5:04 AM, Alexander Graf <agraf@suse.de> wrote:
>> The ax25-ae350 target currently uses CONFIG_BOOTP_SERVERIP which means we
>> ignore the DHCP provided TFTP ip address. This breaks every case where we
>> do now provide a serverip environment variable.
>>
>> Instead, let's use the new CONFIG_BOOT_PREFER_SERVERIP option to fall back
>> to the DHCP provided TFTP IP if no serverip environment variable is set.
>>
>> Signed-off-by: Alexander Graf <agraf@suse.de>
> 
> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
> 
>> ---
>>  configs/ax25-ae350_defconfig | 1 +
>>  include/configs/ax25-ae350.h | 1 -
>>  2 files changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/configs/ax25-ae350_defconfig b/configs/ax25-ae350_defconfig
>> index fc04c87485..a328555af6 100644
>> --- a/configs/ax25-ae350_defconfig
>> +++ b/configs/ax25-ae350_defconfig
>> @@ -40,3 +40,4 @@ CONFIG_DM_SPI=y
>>  CONFIG_ATCSPI200_SPI=y
>>  CONFIG_TIMER=y
>>  CONFIG_ATCPIT100_TIMER=y
>> +CONFIG_BOOTP_PREFER_SERVERIP=y
>> diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
>> index b1ca5ac11a..b230896734 100644
>> --- a/include/configs/ax25-ae350.h
>> +++ b/include/configs/ax25-ae350.h
>> @@ -11,7 +11,6 @@
>>   * CPU and Board Configuration Options
>>   */
>>  #define CONFIG_BOOTP_SEND_HOSTNAME
>> -#define CONFIG_BOOTP_SERVERIP
> 
> Feel like moving this to Kconfig?

I would actually prefer to remove it altogether ;)


Alex

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH v2 3/3] ax25: Switch to CONFIG_BOOTP_PREFER_SERVERIP
  2018-06-15  8:24     ` Alexander Graf
@ 2018-06-15 20:08       ` Joe Hershberger
  2018-06-15 20:33         ` Alexander Graf
  0 siblings, 1 reply; 13+ messages in thread
From: Joe Hershberger @ 2018-06-15 20:08 UTC (permalink / raw)
  To: u-boot

On Fri, Jun 15, 2018 at 3:24 AM, Alexander Graf <agraf@suse.de> wrote:
>
>
> On 14.06.18 18:58, Joe Hershberger wrote:
>> On Thu, Jun 14, 2018 at 5:04 AM, Alexander Graf <agraf@suse.de> wrote:
>>> The ax25-ae350 target currently uses CONFIG_BOOTP_SERVERIP which means we
>>> ignore the DHCP provided TFTP ip address. This breaks every case where we
>>> do now provide a serverip environment variable.
>>>
>>> Instead, let's use the new CONFIG_BOOT_PREFER_SERVERIP option to fall back
>>> to the DHCP provided TFTP IP if no serverip environment variable is set.
>>>
>>> Signed-off-by: Alexander Graf <agraf@suse.de>
>>
>> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
>>
>>> ---
>>>  configs/ax25-ae350_defconfig | 1 +
>>>  include/configs/ax25-ae350.h | 1 -
>>>  2 files changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/configs/ax25-ae350_defconfig b/configs/ax25-ae350_defconfig
>>> index fc04c87485..a328555af6 100644
>>> --- a/configs/ax25-ae350_defconfig
>>> +++ b/configs/ax25-ae350_defconfig
>>> @@ -40,3 +40,4 @@ CONFIG_DM_SPI=y
>>>  CONFIG_ATCSPI200_SPI=y
>>>  CONFIG_TIMER=y
>>>  CONFIG_ATCPIT100_TIMER=y
>>> +CONFIG_BOOTP_PREFER_SERVERIP=y
>>> diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
>>> index b1ca5ac11a..b230896734 100644
>>> --- a/include/configs/ax25-ae350.h
>>> +++ b/include/configs/ax25-ae350.h
>>> @@ -11,7 +11,6 @@
>>>   * CPU and Board Configuration Options
>>>   */
>>>  #define CONFIG_BOOTP_SEND_HOSTNAME
>>> -#define CONFIG_BOOTP_SERVERIP
>>
>> Feel like moving this to Kconfig?
>
> I would actually prefer to remove it altogether ;)

I'm with you, actually... though I think the behavior should be to
always ignore the DHCP server's settings when they are on the command
line or in the environment. If you want the DHCP server's info, the
user's script can remove the variables explicitly.

>
> Alex
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH v2 3/3] ax25: Switch to CONFIG_BOOTP_PREFER_SERVERIP
  2018-06-15 20:08       ` Joe Hershberger
@ 2018-06-15 20:33         ` Alexander Graf
  2018-06-15 20:36           ` Joe Hershberger
  0 siblings, 1 reply; 13+ messages in thread
From: Alexander Graf @ 2018-06-15 20:33 UTC (permalink / raw)
  To: u-boot



On 15.06.18 22:08, Joe Hershberger wrote:
> On Fri, Jun 15, 2018 at 3:24 AM, Alexander Graf <agraf@suse.de> wrote:
>>
>>
>> On 14.06.18 18:58, Joe Hershberger wrote:
>>> On Thu, Jun 14, 2018 at 5:04 AM, Alexander Graf <agraf@suse.de> wrote:
>>>> The ax25-ae350 target currently uses CONFIG_BOOTP_SERVERIP which means we
>>>> ignore the DHCP provided TFTP ip address. This breaks every case where we
>>>> do now provide a serverip environment variable.
>>>>
>>>> Instead, let's use the new CONFIG_BOOT_PREFER_SERVERIP option to fall back
>>>> to the DHCP provided TFTP IP if no serverip environment variable is set.
>>>>
>>>> Signed-off-by: Alexander Graf <agraf@suse.de>
>>>
>>> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
>>>
>>>> ---
>>>>  configs/ax25-ae350_defconfig | 1 +
>>>>  include/configs/ax25-ae350.h | 1 -
>>>>  2 files changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/configs/ax25-ae350_defconfig b/configs/ax25-ae350_defconfig
>>>> index fc04c87485..a328555af6 100644
>>>> --- a/configs/ax25-ae350_defconfig
>>>> +++ b/configs/ax25-ae350_defconfig
>>>> @@ -40,3 +40,4 @@ CONFIG_DM_SPI=y
>>>>  CONFIG_ATCSPI200_SPI=y
>>>>  CONFIG_TIMER=y
>>>>  CONFIG_ATCPIT100_TIMER=y
>>>> +CONFIG_BOOTP_PREFER_SERVERIP=y
>>>> diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
>>>> index b1ca5ac11a..b230896734 100644
>>>> --- a/include/configs/ax25-ae350.h
>>>> +++ b/include/configs/ax25-ae350.h
>>>> @@ -11,7 +11,6 @@
>>>>   * CPU and Board Configuration Options
>>>>   */
>>>>  #define CONFIG_BOOTP_SEND_HOSTNAME
>>>> -#define CONFIG_BOOTP_SERVERIP
>>>
>>> Feel like moving this to Kconfig?
>>
>> I would actually prefer to remove it altogether ;)
> 
> I'm with you, actually... though I think the behavior should be to
> always ignore the DHCP server's settings when they are on the command
> line or in the environment. If you want the DHCP server's info, the
> user's script can remove the variables explicitly.

Yeah, the only case I can think of where the current model could hurt us
is if you run "dhcp" and then call "saveenv". Because that saveenv will
contain all those glorious variables that may now override the next dhcp
request.

Btw, you wouldn't happen to work with Julia? ;)

Alex

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH v2 3/3] ax25: Switch to CONFIG_BOOTP_PREFER_SERVERIP
  2018-06-15 20:33         ` Alexander Graf
@ 2018-06-15 20:36           ` Joe Hershberger
  2018-06-15 20:39             ` Alexander Graf
  0 siblings, 1 reply; 13+ messages in thread
From: Joe Hershberger @ 2018-06-15 20:36 UTC (permalink / raw)
  To: u-boot

On Fri, Jun 15, 2018 at 3:33 PM, Alexander Graf <agraf@suse.de> wrote:
>
>
> On 15.06.18 22:08, Joe Hershberger wrote:
>> On Fri, Jun 15, 2018 at 3:24 AM, Alexander Graf <agraf@suse.de> wrote:
>>>
>>>
>>> On 14.06.18 18:58, Joe Hershberger wrote:
>>>> On Thu, Jun 14, 2018 at 5:04 AM, Alexander Graf <agraf@suse.de> wrote:
>>>>> The ax25-ae350 target currently uses CONFIG_BOOTP_SERVERIP which means we
>>>>> ignore the DHCP provided TFTP ip address. This breaks every case where we
>>>>> do now provide a serverip environment variable.
>>>>>
>>>>> Instead, let's use the new CONFIG_BOOT_PREFER_SERVERIP option to fall back
>>>>> to the DHCP provided TFTP IP if no serverip environment variable is set.
>>>>>
>>>>> Signed-off-by: Alexander Graf <agraf@suse.de>
>>>>
>>>> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
>>>>
>>>>> ---
>>>>>  configs/ax25-ae350_defconfig | 1 +
>>>>>  include/configs/ax25-ae350.h | 1 -
>>>>>  2 files changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/configs/ax25-ae350_defconfig b/configs/ax25-ae350_defconfig
>>>>> index fc04c87485..a328555af6 100644
>>>>> --- a/configs/ax25-ae350_defconfig
>>>>> +++ b/configs/ax25-ae350_defconfig
>>>>> @@ -40,3 +40,4 @@ CONFIG_DM_SPI=y
>>>>>  CONFIG_ATCSPI200_SPI=y
>>>>>  CONFIG_TIMER=y
>>>>>  CONFIG_ATCPIT100_TIMER=y
>>>>> +CONFIG_BOOTP_PREFER_SERVERIP=y
>>>>> diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
>>>>> index b1ca5ac11a..b230896734 100644
>>>>> --- a/include/configs/ax25-ae350.h
>>>>> +++ b/include/configs/ax25-ae350.h
>>>>> @@ -11,7 +11,6 @@
>>>>>   * CPU and Board Configuration Options
>>>>>   */
>>>>>  #define CONFIG_BOOTP_SEND_HOSTNAME
>>>>> -#define CONFIG_BOOTP_SERVERIP
>>>>
>>>> Feel like moving this to Kconfig?
>>>
>>> I would actually prefer to remove it altogether ;)
>>
>> I'm with you, actually... though I think the behavior should be to
>> always ignore the DHCP server's settings when they are on the command
>> line or in the environment. If you want the DHCP server's info, the
>> user's script can remove the variables explicitly.
>
> Yeah, the only case I can think of where the current model could hurt us
> is if you run "dhcp" and then call "saveenv". Because that saveenv will
> contain all those glorious variables that may now override the next dhcp
> request.

I think in that case you could explicitly clean up those variables...
I've intended to implement ephemeral variables anyway... this is one
of the reasons.

> Btw, you wouldn't happen to work with Julia? ;)

Not directly, but yes. :)

> Alex
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH v2 3/3] ax25: Switch to CONFIG_BOOTP_PREFER_SERVERIP
  2018-06-15 20:36           ` Joe Hershberger
@ 2018-06-15 20:39             ` Alexander Graf
  0 siblings, 0 replies; 13+ messages in thread
From: Alexander Graf @ 2018-06-15 20:39 UTC (permalink / raw)
  To: u-boot



On 15.06.18 22:36, Joe Hershberger wrote:
> On Fri, Jun 15, 2018 at 3:33 PM, Alexander Graf <agraf@suse.de> wrote:
>>
>>
>> On 15.06.18 22:08, Joe Hershberger wrote:
>>> On Fri, Jun 15, 2018 at 3:24 AM, Alexander Graf <agraf@suse.de> wrote:
>>>>
>>>>
>>>> On 14.06.18 18:58, Joe Hershberger wrote:
>>>>> On Thu, Jun 14, 2018 at 5:04 AM, Alexander Graf <agraf@suse.de> wrote:
>>>>>> The ax25-ae350 target currently uses CONFIG_BOOTP_SERVERIP which means we
>>>>>> ignore the DHCP provided TFTP ip address. This breaks every case where we
>>>>>> do now provide a serverip environment variable.
>>>>>>
>>>>>> Instead, let's use the new CONFIG_BOOT_PREFER_SERVERIP option to fall back
>>>>>> to the DHCP provided TFTP IP if no serverip environment variable is set.
>>>>>>
>>>>>> Signed-off-by: Alexander Graf <agraf@suse.de>
>>>>>
>>>>> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
>>>>>
>>>>>> ---
>>>>>>  configs/ax25-ae350_defconfig | 1 +
>>>>>>  include/configs/ax25-ae350.h | 1 -
>>>>>>  2 files changed, 1 insertion(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/configs/ax25-ae350_defconfig b/configs/ax25-ae350_defconfig
>>>>>> index fc04c87485..a328555af6 100644
>>>>>> --- a/configs/ax25-ae350_defconfig
>>>>>> +++ b/configs/ax25-ae350_defconfig
>>>>>> @@ -40,3 +40,4 @@ CONFIG_DM_SPI=y
>>>>>>  CONFIG_ATCSPI200_SPI=y
>>>>>>  CONFIG_TIMER=y
>>>>>>  CONFIG_ATCPIT100_TIMER=y
>>>>>> +CONFIG_BOOTP_PREFER_SERVERIP=y
>>>>>> diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
>>>>>> index b1ca5ac11a..b230896734 100644
>>>>>> --- a/include/configs/ax25-ae350.h
>>>>>> +++ b/include/configs/ax25-ae350.h
>>>>>> @@ -11,7 +11,6 @@
>>>>>>   * CPU and Board Configuration Options
>>>>>>   */
>>>>>>  #define CONFIG_BOOTP_SEND_HOSTNAME
>>>>>> -#define CONFIG_BOOTP_SERVERIP
>>>>>
>>>>> Feel like moving this to Kconfig?
>>>>
>>>> I would actually prefer to remove it altogether ;)
>>>
>>> I'm with you, actually... though I think the behavior should be to
>>> always ignore the DHCP server's settings when they are on the command
>>> line or in the environment. If you want the DHCP server's info, the
>>> user's script can remove the variables explicitly.
>>
>> Yeah, the only case I can think of where the current model could hurt us
>> is if you run "dhcp" and then call "saveenv". Because that saveenv will
>> contain all those glorious variables that may now override the next dhcp
>> request.
> 
> I think in that case you could explicitly clean up those variables...
> I've intended to implement ephemeral variables anyway... this is one
> of the reasons.

I'll be happy to pass this one on to you then :). I am already too deep
down into rabbit holes.

>> Btw, you wouldn't happen to work with Julia? ;)
> 
> Not directly, but yes. :)

Awesome, just met her last weekend ;)


Alex

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2018-06-15 20:39 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-14 10:04 [U-Boot] [PATCH v2 0/3] net: Sanitize DHCP variable override Alexander Graf
2018-06-14 10:04 ` [U-Boot] [PATCH v2 1/3] net: Prefer command line arguments Alexander Graf
2018-06-14 16:34   ` Joe Hershberger
2018-06-14 10:04 ` [U-Boot] [PATCH v2 2/3] net: Add option to prefer bootp/dhcp serverip Alexander Graf
2018-06-14 16:57   ` Joe Hershberger
2018-06-14 10:04 ` [U-Boot] [PATCH v2 3/3] ax25: Switch to CONFIG_BOOTP_PREFER_SERVERIP Alexander Graf
2018-06-14 16:58   ` Joe Hershberger
2018-06-15  8:24     ` Alexander Graf
2018-06-15 20:08       ` Joe Hershberger
2018-06-15 20:33         ` Alexander Graf
2018-06-15 20:36           ` Joe Hershberger
2018-06-15 20:39             ` Alexander Graf
     [not found] ` <752D002CFF5D0F4FA35C0100F1D73F3F6B7A657C@ATCPCS16.andestech.com>
2018-06-15  6:12   ` [U-Boot] [PATCH v2 0/3] net: Sanitize DHCP variable override Rick Chen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.