Index: kernel/arch/sparc64/src/drivers/kbd.c
===================================================================
--- kernel/arch/sparc64/src/drivers/kbd.c	(revision d46732962adcfcbf946c2c3f032af0f7fadb285c)
+++ kernel/arch/sparc64/src/drivers/kbd.c	(revision 7b3b57171e1a38631bd24e5ecdf71edd3f1926f4)
@@ -114,6 +114,6 @@
 	size_t offset = pa - aligned_addr;
 	
-	ns16550_t *ns16550 = (ns16550_t *)
-	   (hw_map(aligned_addr, offset + size) + offset);
+	ns16550_t *ns16550 = (ns16550_t *) (km_map(aligned_addr, offset + size,
+	    PAGE_WRITE | PAGE_NOT_CACHEABLE) + offset);
 	
 	ns16550_instance_t *ns16550_instance = ns16550_init(ns16550, inr, cir, cir_arg);
Index: kernel/arch/sparc64/src/drivers/pci.c
===================================================================
--- kernel/arch/sparc64/src/drivers/pci.c	(revision d46732962adcfcbf946c2c3f032af0f7fadb285c)
+++ kernel/arch/sparc64/src/drivers/pci.c	(revision 7b3b57171e1a38631bd24e5ecdf71edd3f1926f4)
@@ -109,5 +109,6 @@
 	pci->model = PCI_SABRE;
 	pci->op = &pci_sabre_ops;
-	pci->reg = (uint64_t *) hw_map(paddr, reg[SABRE_INTERNAL_REG].size);
+	pci->reg = (uint64_t *) km_map(paddr, reg[SABRE_INTERNAL_REG].size,
+	    PAGE_WRITE | PAGE_NOT_CACHEABLE);
 
 	/*
@@ -156,5 +157,6 @@
 	pci->model = PCI_PSYCHO;
 	pci->op = &pci_psycho_ops;
-	pci->reg = (uint64_t *) hw_map(paddr, reg[PSYCHO_INTERNAL_REG].size);
+	pci->reg = (uint64_t *) km_map(paddr, reg[PSYCHO_INTERNAL_REG].size,
+	    PAGE_WRITE | PAGE_NOT_CACHEABLE);
 
 	/*
