[coreboot] Patch set updated for coreboot: 8ca59b3 console: Only print romstage messages with EARLY_CONSOLE enabled.

Hung-Te Lin (hungte@chromium.org) gerrit at coreboot.org
Thu Feb 7 11:40:03 CET 2013


Hung-Te Lin (hungte at chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2300

-gerrit

commit 8ca59b3bb6ce791404d465fadda841ef1c93697b
Author: Hung-Te Lin <hungte at chromium.org>
Date:   Wed Feb 6 21:51:15 2013 +0800

    console: Only print romstage messages with EARLY_CONSOLE enabled.
    
    Revise console source file dependency (especially for EARLY_CONSOLE) and
    interpret printk/console_init according to EARLY_CONSOLE setting (no-ops if
    EARLY_CONSOLE is not defined).
    
    Verified to boot on x86/qemu and armv7/snow. Disabling EARLY_CONSOLE correctly
    stops romstage messages on x86/qemu (armv7/snow needs more changes to work).
    
    Change-Id: Idbbd3a26bc1135c9d3ae282aad486961fb60e0ea
    Signed-off-by: Hung-Te Lin <hungte at chromium.org>
---
 src/arch/x86/lib/Makefile.inc |  2 +-
 src/console/Makefile.inc      |  9 ++++-----
 src/console/console.c         |  6 ++++--
 src/include/console/console.h | 11 +++++++++++
 src/include/uart.h            |  4 ++--
 5 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/src/arch/x86/lib/Makefile.inc b/src/arch/x86/lib/Makefile.inc
index f4dc8b8..49d7e9e 100644
--- a/src/arch/x86/lib/Makefile.inc
+++ b/src/arch/x86/lib/Makefile.inc
@@ -10,7 +10,7 @@ ramstage-y += memcpy.c
 ramstage-y += ebda.c
 ramstage-y += rom_media.c
 
-romstage-y += romstage_console.c
+romstage-$(CONFIG_EARLY_CONSOLE) += romstage_console.c
 romstage-y += cbfs_and_run.c
 romstage-y += memset.c
 romstage-y += memcpy.c
diff --git a/src/console/Makefile.inc b/src/console/Makefile.inc
index 8e6037a..9499180 100644
--- a/src/console/Makefile.inc
+++ b/src/console/Makefile.inc
@@ -9,14 +9,13 @@ smm-y += printk.c
 smm-y += vtxprintf.c
 smm-$(CONFIG_SMM_TSEG) += die.c
 
-romstage-y += vtxprintf.c
-romstage-$(CONFIG_EARLY_CONSOLE) += console.c
+romstage-$(CONFIG_EARLY_CONSOLE) += vtxprintf.c
+romstage-y += console.c
 romstage-y += post.c
 romstage-y += die.c
 
-# TODO Add vtxprintf.c only when early console is required.
-bootblock-y += vtxprintf.c
-bootblock-$(CONFIG_EARLY_CONSOLE) += console.c
+bootblock-$(CONFIG_EARLY_CONSOLE) += vtxprintf.c
+bootblock-y += console.c
 bootblock-y += die.c
 
 ramstage-$(CONFIG_CONSOLE_SERIAL8250) += uart8250_console.c
diff --git a/src/console/console.c b/src/console/console.c
index d4b4b88..aec711b 100644
--- a/src/console/console.c
+++ b/src/console/console.c
@@ -99,10 +99,10 @@ int console_tst_byte(void)
 
 #else // __PRE_RAM__   ^^^ NOT defined   vvv defined
 
-#include <uart.h>
-
 void console_init(void)
 {
+#if CONFIG_EARLY_CONSOLE
+
 #if CONFIG_USBDEBUG
 	enable_usbdebug(CONFIG_USBDEBUG_DEFAULT_PORT);
 	early_usbdebug_init();
@@ -127,5 +127,7 @@ void console_init(void)
 		COREBOOT_BUILD
 		" starting...\n";
 	print_info(console_test);
+
+#endif /* CONFIG_EARLY_CONSOLE */
 }
 #endif
diff --git a/src/include/console/console.h b/src/include/console/console.h
index edd49e0..496571b 100644
--- a/src/include/console/console.h
+++ b/src/include/console/console.h
@@ -74,6 +74,15 @@ void mainboard_post(u8 value);
 void __attribute__ ((noreturn)) die(const char *msg);
 int do_printk(int msg_level, const char *fmt, ...) __attribute__((format(printf, 2, 3)));
 
+#if defined(__PRE_RAM__) && !CONFIG_EARLY_CONSOLE
+
+static inline void printk(int LEVEL, const char *fmt, ...);
+static inline void printk(int LEVEL, const char *fmt, ...) {
+	/* Do nothing. */
+}
+
+#else /* defined(__PRE_RAM__) && !CONFIG_EARLY_CONSOLE */
+
 #undef WE_CLEANED_UP_ALL_SIDE_EFFECTS
 /* We saw some strange effects in the past like coreboot crashing while
  * disabling cache as ram for a maximum console log level of 6 and above while
@@ -109,6 +118,8 @@ int do_printk(int msg_level, const char *fmt, ...) __attribute__((format(printf,
 	} while(0)
 #endif
 
+#endif /* defined(__PRE_RAM__) && !CONFIG_EARLY_CONSOLE */
+
 #define print_emerg(STR)         printk(BIOS_EMERG,  "%s", (STR))
 #define print_alert(STR)         printk(BIOS_ALERT,  "%s", (STR))
 #define print_crit(STR)          printk(BIOS_CRIT,   "%s", (STR))
diff --git a/src/include/uart.h b/src/include/uart.h
index 2a72575..e424496 100644
--- a/src/include/uart.h
+++ b/src/include/uart.h
@@ -26,7 +26,7 @@
 #ifndef UART_H
 #define UART_H
 
-#if CONFIG_CONSOLE_SERIAL8250
+#if CONFIG_CONSOLE_SERIAL8250 || CONFIG_CONSOLE_SERIAL8250MEM
 #include <uart8250.h>
 #endif
 
@@ -34,7 +34,7 @@
 #include <cpu/samsung/exynos5-common/uart.h>
 #endif
 
-#ifndef __ROMCC__
+#if !defined(__ROMCC__) && CONFIG_CONSOLE_SERIAL_UART
 unsigned char uart_rx_byte(void);
 void uart_tx_byte(unsigned char data);
 void uart_tx_flush(void);



More information about the coreboot mailing list