This patch at least makes it compile - but I have no idea if I properly kept the semantics correct, and can't test it.
Martin
Index: puc.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/puc.c,v retrieving revision 1.35 diff -u -p -r1.35 puc.c --- puc.c 22 Jul 2013 14:52:02 -0000 1.35 +++ puc.c 23 Jul 2013 07:27:16 -0000 @@ -266,8 +266,12 @@ puc_attach(device_t parent, device_t sel sc->sc_desc->ports[i].offset, &subregion_handle); if (is_console) { sc->sc_bar_mappings[barindex].mapped = 1; - sc->sc_bar_mappings[barindex].h = subregion_handle - - sc->sc_desc->ports[i].offset; /* XXX hack */ + bus_space_subregion(sc->sc_bar_mappings[barindex].t, + subregion_handle, + sc->sc_desc->ports[i].offset, + sc->sc_bar_mappings[barindex].s + - sc->sc_desc->ports[i].offset, + &sc->sc_bar_mappings[barindex].h); } #endif if (!sc->sc_bar_mappings[barindex].mapped) {