Index: kernel/arch/sparc64/src/drivers/scr.c
===================================================================
--- kernel/arch/sparc64/src/drivers/scr.c	(revision 965dc18d04fb8a15431d34485959f4aa8e6ec4b5)
+++ kernel/arch/sparc64/src/drivers/scr.c	(revision 20eb5e4d3d9057eaf8e976463ec55ff13ff5a8e3)
@@ -79,4 +79,5 @@
 	
 	uintptr_t fb_addr;
+	unsigned int fb_offset = 0;
 	uint32_t fb_width = 0;
 	uint32_t fb_height = 0;
@@ -168,8 +169,10 @@
 		}
 
+		fb_offset = 4 * 0x2000;
+
 		switch (fb_depth) {
 		case 8:
 			fb_scanline = fb_linebytes * (fb_depth >> 3);
-			visual = VISUAL_SB1500_PALETTE;
+			visual = VISUAL_INDIRECT_8;
 			break;
 		case 16:
@@ -226,5 +229,5 @@
 	fb_properties_t props = {
 		.addr = fb_addr,
-		.offset = 0,
+		.offset = fb_offset,
 		.x = fb_width,
 		.y = fb_height,
Index: kernel/genarch/include/fb/visuals.h
===================================================================
--- kernel/genarch/include/fb/visuals.h	(revision 965dc18d04fb8a15431d34485959f4aa8e6ec4b5)
+++ kernel/genarch/include/fb/visuals.h	(revision 20eb5e4d3d9057eaf8e976463ec55ff13ff5a8e3)
@@ -45,5 +45,4 @@
 
 #define VISUAL_BGR_0_8_8_8	6
-#define VISUAL_SB1500_PALETTE	7
 
 #endif
Index: kernel/genarch/src/fb/fb.c
===================================================================
--- kernel/genarch/src/fb/fb.c	(revision 965dc18d04fb8a15431d34485959f4aa8e6ec4b5)
+++ kernel/genarch/src/fb/fb.c	(revision 20eb5e4d3d9057eaf8e976463ec55ff13ff5a8e3)
@@ -190,24 +190,4 @@
 	*((uint8_t *) dst) = RED(rgb, 3) << 5 | GREEN(rgb, 2) << 3 |
 	    BLUE(rgb, 3);
-}
-
-static void sb1500rgb_byte8(void *dst, int rgb)
-{
-	if (RED(rgb, 1) && GREEN(rgb, 1) && BLUE(rgb, 1))
-		*((uint8_t *) dst) = 255;
-	else if (RED(rgb, 1) && GREEN(rgb, 1))
-		*((uint8_t *) dst) = 150;
-	else if (GREEN(rgb, 1) && BLUE(rgb, 1))
-		*((uint8_t *) dst) = 47;
-	else if (RED(rgb, 1) && BLUE(rgb, 1))
-		*((uint8_t *) dst) = 48;
-	else if (RED(rgb, 1))
-		*((uint8_t *) dst) = 32;
-	else if (GREEN(rgb, 1))
-		*((uint8_t *) dst) = 47;
-	else if (BLUE(rgb, 1))
-		*((uint8_t *) dst) = 2;
-	else 
-		*((uint8_t *) dst) = 1;
 }
 
@@ -467,9 +447,4 @@
 		pixelbytes = 1;
 		break;
-	case VISUAL_SB1500_PALETTE:
-		rgb2scr = sb1500rgb_byte8;
-		scr2rgb = byte8_rgb;
-		pixelbytes = 1;
-		break;
 	case VISUAL_RGB_5_5_5:
 		rgb2scr = rgb_byte555;
@@ -506,8 +481,9 @@
 	}
 	
-	unsigned int fbsize = props->scan * props->y + props->offset;
+	unsigned int fbsize = props->scan * props->y;
 	
 	/* Map the framebuffer */
-	fbaddress = (uint8_t *) hw_map((uintptr_t) props->addr, fbsize);
+	fbaddress = (uint8_t *) hw_map((uintptr_t) props->addr + props->offset,
+		fbsize);
 	fbaddress += props->offset;
 	
@@ -532,4 +508,5 @@
 	sysinfo_set_item_val("fb.visual", NULL, props->visual);
 	sysinfo_set_item_val("fb.address.physical", NULL, props->addr);
+	sysinfo_set_item_val("fb.offset", NULL, props->offset);
 	sysinfo_set_item_val("fb.invert-colors", NULL, invert_colors);
 
