diff options
-rw-r--r-- | sys/sparc64/sparc64/ofw_machdep.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/sparc64/sparc64/ofw_machdep.c b/sys/sparc64/sparc64/ofw_machdep.c index 016b432..05c4437 100644 --- a/sys/sparc64/sparc64/ofw_machdep.c +++ b/sys/sparc64/sparc64/ofw_machdep.c @@ -244,10 +244,14 @@ OF_decode_addr(phandle_t node, int bank, int *space, bus_addr_t *addr) /* Done with mapping. Return the bus space as used by FreeBSD. */ *addr = start; + if (OF_parent(lbus) == 0) { + *space = UPA_BUS_SPACE; + return (0); + } if (OF_getprop(lbus, "name", name, sizeof(name)) == -1) return (ENXIO); name[sizeof(name) - 1] = '\0'; - if (strcmp(name, "central") == 0) { + if (strcmp(name, "central") == 0 || strcmp(name, "upa") == 0) { *space = UPA_BUS_SPACE; return (0); } else if (strcmp(name, "pci") == 0) { |