Index: kernel/arch/amd64/include/mm/tlb.h
===================================================================
--- kernel/arch/amd64/include/mm/tlb.h	(revision 91825d906871fb7aacdd0e8161dca09a9de0ef6e)
+++ kernel/arch/amd64/include/mm/tlb.h	(revision 0cb9fa0b1256166b7043ccb33e483aaac3beeaba)
@@ -36,7 +36,4 @@
 #define KERN_amd64_TLB_H_
 
-#define tlb_arch_init()
-#define tlb_print()
-
 #endif
 
Index: kernel/arch/amd64/src/mm/page.c
===================================================================
--- kernel/arch/amd64/src/mm/page.c	(revision 91825d906871fb7aacdd0e8161dca09a9de0ef6e)
+++ kernel/arch/amd64/src/mm/page.c	(revision 0cb9fa0b1256166b7043ccb33e483aaac3beeaba)
@@ -35,4 +35,6 @@
 #include <arch/mm/page.h>
 #include <genarch/mm/page_pt.h>
+#include <genarch/drivers/ega/ega.h>
+#include <genarch/drivers/legacy/ia32/io.h>
 #include <arch/mm/frame.h>
 #include <mm/page.h>
@@ -47,4 +49,9 @@
 #include <panic.h>
 #include <align.h>
+#include <ddi/ddi.h>
+
+/** Physical memory area for devices. */
+static parea_t dev_area;
+static parea_t ega_area;
 
 /* Definitions for identity page mapper */
@@ -215,8 +222,13 @@
 }
 
-void hw_area(uintptr_t *physaddr, pfn_t *frames)
-{
-	*physaddr = end_frame;
-	*frames = ADDR2PFN(0xfffffffffffff - end_frame);
+void hw_area(void)
+{
+	dev_area.pbase = end_frame;
+	dev_area.frames = SIZE2FRAMES(0xfffffffffffff - end_frame);
+	ddi_parea_register(&dev_area);
+	
+	ega_area.pbase = EGA_VIDEORAM;
+	ega_area.frames = SIZE2FRAMES(EGA_VRAM_SIZE);
+	ddi_parea_register(&ega_area);
 }
 
