[U-Boot] [PATCH v3 0/5] env: Add support for environment files

Wolfgang Denk wd at denx.de
Sat Oct 26 22:26:12 CEST 2013


Dear Simon,

In message <1382763563-1483-1-git-send-email-sjg at chromium.org> you wrote:
> (Note that Wolfgang is looking at a way of adjusting the environment
> within a U-Boot binary - this series could fit with that but aims to
> improve the creation of the initial default environment).
> 
> At present U-Boot environment variables, and thus scripts, are defined
> by CONFIG_EXTRA_ENV_SETTINGS. It is painful to add large amounts of text
> to this file and dealing with quoting and newlines is harder than it
> should be. It would be better if we could just type the script into a
> text file and have it included by U-Boot.

I think we need to be very clear hear about what these patches are
actually doing.  Many users might easily confise the default
environment that gets statically built into the U-Boot binary (and
that cannot be changed at runtime) with the working environment that
gets saved to some persistent storage and is loaded when booting.

This is especially important as there are boards where, depending on
which state of the boot process you are in, one or the other mightbe
in effect (there used to be boards, and probably still are, where full
environment access was not possible in the SPL [or whatever it was
named then], so you were using the default settings initially, and the
real environment only later - which can be extremely confusing - just
think of thigs like console baudrate settings etc.

> This series adds a feature that brings in a .env file associated with the
> board config, if present. To use it, create a file in a board/<vendor>/env
> directory called <board>.env (or common.env if you want the same
> environment for all boards for that vendor).

I understand these patches are trying to improve the way how we
initialize the CONFIG_EXTRA_ENV_SETTINGS setting in the _default_
environment _at build time_, right?  I feel this should be made
really clear in both the Subject: and in the commit message.


Hm...  what was your reason for stopping half-way?  Setting only
CONFIG_EXTRA_ENV_SETTINGS this way seems inconsequent to me.  Why do
we not initialize the whole default environment like this?


> The environment variables should be of the form "var=value". Values can
> extend to multiple lines. See the README under 'Environment Variables:'
> for more information and an example.

I am afraid I dislike the current proposal - see comments to that
patch.

> After discussion on the mailing list the .emv file was moved from
> include/configs to board/. See here:

".emv"?  Guess this is a typo?

> Another discussion was compatibility with the environment commands
> 'env export -t' and 'env import -t'. This series permits these to be used
> and the environment is exported and imported as expected. I have dropped

I can't see how this would work - the examples given in yout README
patch definitely cannot be imported using "env import -t", which is
the reason why I dislike the proposed format.


Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"In Christianity neither morality nor religion come into contact with
reality at any point."                          - Friedrich Nietzsche


More information about the U-Boot mailing list