Index: kernel/arch/sparc64/src/drivers/sgcn.c
===================================================================
--- kernel/arch/sparc64/src/drivers/sgcn.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
+++ kernel/arch/sparc64/src/drivers/sgcn.c	(revision 81c8d54932b8d433d80c1e2cc7f3bb31def15d79)
@@ -162,17 +162,8 @@
 
 /**
- * Registers the physical area of the SRAM so that the userspace SGCN
- * driver can map it. Moreover, it sets some sysinfo values (SRAM address
- * and SRAM size).
- */
-static void register_sram_parea(uintptr_t sram_begin_physical)
-{
-	static parea_t sram_parea;
-	sram_parea.pbase = sram_begin_physical;
-	sram_parea.vbase = (uintptr_t) sram_begin;
-	sram_parea.frames = MAPPED_AREA_SIZE / FRAME_SIZE;
-	sram_parea.cacheable = false;
-	ddi_parea_register(&sram_parea);
-	
+ * Set some sysinfo values (SRAM address and SRAM size).
+ */
+static void register_sram(uintptr_t sram_begin_physical)
+{
 	sysinfo_set_item_val("sram.area.size", NULL, MAPPED_AREA_SIZE);
 	sysinfo_set_item_val("sram.address.physical", NULL,
@@ -212,5 +203,5 @@
 	sram_begin = hw_map(sram_begin_physical, MAPPED_AREA_SIZE);
 	
-	register_sram_parea(sram_begin_physical);
+	register_sram(sram_begin_physical);
 }
 
Index: kernel/arch/sparc64/src/mm/frame.c
===================================================================
--- kernel/arch/sparc64/src/mm/frame.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
+++ kernel/arch/sparc64/src/mm/frame.c	(revision 81c8d54932b8d433d80c1e2cc7f3bb31def15d79)
@@ -42,4 +42,5 @@
 
 uintptr_t last_frame = NULL;
+uintptr_t end_frame = NULL;
 
 /** Create memory zones according to information stored in bootinfo.
@@ -81,4 +82,5 @@
 	}
 	
+	end_frame = last_frame;
 }
 
Index: kernel/arch/sparc64/src/mm/page.c
===================================================================
--- kernel/arch/sparc64/src/mm/page.c	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
+++ kernel/arch/sparc64/src/mm/page.c	(revision 81c8d54932b8d433d80c1e2cc7f3bb31def15d79)
@@ -148,5 +148,5 @@
 		    sizemap[order].pagesize_code, true, false);
 	
-#ifdef CONFIG_SMP	
+#ifdef CONFIG_SMP
 		/*
 		 * Second, save the information about the mapping for APs.
@@ -165,5 +165,10 @@
 }
 
+void hw_area(uintptr_t *physaddr, pfn_t *frames)
+{
+	*physaddr = end_frame;
+	*frames = ADDR2PFN(0x7ffffffffff - end_frame);
+}
+
 /** @}
  */
-
