Can you try building a kernel with the attached diff?
Index: vgafb.c
===================================================================
RCS file: /cvs/src/sys/arch/sparc64/dev/vgafb.c,v
retrieving revision 1.52
diff -u -p -r1.52 vgafb.c
--- vgafb.c 23 Mar 2008 12:10:53 -0000 1.52
+++ vgafb.c 4 Aug 2008 22:07:27 -0000
@@ -412,13 +412,13 @@ vgafb_mmap(v, off, prot)
if (sc->sc_mmio_size == 0)
return (-1);
- if (off >= sc->sc_mem_addr &&
+ if (off >= (sc->sc_mem_addr & ~PGOFSET) &&
off < (sc->sc_mem_addr + sc->sc_mem_size))
return (bus_space_mmap(sc->sc_mem_t,
sc->sc_mem_addr, off - sc->sc_mem_addr,
prot, BUS_SPACE_MAP_LINEAR));
- if (off >= sc->sc_mmio_addr &&
+ if (off >= (sc->sc_mmio_addr & ~PGOFSET) &&
off < (sc->sc_mmio_addr + sc->sc_mmio_size))
return (bus_space_mmap(sc->sc_mem_t,
sc->sc_mmio_addr, off - sc->sc_mmio_addr,