Comments
Patch
@@ -303,9 +303,25 @@ int _do_env_set(int flag, int argc, char * const argv[])
/* Delete only ? */
if (argc < 3 || argv[2] == NULL) {
int rc = hdelete_r(name, &env_htab);
+
+#if defined(CONFIG_SILENT_CONSOLE) && \
+ defined(CONFIG_SILENT_CONSOLE_UPDATE_ON_SET)
+ if (strcmp(name, "silent") == 0) {
+ /* silent is deleted */
+ gd->flags &= ~GD_FLG_SILENT;
+ }
+#endif
return !rc;
}
+#if defined(CONFIG_SILENT_CONSOLE) && \
+ defined(CONFIG_SILENT_CONSOLE_UPDATE_ON_SET)
+ if (strcmp(name, "silent") == 0) {
+ /* silent is added */
+ gd->flags |= GD_FLG_SILENT;
+ }
+#endif
+
/*
* Insert / replace new value
*/
@@ -245,6 +245,14 @@ void env_relocate(void)
} else {
env_relocate_spec();
}
+
+#if defined(CONFIG_SILENT_CONSOLE) && \
+ defined(CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC)
+ if (getenv("silent") != NULL)
+ gd->flags |= GD_FLG_SILENT;
+ else
+ gd->flags &= ~GD_FLG_SILENT;
+#endif
}
#ifdef CONFIG_AUTO_COMPLETE
@@ -1,9 +1,15 @@
The config option CONFIG_SILENT_CONSOLE can be used to quiet messages
on the console. If the option has been enabled, the output can be
-silenced by setting the environment variable "silent". The variable
-is latched into the global data at an early stage in the boot process
-so deleting it with "setenv" will not take effect until the system is
-restarted.
+silenced by setting the environment variable "silent".
+
+- CONFIG_SILENT_CONSOLE_UPDATE_ON_SET
+ When the "silent" variable is changed with env set, the change
+ will take effect immediately
+
+- CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC
+ Some environments are not available until relocation (e.g. NAND)
+ so this will make the value in the flash env take effect at
+ relocation.
The following actions are taken if "silent" is set at boot time:
The silent variable now updates the global data flag anytime it is changed as well as after the env relocation (in case its value is different from the default env in such cases as NAND env) Signed-off-by: Joe Hershberger <joe.hershberger@ni.com> --- common/cmd_nvedit.c | 16 ++++++++++++++++ common/env_common.c | 8 ++++++++ doc/README.silent | 14 ++++++++++---- 3 files changed, 34 insertions(+), 4 deletions(-)