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 9979acb60a5eb42e08938818e5cc4fd945626555)
@@ -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);
 }
 
