[U-Boot] [PATCH 2/2] bootm: Move silencing of linux console to deprecated config option.

Doug Anderson dianders at chromium.org
Tue Jan 10 20:16:58 CET 2012


If you would like the old behavior of having bootm modify the bootargs
to silence the linux console when CONFIG_SILENT_CONSOLE is defined,
you now need to define the config CONFIG_DEPRECATED_SILENT_LINUX_CONSOLE.
A previous change already added this new config to all known users of
CONFIG_SILENT_CONSOLE.

Signed-off-by: Doug Anderson <dianders at chromium.org>
---
 README             |    5 ++---
 common/cmd_bootm.c |   10 +++++-----
 doc/README.silent  |   13 ++++++++++---
 3 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/README b/README
index 7916777..9843dd1 100644
--- a/README
+++ b/README
@@ -606,9 +606,8 @@ The following options need to be configured:
 		environment 'console=serial'.
 
 		When CONFIG_SILENT_CONSOLE is defined, all console
-		messages (by U-Boot and Linux!) can be silenced with
-		the "silent" environment variable. See
-		doc/README.silent for more information.
+		messages can be silenced with the "silent" environment
+		variable. See doc/README.silent for more information.
 
 - Console Baudrate:
 		CONFIG_BAUDRATE - in bps
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index d5745b1..8d1899e 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -83,8 +83,8 @@ extern flash_info_t flash_info[]; /* info for FLASH chips */
 static int do_imls(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
 #endif
 
-#ifdef CONFIG_SILENT_CONSOLE
-static void fixup_silent_linux(void);
+#ifdef CONFIG_DEPRECATED_SILENT_LINUX_CONSOLE
+static void fixup_silent_linux(void) __attribute__ ((deprecated));
 #endif
 
 static image_header_t *image_get_kernel(ulong img_addr, int verify);
@@ -673,7 +673,7 @@ int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 	show_boot_progress(8);
 
-#ifdef CONFIG_SILENT_CONSOLE
+#ifdef CONFIG_DEPRECATED_SILENT_LINUX_CONSOLE
 	if (images.os.os == IH_OS_LINUX)
 		fixup_silent_linux();
 #endif
@@ -1228,7 +1228,7 @@ U_BOOT_CMD(
 /*******************************************************************/
 /* helper routines */
 /*******************************************************************/
-#ifdef CONFIG_SILENT_CONSOLE
+#ifdef CONFIG_DEPRECATED_SILENT_LINUX_CONSOLE
 static void fixup_silent_linux(void)
 {
 	char buf[256], *start, *end;
@@ -1259,7 +1259,7 @@ static void fixup_silent_linux(void)
 	setenv("bootargs", buf);
 	debug("after silent fix-up: %s\n", buf);
 }
-#endif /* CONFIG_SILENT_CONSOLE */
+#endif /* CONFIG_DEPRECATED_SILENT_LINUX_CONSOLE */
 
 
 /*******************************************************************/
diff --git a/doc/README.silent b/doc/README.silent
index a26e3df..8b4f892 100644
--- a/doc/README.silent
+++ b/doc/README.silent
@@ -15,6 +15,13 @@ The following actions are taken if "silent" is set at boot time:
    suppressed automatically. Make sure to enable "nulldev" by
    #defining CONFIG_SYS_DEVICE_NULLDEV in your board config file.
 
- - When booting a linux kernel, the "bootargs" are fixed up so that
-   the argument "console=" will be in the command line, no matter how
-   it was set in "bootargs" before.
+
+The config option CONFIG_SILENT_CONSOLE previously also caused u-boot
+to silence the Linux console (also based on the "silent" environment
+variable) by modifying the "bootargs" so that the argument "console="
+would be in the command line no matter how it was set in "bootargs"
+before.  That behavior is now relegated to the config option
+CONFIG_DEPRECATED_SILENT_LINUX_CONSOLE with the warning that using
+the option opens you up to a buffer overrun if your linux bootargs
+can be >256 bytes.  A non-deprecated solution is to use scripts to
+dynamically construct your "console=" argument.
-- 
1.7.3.1



More information about the U-Boot mailing list