diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2014-02-27 19:30:18 +0200 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2014-04-18 16:39:19 +0200 |
commit | 4076072b6c76debae0e328486d9bab71fe391db7 (patch) | |
tree | 9c0ac4e1c9e65b15d6923cf3c41e4aaccf209b8b /src/console | |
parent | fd95624dae22b00e00417dbfa1c0a4a4a40193c0 (diff) |
console: Use romstage code for ramstage and SMM
Console is arch-agnostic and there is no need for separate
implementations for romstage and ramstage.
For SMM there is console only if DEBUG_SMI is selected.
Change-Id: I7028eeeff8bfbb9c8552972436b29a7508834d87
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/5338
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Diffstat (limited to 'src/console')
-rw-r--r-- | src/console/Makefile.inc | 3 | ||||
-rw-r--r-- | src/console/console.c | 39 | ||||
-rw-r--r-- | src/console/init.c | 3 | ||||
-rw-r--r-- | src/console/printk.c | 1 |
4 files changed, 39 insertions, 7 deletions
diff --git a/src/console/Makefile.inc b/src/console/Makefile.inc index d59e44e9a6..e3b3780324 100644 --- a/src/console/Makefile.inc +++ b/src/console/Makefile.inc @@ -3,7 +3,7 @@ ramstage-y += init.c console.c ramstage-y += post.c ramstage-y += die.c -smm-$(CONFIG_DEBUG_SMI) += vtxprintf.c printk.c +smm-$(CONFIG_DEBUG_SMI) += init.c console.c vtxprintf.c printk.c smm-$(CONFIG_SMM_TSEG) += die.c romstage-$(CONFIG_EARLY_CONSOLE) += vtxprintf.c printk.c @@ -15,6 +15,7 @@ bootblock-$(CONFIG_BOOTBLOCK_CONSOLE) += vtxprintf.c printk.c bootblock-$(CONFIG_BOOTBLOCK_CONSOLE) += init.c console.c bootblock-y += die.c +$(obj)/console/init.smm.o : $(obj)/build.h $(obj)/console/init.ramstage.o : $(obj)/build.h $(obj)/console/init.romstage.o : $(obj)/build.h $(obj)/console/init.bootblock.o : $(obj)/build.h diff --git a/src/console/console.c b/src/console/console.c index 2f4eb5c3c2..e0e505c049 100644 --- a/src/console/console.c +++ b/src/console/console.c @@ -17,12 +17,13 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include <console/console.h> +#include <console/streams.h> #include <console/cbmem_console.h> #include <console/uart.h> #include <console/usb.h> #include <console/ne2k.h> #include <console/spkmodem.h> +#include <console/qemu_debugcon.h> void console_hw_init(void) { @@ -32,23 +33,51 @@ void console_hw_init(void) #if CONFIG_CONSOLE_NE2K ne2k_init(CONFIG_CONSOLE_NE2K_IO_PORT); #endif -#if CONFIG_CONSOLE_CBMEM && CONFIG_EARLY_CBMEM_INIT && !defined(__BOOT_BLOCK__) +#if CONFIG_CONSOLE_CBMEM && !defined(__BOOT_BLOCK__) && (CONFIG_EARLY_CBMEM_INIT || !defined(__PRE_RAM__)) cbmemc_init(); #endif #if CONFIG_SPKMODEM spkmodem_init(); #endif -#if CONFIG_CONSOLE_USB && CONFIG_USBDEBUG_IN_ROMSTAGE && !defined(__BOOT_BLOCK__) +#if CONFIG_CONSOLE_USB && (CONFIG_USBDEBUG_IN_ROMSTAGE || !defined(__PRE_RAM__)) usbdebug_init(); #endif +#if CONFIG_CONSOLE_QEMU_DEBUGCON + qemu_debugcon_init(); +#endif } -#ifndef __PRE_RAM__ void console_tx_byte(unsigned char byte) { +#if CONFIG_CONSOLE_SERIAL + uart_tx_byte(byte); +#endif +#if CONFIG_CONSOLE_USB && (CONFIG_USBDEBUG_IN_ROMSTAGE || !defined(__PRE_RAM__)) + usb_tx_byte(0, byte); +#endif +#if CONFIG_CONSOLE_NE2K + ne2k_append_data_byte(byte, CONFIG_CONSOLE_NE2K_IO_PORT); +#endif +#if CONFIG_CONSOLE_CBMEM && !defined(__BOOT_BLOCK__) && (CONFIG_EARLY_CBMEM_INIT || !defined(__PRE_RAM__)) + cbmemc_tx_byte(byte); +#endif +#if CONFIG_SPKMODEM + spkmodem_tx_byte(byte); +#endif +#if CONFIG_CONSOLE_QEMU_DEBUGCON + qemu_debugcon_tx_byte(byte); +#endif } void console_tx_flush(void) { -} +#if CONFIG_CONSOLE_SERIAL + uart_tx_flush(); #endif +#if CONFIG_CONSOLE_NE2K + ne2k_transmit(CONFIG_CONSOLE_NE2K_IO_PORT); +#endif +#if CONFIG_CONSOLE_USB && (CONFIG_USBDEBUG_IN_ROMSTAGE || !defined(__PRE_RAM__)) + usb_tx_flush(0); +#endif +} diff --git a/src/console/init.c b/src/console/init.c index d7c8cc36b0..8bdb2cc054 100644 --- a/src/console/init.c +++ b/src/console/init.c @@ -22,6 +22,7 @@ #include <build.h> #include <console/console.h> #include <console/uart.h> +#include <console/streams.h> #include <option.h> #if CONFIG_EARLY_PCI_BRIDGE @@ -46,7 +47,7 @@ void console_init(void) console_loglevel=CONFIG_DEFAULT_CONSOLE_LOGLEVEL; #endif -#if CONFIG_EARLY_PCI_BRIDGE +#if CONFIG_EARLY_PCI_BRIDGE && !defined(__SMM__) pci_early_bridge_init(); #endif diff --git a/src/console/printk.c b/src/console/printk.c index 2fa160b4f3..40ea4049d6 100644 --- a/src/console/printk.c +++ b/src/console/printk.c @@ -10,6 +10,7 @@ #include <smp/spinlock.h> #include <console/vtxprintf.h> #include <console/console.h> +#include <console/streams.h> #include <trace.h> DECLARE_SPIN_LOCK(console_lock) |