Index: kernel/arch/arm32/include/mm/km.h
===================================================================
--- kernel/arch/arm32/include/mm/km.h	(revision 40c8c17482d672e755c855c6fd5664b0e933e483)
+++ kernel/arch/arm32/include/mm/km.h	(revision 1b478f661c486eaaf171a6561c652459502ed22f)
@@ -36,4 +36,6 @@
 #define KERN_arm32_KM_H_
 
+#include <typedefs.h>
+
 #define KM_ARM32_IDENTITY_START		UINT32_C(0x80000000)
 #define KM_ARM32_IDENTITY_SIZE		UINT32_C(0x40000000)
@@ -44,4 +46,5 @@
 extern void km_identity_arch_init(void);
 extern void km_non_identity_arch_init(void);
+extern bool km_is_non_identity_arch(uintptr_t);
 
 #endif
Index: kernel/arch/arm32/src/mm/km.c
===================================================================
--- kernel/arch/arm32/src/mm/km.c	(revision 40c8c17482d672e755c855c6fd5664b0e933e483)
+++ kernel/arch/arm32/src/mm/km.c	(revision 1b478f661c486eaaf171a6561c652459502ed22f)
@@ -34,4 +34,6 @@
 #include <mm/km.h>
 #include <config.h>
+#include <typedefs.h>
+#include <macros.h>
 
 void km_identity_arch_init(void)
@@ -47,4 +49,10 @@
 }
 
+bool km_is_non_identity_arch(uintptr_t addr)
+{
+	return iswithin(KM_ARM32_NON_IDENTITY_START,
+	    KM_ARM32_NON_IDENTITY_SIZE, addr, 1);
+}
+
 /** @}
  */
