[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