
Hello Wolfgang,
On 07/28/2018 03:56 PM, Wolfgang Denk wrote:
Dear Yaniv,
In message 20180727153444.5602-1-yaniv.levinsky@compulab.co.il you wrote:
U-Boot fails to load read-only variables from storage after a reset. It happens because the environment hash table prevents creating read-only variables unless the H_FORCE flag is passed.
This is NOT a good idea. "env import" should respect read-only settings in exactly the same way as "env set" does. Please keep in minf that the user my set a variable to read-only exactly just to prevent if from bein (accidentially) overwritten when importing an (not exactly know) set of environment settings. Your patch would kill any such protection.
IMO the correct approach would be to add a "-f" flag to "env import" and the, and ONLY then, also set the H_FORCE flag.
Naked-by: Wolfgang Denk wd@denx.de
Best regards,
Wolfgang Denk
Thank you for reviewing the patch.
The command "env import" should of course respect access restriction flags.
Confusingly, the function env_import() in env/common.c has nothing to do with the implementation of the "env import" command. This is done entirely by do_env_import() in cmd/nvedit.c.
To the best of my knowledge, the function env_import() is used only by storage devices to load the environment on boot. In this scenario, I think we do need to ignore access restriction flags. Otherwise, read-only variables won't load from storage with the rest of the environment.
Please correct me if I'm wrong.
Thanks, Yaniv