diff mbox

[U-Boot] cmd: move CMD_PXE to Kconfig

Message ID 1479070792-8740-1-git-send-email-yann.morin.1998@free.fr
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Yann E. MORIN Nov. 13, 2016, 8:59 p.m. UTC
Currently, CMD_PXE is forcibly enabled in config_distro_defaults.h, so
that general purpose distributions can rely on it being defined. This
header is included, under conditions or not, by various archs or
famillies of archs / SoCs.

However, it is very possible that boards based on those SoCs will not
have a physical ethernet connector at all, even if the have a MAC; for
example, the Nanopi Neo AIR (sunxi H3) does not. It is also possible
that network booting is absolutely not necessary for a device.

However, it is not possible to disable the PXE command, as it is
forcibly enabled and is non-configurable.

But it turns out we already have a config option to build a distro-ready
image, in the name of DISTRO_DEFAULTS.

Move CMD_PXE out of the hard-coded config_distro_defaults.h into a
Kconfig option, that gets selected by DISTRO_DEFAULTS when it is set.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Joe Hershberger <joe.hershberger@ni.com>
---
 Kconfig                          | 1 +
 cmd/Kconfig                      | 5 +++++
 include/config_distro_defaults.h | 2 --
 3 files changed, 6 insertions(+), 2 deletions(-)

Comments

Joe Hershberger Nov. 15, 2016, 3:15 a.m. UTC | #1
On Sun, Nov 13, 2016 at 2:59 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> Currently, CMD_PXE is forcibly enabled in config_distro_defaults.h, so
> that general purpose distributions can rely on it being defined. This
> header is included, under conditions or not, by various archs or
> famillies of archs / SoCs.
>
> However, it is very possible that boards based on those SoCs will not
> have a physical ethernet connector at all, even if the have a MAC; for
> example, the Nanopi Neo AIR (sunxi H3) does not. It is also possible
> that network booting is absolutely not necessary for a device.
>
> However, it is not possible to disable the PXE command, as it is
> forcibly enabled and is non-configurable.
>
> But it turns out we already have a config option to build a distro-ready
> image, in the name of DISTRO_DEFAULTS.
>
> Move CMD_PXE out of the hard-coded config_distro_defaults.h into a
> Kconfig option, that gets selected by DISTRO_DEFAULTS when it is set.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Joe Hershberger <joe.hershberger@ni.com>

I like this, but do you not also need to run moveconfig.py on this patch?

Thanks,
-Joe
Yann E. MORIN Nov. 15, 2016, 5:01 p.m. UTC | #2
Joe, All,

On 2016-11-14 21:15 -0600, Joe Hershberger spake thusly:
> On Sun, Nov 13, 2016 at 2:59 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > Currently, CMD_PXE is forcibly enabled in config_distro_defaults.h, so
> > that general purpose distributions can rely on it being defined. This
> > header is included, under conditions or not, by various archs or
> > famillies of archs / SoCs.
> >
> > However, it is very possible that boards based on those SoCs will not
> > have a physical ethernet connector at all, even if the have a MAC; for
> > example, the Nanopi Neo AIR (sunxi H3) does not. It is also possible
> > that network booting is absolutely not necessary for a device.
> >
> > However, it is not possible to disable the PXE command, as it is
> > forcibly enabled and is non-configurable.
> >
> > But it turns out we already have a config option to build a distro-ready
> > image, in the name of DISTRO_DEFAULTS.
> >
> > Move CMD_PXE out of the hard-coded config_distro_defaults.h into a
> > Kconfig option, that gets selected by DISTRO_DEFAULTS when it is set.
> >
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > Cc: Joe Hershberger <joe.hershberger@ni.com>
> 
> I like this, but do you not also need to run moveconfig.py on this patch?

Ack. I was not aware of this tool. I will run it and if it does change
any defconfig, I'll repost. If nothing is changed, I'll just reply to
this thread. OK?

Should the defconfig update be a separate patch, or should it be
squashed into this one?

Thanks for the feedback! :-)

Regards,
Yann E. MORIN.
Peter Robinson Nov. 16, 2016, 2:04 p.m. UTC | #3
On Sun, Nov 13, 2016 at 8:59 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> Currently, CMD_PXE is forcibly enabled in config_distro_defaults.h, so
> that general purpose distributions can rely on it being defined. This
> header is included, under conditions or not, by various archs or
> famillies of archs / SoCs.
>
> However, it is very possible that boards based on those SoCs will not
> have a physical ethernet connector at all, even if the have a MAC; for
> example, the Nanopi Neo AIR (sunxi H3) does not. It is also possible
> that network booting is absolutely not necessary for a device.
>
> However, it is not possible to disable the PXE command, as it is
> forcibly enabled and is non-configurable.
>
> But it turns out we already have a config option to build a distro-ready
> image, in the name of DISTRO_DEFAULTS.
>
> Move CMD_PXE out of the hard-coded config_distro_defaults.h into a
> Kconfig option, that gets selected by DISTRO_DEFAULTS when it is set.

So this changes the default expectation on all boards that currently
use distro defaults?

> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Joe Hershberger <joe.hershberger@ni.com>
> ---
>  Kconfig                          | 1 +
>  cmd/Kconfig                      | 5 +++++
>  include/config_distro_defaults.h | 2 --
>  3 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/Kconfig b/Kconfig
> index 1263d0b..5421cd3 100644
> --- a/Kconfig
> +++ b/Kconfig
> @@ -60,6 +60,7 @@ config DISTRO_DEFAULTS
>         select CMD_BOOTZ if ARM && !ARM64
>         select CMD_BOOTI if ARM64
>         select CMD_DHCP
> +       select CMD_PXE
>         select CMD_EXT2
>         select CMD_EXT4
>         select CMD_FAT
> diff --git a/cmd/Kconfig b/cmd/Kconfig
> index e339d86..95f5ce6 100644
> --- a/cmd/Kconfig
> +++ b/cmd/Kconfig
> @@ -496,6 +496,11 @@ config CMD_DHCP
>         help
>           Boot image via network using DHCP/TFTP protocol
>
> +config CMD_PXE
> +       bool "pxe"
> +       help
> +         Boot image via network using PXE protocol
> +
>  config CMD_NFS
>         bool "nfs"
>         default y
> diff --git a/include/config_distro_defaults.h b/include/config_distro_defaults.h
> index b5efab5..01cd6d9 100644
> --- a/include/config_distro_defaults.h
> +++ b/include/config_distro_defaults.h
> @@ -20,8 +20,6 @@
>  #define CONFIG_BOOTP_PXE
>  #define CONFIG_BOOTP_SUBNETMASK
>
> -#define CONFIG_CMD_PXE
> -
>  #define CONFIG_CMDLINE_EDITING
>  #define CONFIG_AUTO_COMPLETE
>  #define CONFIG_SYS_LONGHELP
> --
> 2.7.4
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
Yann E. MORIN Nov. 17, 2016, 5:04 p.m. UTC | #4
Peter, All,

On 2016-11-16 14:04 +0000, Peter Robinson spake thusly:
> On Sun, Nov 13, 2016 at 8:59 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > Currently, CMD_PXE is forcibly enabled in config_distro_defaults.h, so
> > that general purpose distributions can rely on it being defined. This
> > header is included, under conditions or not, by various archs or
> > famillies of archs / SoCs.
> >
> > However, it is very possible that boards based on those SoCs will not
> > have a physical ethernet connector at all, even if the have a MAC; for
> > example, the Nanopi Neo AIR (sunxi H3) does not. It is also possible
> > that network booting is absolutely not necessary for a device.
> >
> > However, it is not possible to disable the PXE command, as it is
> > forcibly enabled and is non-configurable.
> >
> > But it turns out we already have a config option to build a distro-ready
> > image, in the name of DISTRO_DEFAULTS.
> >
> > Move CMD_PXE out of the hard-coded config_distro_defaults.h into a
> > Kconfig option, that gets selected by DISTRO_DEFAULTS when it is set.
> 
> So this changes the default expectation on all boards that currently
> use distro defaults?

Well, I'm not totally aware of all the implications of such a change,
but my analysis is:

  - CONFIG_CMD_PXE was in include/config_distro_defaults.h, which to my
    poor little brain means "we want that as a distro default";

  - CONFIG_CMD_PXE is now enabled by CONFIG_DISTRO_DEFAULTS, which means
    the same (and the help text confirms that).

So, it looks to me that the expected behaviour does not change. In
theory! ;-)

Now, I may well have missed something, in which case I always accept
being enlighten; just point me to the pieces I missed (totally possible,
I'm new in U-Boot land!).

I'm running buildman on all configs right now, on current master (but it
takes a lot of time...). Once this is done, I'll re-run it on my change.
From what I understand, buildman should point me to boards which are
affected by the change, right? When we have that list, we can assess
whether it is acceptable or not.

Thanks! :-)

Regards,
Yann E. MORIN.

> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > Cc: Joe Hershberger <joe.hershberger@ni.com>
> > ---
> >  Kconfig                          | 1 +
> >  cmd/Kconfig                      | 5 +++++
> >  include/config_distro_defaults.h | 2 --
> >  3 files changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/Kconfig b/Kconfig
> > index 1263d0b..5421cd3 100644
> > --- a/Kconfig
> > +++ b/Kconfig
> > @@ -60,6 +60,7 @@ config DISTRO_DEFAULTS
> >         select CMD_BOOTZ if ARM && !ARM64
> >         select CMD_BOOTI if ARM64
> >         select CMD_DHCP
> > +       select CMD_PXE
> >         select CMD_EXT2
> >         select CMD_EXT4
> >         select CMD_FAT
> > diff --git a/cmd/Kconfig b/cmd/Kconfig
> > index e339d86..95f5ce6 100644
> > --- a/cmd/Kconfig
> > +++ b/cmd/Kconfig
> > @@ -496,6 +496,11 @@ config CMD_DHCP
> >         help
> >           Boot image via network using DHCP/TFTP protocol
> >
> > +config CMD_PXE
> > +       bool "pxe"
> > +       help
> > +         Boot image via network using PXE protocol
> > +
> >  config CMD_NFS
> >         bool "nfs"
> >         default y
> > diff --git a/include/config_distro_defaults.h b/include/config_distro_defaults.h
> > index b5efab5..01cd6d9 100644
> > --- a/include/config_distro_defaults.h
> > +++ b/include/config_distro_defaults.h
> > @@ -20,8 +20,6 @@
> >  #define CONFIG_BOOTP_PXE
> >  #define CONFIG_BOOTP_SUBNETMASK
> >
> > -#define CONFIG_CMD_PXE
> > -
> >  #define CONFIG_CMDLINE_EDITING
> >  #define CONFIG_AUTO_COMPLETE
> >  #define CONFIG_SYS_LONGHELP
> > --
> > 2.7.4
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot@lists.denx.de
> > http://lists.denx.de/mailman/listinfo/u-boot
Joe Hershberger Nov. 29, 2016, 5:40 p.m. UTC | #5
On Thu, Nov 17, 2016 at 11:04 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> Peter, All,
>
> On 2016-11-16 14:04 +0000, Peter Robinson spake thusly:
>> On Sun, Nov 13, 2016 at 8:59 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
>> > Currently, CMD_PXE is forcibly enabled in config_distro_defaults.h, so
>> > that general purpose distributions can rely on it being defined. This
>> > header is included, under conditions or not, by various archs or
>> > famillies of archs / SoCs.
>> >
>> > However, it is very possible that boards based on those SoCs will not
>> > have a physical ethernet connector at all, even if the have a MAC; for
>> > example, the Nanopi Neo AIR (sunxi H3) does not. It is also possible
>> > that network booting is absolutely not necessary for a device.
>> >
>> > However, it is not possible to disable the PXE command, as it is
>> > forcibly enabled and is non-configurable.
>> >
>> > But it turns out we already have a config option to build a distro-ready
>> > image, in the name of DISTRO_DEFAULTS.
>> >
>> > Move CMD_PXE out of the hard-coded config_distro_defaults.h into a
>> > Kconfig option, that gets selected by DISTRO_DEFAULTS when it is set.
>>
>> So this changes the default expectation on all boards that currently
>> use distro defaults?
>
> Well, I'm not totally aware of all the implications of such a change,
> but my analysis is:
>
>   - CONFIG_CMD_PXE was in include/config_distro_defaults.h, which to my
>     poor little brain means "we want that as a distro default";
>
>   - CONFIG_CMD_PXE is now enabled by CONFIG_DISTRO_DEFAULTS, which means
>     the same (and the help text confirms that).
>
> So, it looks to me that the expected behaviour does not change. In
> theory! ;-)
>
> Now, I may well have missed something, in which case I always accept
> being enlighten; just point me to the pieces I missed (totally possible,
> I'm new in U-Boot land!).
>
> I'm running buildman on all configs right now, on current master (but it
> takes a lot of time...). Once this is done, I'll re-run it on my change.
> From what I understand, buildman should point me to boards which are
> affected by the change, right? When we have that list, we can assess
> whether it is acceptable or not.

The --show-config option on buildman will tell you about boards that
have changes configs.

> Thanks! :-)
>
> Regards,
> Yann E. MORIN.
>
>> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
>> > Cc: Joe Hershberger <joe.hershberger@ni.com>
>> > ---
>> >  Kconfig                          | 1 +
>> >  cmd/Kconfig                      | 5 +++++
>> >  include/config_distro_defaults.h | 2 --
>> >  3 files changed, 6 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/Kconfig b/Kconfig
>> > index 1263d0b..5421cd3 100644
>> > --- a/Kconfig
>> > +++ b/Kconfig
>> > @@ -60,6 +60,7 @@ config DISTRO_DEFAULTS
>> >         select CMD_BOOTZ if ARM && !ARM64
>> >         select CMD_BOOTI if ARM64
>> >         select CMD_DHCP
>> > +       select CMD_PXE
>> >         select CMD_EXT2
>> >         select CMD_EXT4
>> >         select CMD_FAT
>> > diff --git a/cmd/Kconfig b/cmd/Kconfig
>> > index e339d86..95f5ce6 100644
>> > --- a/cmd/Kconfig
>> > +++ b/cmd/Kconfig
>> > @@ -496,6 +496,11 @@ config CMD_DHCP
>> >         help
>> >           Boot image via network using DHCP/TFTP protocol
>> >
>> > +config CMD_PXE
>> > +       bool "pxe"
>> > +       help
>> > +         Boot image via network using PXE protocol
>> > +
>> >  config CMD_NFS
>> >         bool "nfs"
>> >         default y
>> > diff --git a/include/config_distro_defaults.h b/include/config_distro_defaults.h
>> > index b5efab5..01cd6d9 100644
>> > --- a/include/config_distro_defaults.h
>> > +++ b/include/config_distro_defaults.h
>> > @@ -20,8 +20,6 @@
>> >  #define CONFIG_BOOTP_PXE
>> >  #define CONFIG_BOOTP_SUBNETMASK
>> >
>> > -#define CONFIG_CMD_PXE
>> > -
>> >  #define CONFIG_CMDLINE_EDITING
>> >  #define CONFIG_AUTO_COMPLETE
>> >  #define CONFIG_SYS_LONGHELP
>> > --
>> > 2.7.4
>> >
>> > _______________________________________________
>> > U-Boot mailing list
>> > U-Boot@lists.denx.de
>> > http://lists.denx.de/mailman/listinfo/u-boot
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
> | +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> '------------------------------^-------^------------------^--------------------'
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
Joe Hershberger Nov. 29, 2016, 5:42 p.m. UTC | #6
On Tue, Nov 15, 2016 at 11:01 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> Joe, All,
>
> On 2016-11-14 21:15 -0600, Joe Hershberger spake thusly:
>> On Sun, Nov 13, 2016 at 2:59 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
>> > Currently, CMD_PXE is forcibly enabled in config_distro_defaults.h, so
>> > that general purpose distributions can rely on it being defined. This
>> > header is included, under conditions or not, by various archs or
>> > famillies of archs / SoCs.
>> >
>> > However, it is very possible that boards based on those SoCs will not
>> > have a physical ethernet connector at all, even if the have a MAC; for
>> > example, the Nanopi Neo AIR (sunxi H3) does not. It is also possible
>> > that network booting is absolutely not necessary for a device.
>> >
>> > However, it is not possible to disable the PXE command, as it is
>> > forcibly enabled and is non-configurable.
>> >
>> > But it turns out we already have a config option to build a distro-ready
>> > image, in the name of DISTRO_DEFAULTS.
>> >
>> > Move CMD_PXE out of the hard-coded config_distro_defaults.h into a
>> > Kconfig option, that gets selected by DISTRO_DEFAULTS when it is set.
>> >
>> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
>> > Cc: Joe Hershberger <joe.hershberger@ni.com>
>>
>> I like this, but do you not also need to run moveconfig.py on this patch?
>
> Ack. I was not aware of this tool. I will run it and if it does change
> any defconfig, I'll repost. If nothing is changed, I'll just reply to
> this thread. OK?

Sure.

> Should the defconfig update be a separate patch, or should it be
> squashed into this one?

I think most that I have seen it is squashed (though I prefer to
create a real patch first to run it against and squash later - I know
others prefer to run it against a working directory).

> Thanks for the feedback! :-)
>
> Regards,
> Yann E. MORIN.
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
> | +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> '------------------------------^-------^------------------^--------------------'
Tom Rini Nov. 29, 2016, 9:01 p.m. UTC | #7
On Tue, Nov 29, 2016 at 11:42:34AM -0600, Joe Hershberger wrote:
> On Tue, Nov 15, 2016 at 11:01 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > Joe, All,
> >
> > On 2016-11-14 21:15 -0600, Joe Hershberger spake thusly:
> >> On Sun, Nov 13, 2016 at 2:59 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> >> > Currently, CMD_PXE is forcibly enabled in config_distro_defaults.h, so
> >> > that general purpose distributions can rely on it being defined. This
> >> > header is included, under conditions or not, by various archs or
> >> > famillies of archs / SoCs.
> >> >
> >> > However, it is very possible that boards based on those SoCs will not
> >> > have a physical ethernet connector at all, even if the have a MAC; for
> >> > example, the Nanopi Neo AIR (sunxi H3) does not. It is also possible
> >> > that network booting is absolutely not necessary for a device.
> >> >
> >> > However, it is not possible to disable the PXE command, as it is
> >> > forcibly enabled and is non-configurable.
> >> >
> >> > But it turns out we already have a config option to build a distro-ready
> >> > image, in the name of DISTRO_DEFAULTS.
> >> >
> >> > Move CMD_PXE out of the hard-coded config_distro_defaults.h into a
> >> > Kconfig option, that gets selected by DISTRO_DEFAULTS when it is set.
> >> >
> >> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> >> > Cc: Joe Hershberger <joe.hershberger@ni.com>
> >>
> >> I like this, but do you not also need to run moveconfig.py on this patch?
> >
> > Ack. I was not aware of this tool. I will run it and if it does change
> > any defconfig, I'll repost. If nothing is changed, I'll just reply to
> > this thread. OK?
> 
> Sure.
> 
> > Should the defconfig update be a separate patch, or should it be
> > squashed into this one?
> 
> I think most that I have seen it is squashed (though I prefer to
> create a real patch first to run it against and squash later - I know
> others prefer to run it against a working directory).

So I'm stepping in here.  I'm close to being able to take the original
patch as-is, the main problems with it were what I addressed in a series
earlier today, that MENU and CMD_BOOTMENU need to be migrated and a
number of platforms that are using config_distro_defaults.h and
config_distro_bootcmd.h but were not enabling CONFIG_DISTRO_DEFAULTS so
had lost various features.  With these two in, and a minor change to
this patch to have it select MENU, everything is good, and I'll take it.
diff mbox

Patch

diff --git a/Kconfig b/Kconfig
index 1263d0b..5421cd3 100644
--- a/Kconfig
+++ b/Kconfig
@@ -60,6 +60,7 @@  config DISTRO_DEFAULTS
 	select CMD_BOOTZ if ARM && !ARM64
 	select CMD_BOOTI if ARM64
 	select CMD_DHCP
+	select CMD_PXE
 	select CMD_EXT2
 	select CMD_EXT4
 	select CMD_FAT
diff --git a/cmd/Kconfig b/cmd/Kconfig
index e339d86..95f5ce6 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -496,6 +496,11 @@  config CMD_DHCP
 	help
 	  Boot image via network using DHCP/TFTP protocol
 
+config CMD_PXE
+	bool "pxe"
+	help
+	  Boot image via network using PXE protocol
+
 config CMD_NFS
 	bool "nfs"
 	default y
diff --git a/include/config_distro_defaults.h b/include/config_distro_defaults.h
index b5efab5..01cd6d9 100644
--- a/include/config_distro_defaults.h
+++ b/include/config_distro_defaults.h
@@ -20,8 +20,6 @@ 
 #define CONFIG_BOOTP_PXE
 #define CONFIG_BOOTP_SUBNETMASK
 
-#define CONFIG_CMD_PXE
-
 #define CONFIG_CMDLINE_EDITING
 #define CONFIG_AUTO_COMPLETE
 #define CONFIG_SYS_LONGHELP