summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2013-07-16 20:10:00 -0700
committerTom Rini <trini@ti.com>2013-08-16 13:45:15 -0400
commit8d51aacd8cd99adb9e58933951602c4f43e90aa1 (patch)
treee867f1f3b33c76f040a5192a317394f9b5211fad
parent62cf11c0921a90c6bd62344f4bc069668e6c698c (diff)
downloadu-boot-imx-8d51aacd8cd99adb9e58933951602c4f43e90aa1.zip
u-boot-imx-8d51aacd8cd99adb9e58933951602c4f43e90aa1.tar.gz
u-boot-imx-8d51aacd8cd99adb9e58933951602c4f43e90aa1.tar.bz2
RFC: bootm: Add silent_linux environment variable
At present the console for linux is silent if the U-Boot console is silent, unless CONFIG_SILENT_U_BOOT_ONLY is set. I wonder if a better way would be to have an environment variable to control this? Then we can control the verbosity from scripts, and set the variable to 'no' for those boards that want Linux to boot with console output. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--README6
-rw-r--r--common/cmd_bootm.c14
2 files changed, 18 insertions, 2 deletions
diff --git a/README b/README
index 3918807..96cc466 100644
--- a/README
+++ b/README
@@ -4627,6 +4627,12 @@ List of environment variables (most likely not complete):
npe_ucode - set load address for the NPE microcode
+ silent_linux - If set then linux will be told to boot silently, by
+ changing the console to be empty. If "yes" it will be
+ made silent. If "no" it will not be made silent. If
+ unset, then it will be made silent if the U-Boot console
+ is silent.
+
tftpsrcport - If this is set, the value is used for TFTP's
UDP source port.
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 046e22f..31ec0f4 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -1384,9 +1384,19 @@ static void fixup_silent_linux(void)
char *buf;
const char *env_val;
char *cmdline = getenv("bootargs");
+ int want_silent;
- /* Only fix cmdline when requested */
- if (!(gd->flags & GD_FLG_SILENT))
+ /*
+ * Only fix cmdline when requested. The environment variable can be:
+ *
+ * no - we never fixup
+ * yes - we always fixup
+ * unset - we rely on the console silent flag
+ */
+ want_silent = getenv_yesno("silent_linux");
+ if (want_silent == 0)
+ return;
+ else if (want_silent == -1 && !(gd->flags & GD_FLG_SILENT))
return;
debug("before silent fix-up: %s\n", cmdline);