Index: kernel/arch/mips32/include/mm/km.h
===================================================================
--- kernel/arch/mips32/include/mm/km.h	(revision e1ed831f96ab81a3ef1141d499a59bf8eb46eee3)
+++ kernel/arch/mips32/include/mm/km.h	(revision bc428e23afb77940e4c15db93c361ee6efc12ac7)
@@ -36,4 +36,13 @@
 #define KERN_mips32_KM_H_
 
+#define KM_MIPS32_KSEG0_START	UINT32_C(0x80000000)
+#define KM_MIPS32_KSEG0_SIZE	UINT32_C(0x20000000)
+
+#define KM_MIPS32_KSSEG_START	UINT32_C(0xc0000000)
+#define KM_MIPS32_KSSEG_SIZE	UINT32_C(0x20000000)
+
+#define KM_MIPS32_KSEG3_START	UINT32_C(0xe0000000)
+#define KM_MIPS32_KSEG3_SIZE	UINT32_C(0x20000000)
+
 extern void km_identity_arch_init(void);
 extern void km_non_identity_arch_init(void);
Index: kernel/arch/mips32/src/mm/km.c
===================================================================
--- kernel/arch/mips32/src/mm/km.c	(revision e1ed831f96ab81a3ef1141d499a59bf8eb46eee3)
+++ kernel/arch/mips32/src/mm/km.c	(revision bc428e23afb77940e4c15db93c361ee6efc12ac7)
@@ -32,11 +32,17 @@
 
 #include <arch/mm/km.h>
+#include <mm/km.h>
+#include <config.h>
 
 void km_identity_arch_init(void)
 {
+	config.identity_base = KM_MIPS32_KSEG0_START;
+	config.identity_size = KM_MIPS32_KSEG0_SIZE;
 }
 
 void km_non_identity_arch_init(void)
 {
+	km_non_identity_span_add(KM_MIPS32_KSSEG_START, KM_MIPS32_KSSEG_SIZE);
+	km_non_identity_span_add(KM_MIPS32_KSEG0_START, KM_MIPS32_KSEG0_SIZE);
 }
 
