added rx support
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1410 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
@ -52,6 +52,31 @@ void console_tx_byte(unsigned char byte)
|
||||
__console_tx_byte(byte);
|
||||
}
|
||||
|
||||
unsigned char console_rx_byte(void)
|
||||
{
|
||||
struct console_driver *driver;
|
||||
if (!initialized)
|
||||
return 0;
|
||||
for(driver = console_drivers; driver < econsole_drivers; driver++)
|
||||
if (driver->tst_byte)
|
||||
break;
|
||||
if (driver == econsole_drivers)
|
||||
return 0;
|
||||
while (!driver->tst_byte());
|
||||
return driver->rx_byte();
|
||||
}
|
||||
|
||||
int console_tst_byte(void)
|
||||
{
|
||||
struct console_driver *driver;
|
||||
if (!initialized)
|
||||
return 0;
|
||||
for(driver = console_drivers; driver < econsole_drivers; driver++)
|
||||
if (driver->tst_byte)
|
||||
return driver->tst_byte();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Write POST information
|
||||
*/
|
||||
|
@ -16,4 +16,6 @@ static void logbuf_tx_byte(unsigned char byte)
|
||||
static struct console_driver __console = {
|
||||
.init = 0,
|
||||
.tx_byte = logbuf_tx_byte,
|
||||
.rx_byte = 0,
|
||||
.tst_byte = 0,
|
||||
};}
|
||||
|
@ -43,8 +43,20 @@ void ttyS0_tx_byte(unsigned char data)
|
||||
uart8250_tx_byte(TTYS0_BASE, data);
|
||||
}
|
||||
|
||||
unsigned char ttyS0_rx_byte(void)
|
||||
{
|
||||
return uart8250_rx_byte(TTYS0_BASE);
|
||||
}
|
||||
|
||||
int ttyS0_tst_byte(unsigned char data)
|
||||
{
|
||||
return uart8250_can_rx_byte(TTYS0_BASE);
|
||||
}
|
||||
|
||||
static struct console_driver uart8250_console __console = {
|
||||
.init = ttyS0_init,
|
||||
.tx_byte = ttyS0_tx_byte,
|
||||
.rx_byte = ttyS0_rx_byte,
|
||||
.tst_byte = ttyS0_tst_byte,
|
||||
};
|
||||
|
||||
|
@ -97,4 +97,6 @@ static void vga_tx_byte(unsigned char byte)
|
||||
struct console_driver {
|
||||
.init = vga_init,
|
||||
.tx_byte = vga_tx_byte,
|
||||
.rx_byte = 0,
|
||||
.tst_byte = 0,
|
||||
};
|
||||
|
Reference in New Issue
Block a user