[RFC PATCH] tools: env: Add an option to have an empty default environment

Chris Packham judge.packham at gmail.com
Wed Aug 19 09:27:35 CEST 2020


On Tue, 18 Aug 2020, 11:02 PM Stefano Babic, <sbabic at denx.de> wrote:

> Hi Chris,
>
> On 13.08.20 03:37, Chris Packham wrote:
> > When building envtools via tools-only_defconfig the builtin defaults
> > are based on options in the defconfig. For example:
> >
> >   bootcmd=bootp; setenv bootargs root=/dev/nfs
> nfsroot=${serverip}:${rootpath}
> ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; bootm
> >   bootdelay=2
> >   baudrate=115200
> >   stdin=serial,cros-ec-keyb,usbkbd
> >   stdout=serial,vidconsole
> >   stderr=serial,vidconsole
> >   ethaddr=00:00:11:22:33:44
> >   eth3addr=00:00:11:22:33:45
> >   eth5addr=00:00:11:22:33:46
> >   eth6addr=00:00:11:22:33:47
> >   ipaddr=1.2.3.4
> >   bootm_size=0x10000000
> >   kernel_addr_r=0x1000000
> >   fdt_addr_r=0xc00000
> >   ramdisk_addr_r=0x2000000
> >   scriptaddr=0x1000
> >   pxefile_addr_r=0x2000
> >
> > These may or may not be sensible for any particular target. Rather than
> > trying to have a set of defaults that work for every target add a config
> > option to make the default environment completely empty.
> >
> > Signed-off-by: Chris Packham <judge.packham at gmail.com>
> > ---
>
> Which is the added value compared to use CONFIG_USE_DEFAULT_ENV_FILE=y
> and adding your file with no variables ?
>

Long story short that was what I tried first but I was having trouble
making it work with tools-only_defconfig. But I think the point remains,
there's just no sane set of defaults that can be built-in to a generic
fw_setenv tool.


> Best regards,
> Stefano
>
> >
> >  configs/tools-only_defconfig | 1 +
> >  env/Kconfig                  | 7 +++++++
> >  include/env_default.h        | 2 ++
> >  3 files changed, 10 insertions(+)
> >
> > diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig
> > index a853abf2b8fc..0ddd0518ef9a 100644
> > --- a/configs/tools-only_defconfig
> > +++ b/configs/tools-only_defconfig
> > @@ -12,6 +12,7 @@ CONFIG_BOOTP_DNS2=y
> >  CONFIG_OF_CONTROL=y
> >  CONFIG_OF_HOSTFILE=y
> >  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> > +CONFIG_EMPTY_DEFAULT_ENV=y
> >  CONFIG_BOOTP_SEND_HOSTNAME=y
> >  CONFIG_IP_DEFRAG=y
> >  # CONFIG_ACPIGEN is not set
> > diff --git a/env/Kconfig b/env/Kconfig
> > index af4d9cbaa4d8..f7860f01cc16 100644
> > --- a/env/Kconfig
> > +++ b/env/Kconfig
> > @@ -614,6 +614,13 @@ config DEFAULT_ENV_FILE
> >         containing key=value pairs, blank lines and lines beginning
> >         with # are ignored.
> >
> > +config EMPTY_DEFAULT_ENV
> > +     bool "Create an empty default environment"
> > +     help
> > +       Create an empty default environment. This is intended to be
> > +       used when building generic target tools and no sensible
> > +       default that can be included.
> > +
> >  config ENV_VARS_UBOOT_RUNTIME_CONFIG
> >       bool "Add run-time information to the environment"
> >       help
> > diff --git a/include/env_default.h b/include/env_default.h
> > index 8a0c3057f0aa..859188a8e7c9 100644
> > --- a/include/env_default.h
> > +++ b/include/env_default.h
> > @@ -23,6 +23,7 @@ static char default_environment[] = {
> >  const uchar default_environment[] = {
> >  #endif
> >  #ifndef CONFIG_USE_DEFAULT_ENV_FILE
> > +#ifndef CONFIG_EMPTY_DEFAULT_ENV
> >  #ifdef       CONFIG_ENV_CALLBACK_LIST_DEFAULT
> >       ENV_CALLBACK_VAR "=" CONFIG_ENV_CALLBACK_LIST_DEFAULT "\0"
> >  #endif
> > @@ -107,6 +108,7 @@ const uchar default_environment[] = {
> >  #endif
> >  #ifdef       CONFIG_EXTRA_ENV_SETTINGS
> >       CONFIG_EXTRA_ENV_SETTINGS
> > +#endif
> >  #endif
> >       "\0"
> >  #else /* CONFIG_USE_DEFAULT_ENV_FILE */
> >
>
>
> --
> =====================================================================
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
> =====================================================================
>


More information about the U-Boot mailing list