Index: kernel/arch/sparc64/Makefile.inc
===================================================================
--- kernel/arch/sparc64/Makefile.inc	(revision 08fed0ad9e4bea3fef001e2f6f14c85e82781cb2)
+++ kernel/arch/sparc64/Makefile.inc	(revision 421c8338127caee7f13ab5e70216f4ed042e8b22)
@@ -77,5 +77,6 @@
 	arch/$(KARCH)/src/drivers/kbd.c \
 	arch/$(KARCH)/src/drivers/sgcn.c \
-	arch/$(KARCH)/src/drivers/pci.c
+	arch/$(KARCH)/src/drivers/pci.c \
+	arch/$(KARCH)/src/drivers/fhc.c
 
 ifeq ($(CONFIG_FB),y)
@@ -94,7 +95,2 @@
 		arch/$(KARCH)/src/mm/tsb.c
 endif
-
-ifdef CONFIG_Z8530
-	ARCH_SOURCES += \
-		arch/$(KARCH)/src/drivers/fhc.c
-endif
Index: kernel/arch/sparc64/src/console.c
===================================================================
--- kernel/arch/sparc64/src/console.c	(revision 08fed0ad9e4bea3fef001e2f6f14c85e82781cb2)
+++ kernel/arch/sparc64/src/console.c	(revision 421c8338127caee7f13ab5e70216f4ed042e8b22)
@@ -63,32 +63,27 @@
 {
 #ifdef CONFIG_FB
-	ofw_tree_property_t *prop;
-	ofw_tree_node_t *screen;
-	ofw_tree_node_t *keyboard;
+	ofw_tree_property_t *prop_scr = ofw_tree_getprop(aliases, "screen");
+	if (!prop_scr)
+		panic("Cannot find property 'screen'.");
+	if (!prop_scr->value)
+		panic("Cannot find screen alias.");
+	ofw_tree_node_t *screen = ofw_tree_lookup(prop_scr->value);
+	if (!screen)
+		panic("Cannot find %s.", prop_scr->value);
 	
-	prop = ofw_tree_getprop(aliases, "screen");
-	if (!prop)
-		panic("Cannot find property 'screen'.");
-	if (!prop->value)
-		panic("Cannot find screen alias.");
-	screen = ofw_tree_lookup(prop->value);
-	if (!screen)
-		panic("Cannot find %s.", prop->value);
+	scr_init(screen);
+#endif
 
-	scr_init(screen);
-
-	prop = ofw_tree_getprop(aliases, "keyboard");
-	if (!prop)
+#ifdef CONFIG_SUN_KBD
+	ofw_tree_property_t *prop_kbd = ofw_tree_getprop(aliases, "keyboard");
+	if (!prop_kbd)
 		panic("Cannot find property 'keyboard'.");
-	if (!prop->value)
+	if (!prop_kbd->value)
 		panic("Cannot find keyboard alias.");
-	keyboard = ofw_tree_lookup(prop->value);
+	ofw_tree_node_t *keyboard = ofw_tree_lookup(prop_kbd->value);
 	if (!keyboard)
-		panic("Cannot find %s.", prop->value);
-
+		panic("Cannot find %s.", prop_kbd->value);
+	
 	kbd_init(keyboard);
-#else
-	panic("Standard console requires FB, "
-	      "but the kernel is not compiled with FB support.");
 #endif
 }
Index: kernel/arch/sparc64/src/drivers/kbd.c
===================================================================
--- kernel/arch/sparc64/src/drivers/kbd.c	(revision 08fed0ad9e4bea3fef001e2f6f14c85e82781cb2)
+++ kernel/arch/sparc64/src/drivers/kbd.c	(revision 421c8338127caee7f13ab5e70216f4ed042e8b22)
@@ -58,5 +58,5 @@
 kbd_type_t kbd_type = KBD_UNKNOWN;
 
-#if defined (CONFIG_Z8530) || defined (CONFIG_NS16550)
+#ifdef CONFIG_SUN_KBD
 
 /** Initialize keyboard.
@@ -169,7 +169,7 @@
 		    offset;
 		
-		indev_t *kbrdin = z8530_init(z8530, devno, inr, cir, cir_arg);
-		if (kbrdin)
-			kbrd_init(kbrdin);
+		indev_t *kbrdin_z8530 = z8530_init(z8530, devno, inr, cir, cir_arg);
+		if (kbrdin_z8530)
+			kbrd_init(kbrdin_z8530);
 		
 		/*
@@ -192,7 +192,7 @@
 		    offset;
 		
-		indev_t *kbrdin = ns16550_init(ns16550, devno, inr, cir, cir_arg);
-		if (kbrdin)
-			kbrd_init(kbrdin);
+		indev_t *kbrdin_ns16550 = ns16550_init(ns16550, devno, inr, cir, cir_arg);
+		if (kbrdin_ns16550)
+			kbrd_init(kbrdin_ns16550);
 		
 		/*
@@ -215,5 +215,6 @@
 }
 
-	#endif
+#endif
+
 /** @}
  */
