Index: boot/arch/sparc64/loader/main.c
===================================================================
--- boot/arch/sparc64/loader/main.c	(revision 48c3d504fc31a177cd3f40efea0b99148bde9b18)
+++ boot/arch/sparc64/loader/main.c	(revision 12bf33aabbb4c9c0de96d2a50f4601aff4642be2)
@@ -143,6 +143,6 @@
 		silo_ramdisk_image -= 0x400000;
 		/* Install 1:1 mapping for the ramdisk. */
-		if (ofw_map((void *)((uintptr_t)silo_ramdisk_image),
-		    (void *)((uintptr_t)silo_ramdisk_image),
+		if (ofw_map((void *)((uintptr_t) silo_ramdisk_image),
+		    (void *)((uintptr_t) silo_ramdisk_image),
 		    silo_ramdisk_size, -1) != 0) {
 			printf("Failed to map ramdisk.\n");
@@ -204,5 +204,6 @@
 		 */
 		(void) ofw_claim_phys(base + top, silo_ramdisk_size);
-		(void) ofw_map(base + top, base + top, silo_ramdisk_size, -1);
+		(void) ofw_map(bootinfo.physmem_start + base + top, base + top,
+		    silo_ramdisk_size, -1);
 		memmove(base + top, (void *)((uintptr_t)silo_ramdisk_image),
 		    silo_ramdisk_size);
@@ -254,5 +255,6 @@
 	(void) ofw_claim_phys(bootinfo.physmem_start + balloc_base,
 	    BALLOC_MAX_SIZE);
-	(void) ofw_map(balloc_base, balloc_base, BALLOC_MAX_SIZE, -1);
+	(void) ofw_map(bootinfo.physmem_start + balloc_base, balloc_base,
+	    BALLOC_MAX_SIZE, -1);
 	balloc_init(&bootinfo.ballocs, (uintptr_t)balloc_base);
 
@@ -275,3 +277,2 @@
 	    sizeof(bootinfo));
 }
-
