[U-Boot] [PATCH] cmd_nvedit.c: setenv_hex must prefix hex with '0x'
Wolfgang Denk
wd at denx.de
Fri Oct 4 23:35:19 CEST 2013
Dear Tom Rini,
In message <1380901758-30360-1-git-send-email-trini at ti.com> you wrote:
> setenv_hex is only called with hex values, but does not prefix the
> strings with '0x', as in general U-Boot assumes hex values not decimal
> values, and this saves space in the environment. However, some
> functions such as 'load' take some values that are most easily described
> in hex (load address) and decimal (size, offset within a file).
>
> This can lead to the situation where, for example, spl export is run,
> which leads to a call of setenv_hex of the fdtaddr, which will be re-set
> in the environment. Then 'saveenv' may be run (after updating other
> parts of the environment for falcon mode), causing an invalid for 'load'
> fdtaddr to be saved to the environment and leading to future boots to
> fail if using 'load' to read the fdt file.
I think this is not a correct way to fix the issues at hand.
All U-Boot (with the single unfortunate exception of the "sleep"
command) defaults to hex input - that's what's documented, and what
people have always been using for many, many years. Applying your
patch means that we modify just a single use case, while setting the
same environment variables from the command line (without the leading
0x) would still trigger a problem.
I understand that the actual cause of these issues is commit 3f83c87
"fs: fix number base behaviour change in fatload/ext*load". Reviewing
this patch I think that it should have never been applied. The fact
that "load" and "fatload" / "ext*load" behave differently are reason
enough to reject this patch. "load" should just behave like every
other command, and default to hex input.
I think we should NAK your patch, and suggest to fix the problem by
reverting commit 3f83c87 and making "load" default to hex input mode.
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
Landing: a controlled mid-air collision with a planet.
More information about the U-Boot
mailing list