[U-Boot-Users] RFC: hidden environment variables
wd at denx.de
Tue Apr 24 02:06:00 CEST 2007
In message <462D3F00.10103 at freescale.com> you wrote:
> I don't like the idea of an environment variable that the user can edit but shouldn't.
> Every times the user does 'print', it shows up. "Look, but don't touch" is not a good
> user interface paradigm.
Actually it may be useful, though.
> If I write code that stores data in an internal format, especially one that's subject to
> change, of course I know better than the user what's good for him. If the user
Sorry, but this is a pretty arrogant position. You don't know what
the user want's to do. You cannot know that. And you stop him from
doing clever things.
Just to give you one example: we use a linear search for environment
variables. Some of them are important for the initialization of
U-Boot (like "baudrate"), others are probably completely unused for
normal boot operations. Especially on slow devices like EEPROM on an
I2C bus the boot time depends a lot on the order of the variables -
ther ecan be differences of 5...10 seconds between having "baudrate"
the first or the last variable in your envrionment. So it is a
perfectly sensible optimization procedure to run a script that
performs a "printenv" command, sort the variables by some criteria,
and uses a series of "setenv" commands to erase and re-create the
Maybe this is not a very good example; only few people (perfromance-
crazy beancounters like me) will ever do that. But it explains what I
mean: I don't intend to do anything to your variables, I'm not going
to change them in any way, yet I need to be able to display them by
using printenv and re-writing them using setenv.
Otherwise your modification will restict my freedom to work with the
system like I want to do it.
> manipulates the data incorrectly when he's been told (via the documentation) not to touch
> it, then the code is just exposing itself to more crashes.
No, not the code. The user.
With the same argument we could demand that the protect and the erase
commands be disabled, because the user can be so stupid to erase the
U-Boot image in flash.
> How do I not support setenv() if the data is in an environment variable? If the variable
You do not support it, it's just there.
> I need is called "jumpers", then what's to stop the user from just doing "setenv jumpers
> 'blablabla'" and breaking my code?
He doesn't break your code. He breaks his board. He has many other
ways to do this already.
DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk
Office: Kirchenstr. 5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"There are things that are so serious that you can only joke about
them" - Heisenberg
More information about the U-Boot