Dear Simon,

In message <[email protected]> you wrote:
>
> +For example, for snapper9260 you would create a text file called
> +board/bluewater/env/snapper9260.env containing the environment text.
> +
> +>>>
> +bootcmd=
> +     if [ -z ${tftpserverip} ]; then
> +             echo "Use 'setenv tftpserverip a.b.c.d' to set IP address."
> +     fi
> +
> +     usb start; setenv autoload n; bootp;
> +     tftpboot ${tftpserverip}:
> +     bootm
> +failed=
> +     echo boot failed - please check your image
> +<<<
> +
> +The resulting environment can be exported and importing using the
> +'env export/import -t' commands.

I think this statement is misleading.  It reads as if thois text coul
actually be imported using "env import -t", which is not correct.  And
the result of an "env export -t" of equivalent command settings will
look pretty much different, too.

I can see why you like such a "beautified" text format, but I don;t
think you are doing anybody a favour here.  Can we not rather use
_exactly_ the same text format as U-Boot uses with it's import /
export commands?

This would make it _much_ easier to experiment on a system and modify
the environment until it fits all the requirements and passes all
tests, and then export it as a text file and use this directly
(without editing) for the input needed here?

...

> --- /dev/null
> +++ b/tools/scripts/env2string.awk
> @@ -0,0 +1,48 @@
> +#
> +# (C) Copyright 2013 Google, Inc
> +#
> +# SPDX-License-Identifier:   GPL-2.0+
> +#
> +# Sed script to parse a text file containing an environment and convert it
> +# to a C string which can be compiled into U-Boot.

That doesn't look like sed to me, looks more like awk :-)

> +     # Is this the start of a new environment variable?
> +     if (match($0, "^([^ =][^ =]*)=(.*)", arr)) {

I think this is a bit naive...

Example (using notation as exported by U-Boot using "env export -t"):

        foo=setenv xxx\
        one=1;setenv yyy\
        two=2;setenv zzz\
        three=3

> +     # Print out all the variables
> +     for (var in vars) {
> +             print var "=" vars[var] "\\0";
> +     }

I think it should not be difficult to find examples that would result
incorrect output.

I guess this needs more work - but then - why define a new format at
all?  Why not use what U-Boot uses itself?

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: [email protected]
One essential to success is that you desire be an all-obsessing  one,
your thoughts and aims be co-ordinated, and your energy be concentra-
ted and applied without letup.
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to