[SeaBIOS] [PATCH] Add Kconfig option to specify which serial port when serial debugging.
Kevin O'Connor
kevin at koconnor.net
Wed May 11 05:37:52 CEST 2011
---
src/Kconfig | 6 ++++++
src/output.c | 15 +++++++--------
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/src/Kconfig b/src/Kconfig
index 0da69e6..123db01 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -371,6 +371,12 @@ menu "Debugging"
default n
help
Send debugging information to serial port.
+ config DEBUG_SERIAL_PORT
+ depends on DEBUG_SERIAL
+ hex "Serial port base address"
+ default 0x3f8
+ help
+ Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
config SCREEN_AND_DEBUG
depends on DEBUG_LEVEL != 0
diff --git a/src/output.c b/src/output.c
index 4c9f95b..7c10d33 100644
--- a/src/output.c
+++ b/src/output.c
@@ -21,7 +21,6 @@ struct putcinfo {
* Debug output
****************************************************************/
-#define DEBUG_PORT PORT_SERIAL1
#define DEBUG_TIMEOUT 100000
void
@@ -31,12 +30,12 @@ debug_serial_setup(void)
return;
// setup for serial logging: 8N1
u8 oldparam, newparam = 0x03;
- oldparam = inb(DEBUG_PORT+SEROFF_LCR);
- outb(newparam, DEBUG_PORT+SEROFF_LCR);
+ oldparam = inb(CONFIG_DEBUG_SERIAL_PORT+SEROFF_LCR);
+ outb(newparam, CONFIG_DEBUG_SERIAL_PORT+SEROFF_LCR);
// Disable irqs
u8 oldier, newier = 0;
- oldier = inb(DEBUG_PORT+SEROFF_IER);
- outb(newier, DEBUG_PORT+SEROFF_IER);
+ oldier = inb(CONFIG_DEBUG_SERIAL_PORT+SEROFF_IER);
+ outb(newier, CONFIG_DEBUG_SERIAL_PORT+SEROFF_IER);
if (oldparam != newparam || oldier != newier)
dprintf(1, "Changing serial settings was %x/%x now %x/%x\n"
@@ -50,11 +49,11 @@ debug_serial(char c)
if (!CONFIG_DEBUG_SERIAL)
return;
int timeout = DEBUG_TIMEOUT;
- while ((inb(DEBUG_PORT+SEROFF_LSR) & 0x60) != 0x60)
+ while ((inb(CONFIG_DEBUG_SERIAL_PORT+SEROFF_LSR) & 0x60) != 0x60)
if (!timeout--)
// Ran out of time.
return;
- outb(c, DEBUG_PORT+SEROFF_DATA);
+ outb(c, CONFIG_DEBUG_SERIAL_PORT+SEROFF_DATA);
}
// Make sure all serial port writes have been completely sent.
@@ -64,7 +63,7 @@ debug_serial_flush(void)
if (!CONFIG_DEBUG_SERIAL)
return;
int timeout = DEBUG_TIMEOUT;
- while ((inb(DEBUG_PORT+SEROFF_LSR) & 0x40) != 0x40)
+ while ((inb(CONFIG_DEBUG_SERIAL_PORT+SEROFF_LSR) & 0x40) != 0x40)
if (!timeout--)
// Ran out of time.
return;
--
1.7.4.4
More information about the SeaBIOS
mailing list