Index: Makefile
===================================================================
--- Makefile	(revision ca603c65f03aaab160382aee0c8ce92b4dadce50)
+++ Makefile	(revision a1c7827af984370e76d121c012b0cd38ddb523d5)
@@ -42,9 +42,16 @@
 
 ifeq ($(ARCH), amd64)
-	DIRS += pci
+	DIRS += pci \
+		kbd
 endif
 ifeq ($(ARCH), ia32)
 	DIRS += pci \
 		kbd
+endif
+ifeq ($(ARCH), mips32)
+	DIRS += kbd
+endif
+ifeq ($(ARCH), mips32eb)
+	DIRS += kbd
 endif
 
Index: init/init.c
===================================================================
--- init/init.c	(revision ca603c65f03aaab160382aee0c8ce92b4dadce50)
+++ init/init.c	(revision a1c7827af984370e76d121c012b0cd38ddb523d5)
@@ -365,5 +365,5 @@
 //	test_slam();
 //	test_as_send();
-	test_pci();
+//	test_pci();
 	test_kbd();
 
Index: kbd/arch/mips32/include/kbd.h
===================================================================
--- kbd/arch/mips32/include/kbd.h	(revision ca603c65f03aaab160382aee0c8ce92b4dadce50)
+++ kbd/arch/mips32/include/kbd.h	(revision a1c7827af984370e76d121c012b0cd38ddb523d5)
@@ -30,5 +30,6 @@
 #define __mips32_KBD_H__
 
-void kbd_arch_init(void);
+int kbd_arch_init(void);
+int kbd_arch_process(int scan_code);
 
 #endif
Index: kbd/arch/mips32/src/kbd.c
===================================================================
--- kbd/arch/mips32/src/kbd.c	(revision ca603c65f03aaab160382aee0c8ce92b4dadce50)
+++ kbd/arch/mips32/src/kbd.c	(revision a1c7827af984370e76d121c012b0cd38ddb523d5)
@@ -29,4 +29,5 @@
 #include <arch/kbd.h>
 #include <ipc.h>
+#include <key_buffer.h>
 
 irq_cmd_t msim_cmds[1] = {
@@ -39,8 +40,13 @@
 };
 
-void kbd_arch_init(void)
+int kbd_arch_init(void)
 {
 	ipc_register_irq(2, &msim_kbd);
+	return 1;
 }
 
-
+int kbd_arch_process(int scan_code)
+{
+	key_buffer_push(scan_code);
+	return 	1;
+}
Index: kbd/include/arch
===================================================================
--- kbd/include/arch	(revision ca603c65f03aaab160382aee0c8ce92b4dadce50)
+++ kbd/include/arch	(revision a1c7827af984370e76d121c012b0cd38ddb523d5)
@@ -1,1 +1,1 @@
-../arch/ia32/include
+../arch/mips32/include
