- Initial checkin of the freebios2 tree
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@784 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
75
src/console/console.c
Normal file
75
src/console/console.c
Normal file
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Bootstrap code for the INTEL
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
#include <arch/io.h>
|
||||
#include <console/console.h>
|
||||
#include <string.h>
|
||||
#include <pc80/mc146818rtc.h>
|
||||
|
||||
|
||||
static int initialized;
|
||||
|
||||
/* initialize the console */
|
||||
void console_init(void)
|
||||
{
|
||||
struct console_driver *driver;
|
||||
if(get_option(&console_loglevel, "debug_level"))
|
||||
console_loglevel=DEFAULT_CONSOLE_LOGLEVEL;
|
||||
|
||||
for(driver = console_drivers; driver < econsole_drivers; driver++) {
|
||||
if (!driver->init)
|
||||
continue;
|
||||
driver->init();
|
||||
}
|
||||
initialized = 1;
|
||||
}
|
||||
|
||||
static void __console_tx_byte(unsigned char byte)
|
||||
{
|
||||
struct console_driver *driver;
|
||||
for(driver = console_drivers; driver < econsole_drivers; driver++) {
|
||||
driver->tx_byte(byte);
|
||||
}
|
||||
}
|
||||
|
||||
void console_tx_flush(void)
|
||||
{
|
||||
struct console_driver *driver;
|
||||
for(driver = console_drivers; driver < econsole_drivers; driver++) {
|
||||
if (!driver->tx_flush)
|
||||
continue;
|
||||
driver->tx_flush();
|
||||
}
|
||||
}
|
||||
|
||||
void console_tx_byte(unsigned char byte)
|
||||
{
|
||||
if (!initialized)
|
||||
return;
|
||||
if (byte == '\n')
|
||||
__console_tx_byte('\r');
|
||||
__console_tx_byte(byte);
|
||||
}
|
||||
|
||||
/*
|
||||
* Write POST information
|
||||
*/
|
||||
void post_code(uint8_t value)
|
||||
{
|
||||
#ifdef CONFIG_SERIAL_POST
|
||||
printk_info("POST: 0x%02x\n", value);
|
||||
#elsif !define(NO_POST)
|
||||
outb(value, 0x80);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Report a fatal error */
|
||||
void die(char *msg)
|
||||
{
|
||||
printk_emerg("%s", msg);
|
||||
post_code(0xff);
|
||||
while (1); /* Halt */
|
||||
}
|
Reference in New Issue
Block a user