console: Squelch console output from AP CPUs in romstage

Add Kconfig option SQUELCH_EARLY_SMP and have it enabled by
default.

Console drivers have unpredictable results if multiple threads
attempt to share same resources without spinlock. Serial UARTs
have not had huge problems, only distorted output, but those
relying on cache-as-ram (CBMEM and usbdebug) may require this.

Change-Id: I7f406fdea7b6dc6a341c4da2fab56f7b7ff568b4
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/3854
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@google.com>
This commit is contained in:
Kyösti Mälkki 2013-08-12 23:29:57 +03:00
parent 7037840ece
commit 361cd8153d
2 changed files with 20 additions and 1 deletions

View File

@ -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);

View File

@ -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