Index: kernel/generic/include/config.h
===================================================================
--- kernel/generic/include/config.h	(revision 622f40971c4de54afef879c8d7d1bc1e522942ee)
+++ kernel/generic/include/config.h	(revision 55896b6837c19f8fe505af9cbe31069aa02c168b)
@@ -88,8 +88,11 @@
 	size_t stack_size;
 
+	bool identity_configured;
 	/** Base address of the kernel identity mapped memory. */
 	uintptr_t identity_base;
 	/** Size of the kernel identity mapped memory. */
-	size_t identity_size;	    
+	size_t identity_size;
+
+	bool non_identity_configured;   
 } config_t;
 
Index: kernel/generic/src/main/main.c
===================================================================
--- kernel/generic/src/main/main.c	(revision 622f40971c4de54afef879c8d7d1bc1e522942ee)
+++ kernel/generic/src/main/main.c	(revision 55896b6837c19f8fe505af9cbe31069aa02c168b)
@@ -89,5 +89,8 @@
 
 /** Global configuration structure. */
-config_t config;
+config_t config = {
+	.identity_configured = false,
+	.non_identity_configured = false
+};
 
 /** Initial user-space tasks */
Index: kernel/generic/src/mm/km.c
===================================================================
--- kernel/generic/src/mm/km.c	(revision 622f40971c4de54afef879c8d7d1bc1e522942ee)
+++ kernel/generic/src/mm/km.c	(revision 55896b6837c19f8fe505af9cbe31069aa02c168b)
@@ -37,8 +37,12 @@
 
 #include <mm/km.h>
+#include <arch/mm/km.h>
+#include <config.h>
 
 /** Architecture dependent setup of identity-mapped kernel memory. */
 void km_identity_init(void)
 {
+	km_identity_arch_init();
+	config.identity_configured = true;
 }
 
@@ -46,4 +50,6 @@
 void km_non_identity_init(void)
 {
+	km_non_identity_arch_init();
+	config.non_identity_configured = true;
 }
 
