diff options
| -rw-r--r-- | common/console.c | 23 | ||||
| -rw-r--r-- | doc/README.silent | 14 | ||||
| -rw-r--r-- | include/env_callback.h | 7 | 
3 files changed, 40 insertions, 4 deletions
| diff --git a/common/console.c b/common/console.c index 270170b3d..bf7317869 100644 --- a/common/console.c +++ b/common/console.c @@ -73,6 +73,29 @@ static int on_console(const char *name, const char *value, enum env_op op,  }  U_BOOT_ENV_CALLBACK(console, on_console); +#ifdef CONFIG_SILENT_CONSOLE +static int on_silent(const char *name, const char *value, enum env_op op, +	int flags) +{ +#ifndef CONFIG_SILENT_CONSOLE_UPDATE_ON_SET +	if (flags & H_INTERACTIVE) +		return 0; +#endif +#ifndef CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC +	if ((flags & H_INTERACTIVE) == 0) +		return 0; +#endif + +	if (value != NULL) +		gd->flags |= GD_FLG_SILENT; +	else +		gd->flags &= ~GD_FLG_SILENT; + +	return 0; +} +U_BOOT_ENV_CALLBACK(silent, on_silent); +#endif +  #ifdef CONFIG_SYS_CONSOLE_IS_IN_ENV  /*   * if overwrite_console returns 1, the stdin, stderr and stdout diff --git a/doc/README.silent b/doc/README.silent index a26e3df0d..70202cece 100644 --- a/doc/README.silent +++ b/doc/README.silent @@ -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: diff --git a/include/env_callback.h b/include/env_callback.h index 9d2d2c9bf..f52e133f1 100644 --- a/include/env_callback.h +++ b/include/env_callback.h @@ -34,6 +34,12 @@  #define CONFIG_ENV_CALLBACK_LIST_STATIC  #endif +#ifdef CONFIG_SILENT_CONSOLE +#define SILENT_CALLBACK "silent:silent," +#else +#define SILENT_CALLBACK +#endif +  /*   * This list of callback bindings is static, but may be overridden by defining   * a new association in the ".callbacks" environment variable. @@ -42,6 +48,7 @@  	"baudrate:baudrate," \  	"bootfile:bootfile," \  	"loadaddr:loadaddr," \ +	SILENT_CALLBACK \  	"stdin:console,stdout:console,stderr:console," \  	CONFIG_ENV_CALLBACK_LIST_STATIC |