DOS resets the serial ports reported by the BIOS.  This can mess up
debugging and timing when the serial baud rate changes on the debug
port.  The new "etc/advertise-serial-debug-port" option allows one to
suppress the debug serial port from the normal list of serial ports
the BIOS reports to DOS.

Signed-off-by: Kevin O'Connor <[email protected]>
---
 src/serial.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/serial.c b/src/serial.c
index 9b6d29f..00c6eb7 100644
--- a/src/serial.c
+++ b/src/serial.c
@@ -9,6 +9,7 @@
 #include "bregs.h" // struct bregs
 #include "hw/serialio.h" // SEROFF_IER
 #include "output.h" // debug_enter
+#include "romfile.h" // romfile_loadint
 #include "stacks.h" // yield
 #include "util.h" // serial_setup
 
@@ -20,6 +21,9 @@
 static u16
 detect_serial(u16 port, u8 timeout, u8 count)
 {
+    if (CONFIG_DEBUG_SERIAL && port == CONFIG_DEBUG_SERIAL_PORT
+        && !romfile_loadint("etc/advertise-serial-debug-port", 1))
+        return 0;
     outb(0x02, port+SEROFF_IER);
     u8 ier = inb(port+SEROFF_IER);
     if (ier != 0x02)
-- 
1.8.3.1


_______________________________________________
SeaBIOS mailing list
[email protected]
http://www.seabios.org/mailman/listinfo/seabios

Reply via email to