Index: kernel/arch/ia64/include/mm/tlb.h
===================================================================
--- kernel/arch/ia64/include/mm/tlb.h	(revision 013c4d666a79f5b3ee840b780dc07c7530965584)
+++ kernel/arch/ia64/include/mm/tlb.h	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
@@ -35,7 +35,4 @@
 #ifndef KERN_ia64_TLB_H_
 #define KERN_ia64_TLB_H_
-
-#define tlb_arch_init()
-#define tlb_print()
 
 #include <arch/mm/page.h>
Index: kernel/arch/ia64/src/mm/page.c
===================================================================
--- kernel/arch/ia64/src/mm/page.c	(revision 013c4d666a79f5b3ee840b780dc07c7530965584)
+++ kernel/arch/ia64/src/mm/page.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
@@ -28,5 +28,5 @@
  */
 
-/** @addtogroup ia64mm	
+/** @addtogroup ia64mm
  * @{
  */
@@ -49,4 +49,8 @@
 #include <memstr.h>
 #include <align.h>
+#include <ddi/ddi.h>
+
+/** Physical memory area for devices. */
+static parea_t dev_area;
 
 static void set_environment(void);
@@ -275,8 +279,9 @@
 }
 
-void hw_area(uintptr_t *physaddr, pfn_t *frames)
-{
-	*physaddr = end_frame;
-	*frames = ADDR2PFN(0x7fffffffffffffffUL - end_frame);
+void hw_area(void)
+{
+	dev_area.pbase = end_frame;
+	dev_area.frames = SIZE2FRAMES(0x7fffffffffffffffUL - end_frame);
+	ddi_parea_register(&dev_area);
 }
 
Index: kernel/arch/ia64/src/mm/tlb.c
===================================================================
--- kernel/arch/ia64/src/mm/tlb.c	(revision 013c4d666a79f5b3ee840b780dc07c7530965584)
+++ kernel/arch/ia64/src/mm/tlb.c	(revision 9979acb60a5eb42e08938818e5cc4fd945626555)
@@ -750,4 +750,12 @@
 }
 
+void tlb_arch_init(void)
+{
+}
+
+void tlb_print(void)
+{
+}
+
 /** @}
  */
