Index: kernel/arch/ia64/include/mm/km.h
===================================================================
--- kernel/arch/ia64/include/mm/km.h	(revision 55896b6837c19f8fe505af9cbe31069aa02c168b)
+++ kernel/arch/ia64/include/mm/km.h	(revision e1ed831f96ab81a3ef1141d499a59bf8eb46eee3)
@@ -36,4 +36,16 @@
 #define KERN_ia64_KM_H_
 
+/*
+ * Be conservative and assume the minimal (3 + 51)-bit virtual address width
+ * of the Itanium CPU even if running on CPU with full 64-bit virtual
+ * address width, such as Itanium 2.
+ */
+
+#define KM_IA64_IDENTITY_START		UINT64_C(0xe000000000000000)
+#define KM_IA64_IDENTITY_SIZE		UINT64_C(0x0004000000000000)
+
+#define KM_IA64_NON_IDENTITY_START	UINT64_C(0xfffc000000000000)
+#define KM_IA64_NON_IDENTITY_SIZE	UINT64_C(0x0004000000000000)
+
 extern void km_identity_arch_init(void);
 extern void km_non_identity_arch_init(void);
Index: kernel/arch/ia64/src/mm/km.c
===================================================================
--- kernel/arch/ia64/src/mm/km.c	(revision 55896b6837c19f8fe505af9cbe31069aa02c168b)
+++ kernel/arch/ia64/src/mm/km.c	(revision e1ed831f96ab81a3ef1141d499a59bf8eb46eee3)
@@ -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_IA64_IDENTITY_START;
+	config.identity_size = KM_IA64_IDENTITY_SIZE;	
 }
 
 void km_non_identity_arch_init(void)
 {
+	km_non_identity_span_add(KM_IA64_NON_IDENTITY_START,
+	    KM_IA64_NON_IDENTITY_SIZE);
 }
 
