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);
 
