summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/x86/lib/romstage_console.c9
-rw-r--r--src/console/Kconfig12
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