diff options
-rw-r--r-- | src/arch/x86/lib/romstage_console.c | 9 | ||||
-rw-r--r-- | src/console/Kconfig | 12 |
2 files changed, 20 insertions, 1 deletions
diff --git a/src/arch/x86/lib/romstage_console.c b/src/arch/x86/lib/romstage_console.c index 2e743adc17..1c3141ccb8 100644 --- a/src/arch/x86/lib/romstage_console.c +++ b/src/arch/x86/lib/romstage_console.c @@ -31,7 +31,9 @@ #if CONFIG_SPKMODEM #include <console/spkmodem.h> #endif - +#if CONFIG_SQUELCH_EARLY_SMP +#include <cpu/x86/lapic.h> +#endif void console_tx_byte(unsigned char byte) { @@ -86,6 +88,11 @@ int do_printk(int msg_level, const char *fmt, ...) return 0; } +#if CONFIG_SQUELCH_EARLY_SMP + if (!boot_cpu()) + return 0; +#endif + va_start(args, fmt); i = vtxprintf(console_tx_byte, fmt, args); va_end(args); diff --git a/src/console/Kconfig b/src/console/Kconfig index 1d050f7113..c5e5f28449 100644 --- a/src/console/Kconfig +++ b/src/console/Kconfig @@ -14,6 +14,18 @@ config EARLY_CONSOLE help Use console during early (pre-RAM) boot stages +config SQUELCH_EARLY_SMP + bool "Squelch AP CPUs from early console." + default y + depends on EARLY_CONSOLE + help + When selected only the BSP CPU will output to early console. + + Console drivers have unpredictable behaviour if multiple threads + attempt to share the same resources without a spinlock. + + If unsure, say Y. + config CONSOLE_SERIAL bool "Serial port console output" default y |