Index: uspace/drv/char/msim-con/msim-con.c
===================================================================
--- uspace/drv/char/msim-con/msim-con.c	(revision 59953b57828b7195c42a7c30df3c06369f96e51b)
+++ uspace/drv/char/msim-con/msim-con.c	(revision c309b18982aa8ed31fd796bcd813732f5f312e6e)
@@ -106,4 +106,10 @@
 	}
 
+	rc = pio_enable((void *)res->base, 1, (void **) &con->out_reg);
+	if (rc != EOK) {
+		ddf_msg(LVL_ERROR, "Error enabling I/O");
+		goto error;
+	}
+
 	ddf_fun_set_conn_handler(fun, msim_con_connection);
 
@@ -131,4 +137,6 @@
 		goto error;
 	}
+
+	ddf_fun_add_to_category(fun, "console");
 
 	return EOK;
@@ -157,4 +165,5 @@
 static void msim_con_putchar(msim_con_t *con, uint8_t ch)
 {
+	pio_write_8(con->out_reg, ch);
 }
 
Index: uspace/drv/char/msim-con/msim-con.h
===================================================================
--- uspace/drv/char/msim-con/msim-con.h	(revision 59953b57828b7195c42a7c30df3c06369f96e51b)
+++ uspace/drv/char/msim-con/msim-con.h	(revision c309b18982aa8ed31fd796bcd813732f5f312e6e)
@@ -39,4 +39,5 @@
 #include <async.h>
 #include <ddf/driver.h>
+#include <ddi.h>
 #include <fibril_synch.h>
 #include <io/chardev_srv.h>
@@ -66,4 +67,5 @@
 	fibril_mutex_t buf_lock;
 	fibril_condvar_t buf_cv;
+	ioport8_t *out_reg;
 } msim_con_t;
 
