summaryrefslogtreecommitdiffstats
path: root/src/arch
diff options
context:
space:
mode:
authorDaniel Verkamp2009-06-23 22:57:05 +0200
committerMichael Brown2009-06-24 00:09:01 +0200
commitcb9700ef6f5ea2db575d9a7c91c74fb5756fea48 (patch)
tree7f0b07ea0d5adb343cf3ceabcb803ae26b695dff /src/arch
parent[pxe] Fix interoperability with the Symantec (undipd) DOS UNDI driver (diff)
downloadipxe-cb9700ef6f5ea2db575d9a7c91c74fb5756fea48.tar.gz
ipxe-cb9700ef6f5ea2db575d9a7c91c74fb5756fea48.tar.xz
ipxe-cb9700ef6f5ea2db575d9a7c91c74fb5756fea48.zip
[comboot] Implement INT 22h AX=000Bh (Get Serial Console Configuration)
Signed-off-by: Michael Brown <mcb30@etherboot.org>
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/i386/interface/syslinux/comboot_call.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/arch/i386/interface/syslinux/comboot_call.c b/src/arch/i386/interface/syslinux/comboot_call.c
index 30fb49a1..08fd1736 100644
--- a/src/arch/i386/interface/syslinux/comboot_call.c
+++ b/src/arch/i386/interface/syslinux/comboot_call.c
@@ -39,6 +39,8 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <gpxe/init.h>
#include <gpxe/image.h>
#include <usr/imgmgmt.h>
+#include "config/console.h"
+#include "config/serial.h"
/** The "SYSLINUX" version string */
static char __data16_array ( syslinux_version, [] ) = "gPXE " VERSION;
@@ -456,8 +458,14 @@ static __asmcall void int22 ( struct i386_all_regs *ix86 ) {
break;
case 0x000B: /* Get Serial Console Configuration */
- /* FIXME: stub */
+#if defined(CONSOLE_SERIAL) && !defined(COMPRESERVE)
+ ix86->regs.dx = COMCONSOLE;
+ ix86->regs.cx = 115200 / COMSPEED;
+ ix86->regs.bx = 0;
+#else
ix86->regs.dx = 0;
+#endif
+
ix86->flags &= ~CF;
break;