Index: HelenOS.config
===================================================================
--- HelenOS.config	(revision 3296df5ebf486ef213eaea03ce982d78f1997fa9)
+++ HelenOS.config	(revision 24b06199ddb9251689407d23f467fc0d487f39d1)
@@ -428,5 +428,5 @@
 
 % PC keyboard support
-! [CONFIG_HID_IN=generic&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_PC_KBD (y/n)
+! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_PC_KBD (y/n)
 
 % PC keyboard support
@@ -457,6 +457,12 @@
 ! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=serial)&PLATFORM=ia64&MACHINE=i460GX] CONFIG_NS16550 (y/n)
 
-% Support for NS16550 controller
-! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=serial)&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_NS16550 (y/n)
+% Support for NS16550 controller (kernel console)
+! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=serial|CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&(PLATFORM=ia32|PLATFORM=amd64)] CONFIG_NS16550_KCON (y/n)
+
+% Use NS16550 controller as serial input (kernel console)
+! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=serial)&(PLATFORM=ia32|PLATFORM=amd64)&CONFIG_NS16550_KCON=y] CONFIG_NS16550 (y)
+
+% Use NS16550 controller as dummy serial output (kernel console)
+! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&(PLATFORM=ia32|PLATFORM=amd64)&CONFIG_NS16550_KCON=y] CONFIG_NS16550_DSRLNOUT (y)
 
 % Support for ARM926 on-chip UART
@@ -485,5 +491,5 @@
 
 % Dummy serial line output
-! [CONFIG_MIPS_PRN=y|CONFIG_ARM_PRN=y] CONFIG_DSRLNOUT (y)
+! [CONFIG_MIPS_PRN=y|CONFIG_ARM_PRN=y|CONFIG_NS16550_DSRLNOUT=y] CONFIG_DSRLNOUT (y)
 
 % Serial line input module
Index: kernel/arch/amd64/src/amd64.c
===================================================================
--- kernel/arch/amd64/src/amd64.c	(revision 3296df5ebf486ef213eaea03ce982d78f1997fa9)
+++ kernel/arch/amd64/src/amd64.c	(revision 24b06199ddb9251689407d23f467fc0d487f39d1)
@@ -55,4 +55,5 @@
 #include <genarch/kbrd/kbrd.h>
 #include <genarch/srln/srln.h>
+#include <genarch/drivers/dsrln/dsrlnout.h>
 #include <genarch/multiboot/multiboot.h>
 #include <genarch/multiboot/multiboot2.h>
@@ -234,4 +235,14 @@
 	}
 #endif
+
+#ifdef CONFIG_NS16550_DSRLNOUT
+	/*
+	 * Initialize dummy serial output to the ns16550.
+	 */
+	outdev_t *dsrlndev = dsrlnout_init(NS16550_BASE);
+	if (dsrlndev) {
+		stdout_wire(dsrlndev);
+	}
+#endif
 	
 	if (irqs_info != NULL)
Index: kernel/arch/ia32/src/ia32.c
===================================================================
--- kernel/arch/ia32/src/ia32.c	(revision 3296df5ebf486ef213eaea03ce982d78f1997fa9)
+++ kernel/arch/ia32/src/ia32.c	(revision 24b06199ddb9251689407d23f467fc0d487f39d1)
@@ -56,4 +56,5 @@
 #include <genarch/kbrd/kbrd.h>
 #include <genarch/srln/srln.h>
+#include <genarch/drivers/dsrln/dsrlnout.h>
 #include <genarch/multiboot/multiboot.h>
 #include <genarch/multiboot/multiboot2.h>
@@ -189,4 +190,14 @@
 #endif
 	
+#ifdef CONFIG_NS16550_DSRLNOUT
+	/*
+	 * Initialize dummy serial output to the ns16550.
+	 */
+	outdev_t *dsrlndev = dsrlnout_init(NS16550_BASE);
+	if (dsrlndev) {
+		stdout_wire(dsrlndev);
+	}
+#endif
+	
 	if (irqs_info != NULL)
 		sysinfo_set_item_val(irqs_info, NULL, true);
