Index: kernel/arch/amd64/include/mm/frame.h
===================================================================
--- kernel/arch/amd64/include/mm/frame.h	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
+++ kernel/arch/amd64/include/mm/frame.h	(revision 96e0748d7558e9aeb4c97ff5d520f773c406eeac)
@@ -45,4 +45,5 @@
 #ifndef __ASM__
 extern uintptr_t last_frame;
+extern uintptr_t end_frame;
 extern void frame_arch_init(void);
 extern void physmem_print(void);
Index: kernel/arch/amd64/src/mm/page.c
===================================================================
--- kernel/arch/amd64/src/mm/page.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
+++ kernel/arch/amd64/src/mm/page.c	(revision 96e0748d7558e9aeb4c97ff5d520f773c406eeac)
@@ -215,4 +215,10 @@
 }
 
+void hw_area(uintptr_t *physaddr, pfn_t *frames)
+{
+	*physaddr = end_frame;
+	*frames = ADDR2PFN(0xfffffffffffff - end_frame);
+}
+
 /** @}
  */
