diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2009-01-03 22:09:30 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2009-01-03 22:09:30 +0000 |
commit | 61fef22cadc5cc787c12a02d60b262e09cf5d732 (patch) | |
tree | eea8601b51c3bd739fa486daed92d7ff0c9c80b5 /sys/arch | |
parent | 99afc494521d14340f4c89b68314b6784a258f9b (diff) |
Make is possible to boot from devices on cbus(4) (when they're there and
actually work).
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/sparc64/sparc64/autoconf.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/arch/sparc64/sparc64/autoconf.c b/sys/arch/sparc64/sparc64/autoconf.c index 6a19045ee7d..86310f25441 100644 --- a/sys/arch/sparc64/sparc64/autoconf.c +++ b/sys/arch/sparc64/sparc64/autoconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: autoconf.c,v 1.97 2008/07/21 04:35:54 todd Exp $ */ +/* $OpenBSD: autoconf.c,v 1.98 2009/01/03 22:09:29 kettenis Exp $ */ /* $NetBSD: autoconf.c,v 1.51 2001/07/24 19:32:11 eeh Exp $ */ /* @@ -75,6 +75,8 @@ #include <machine/trap.h> #include <sparc64/sparc64/cache.h> #include <sparc64/sparc64/timerreg.h> +#include <sparc64/dev/vbusvar.h> +#include <sparc64/dev/cbusvar.h> #include <dev/ata/atavar.h> #include <dev/pci/pcivar.h> @@ -1195,6 +1197,8 @@ device_register(struct device *dev, void *aux) struct mainbus_attach_args *ma = aux; struct pci_attach_args *pa = aux; struct sbus_attach_args *sa = aux; + struct vbus_attach_args *va = aux; + struct cbus_attach_args *ca = aux; struct bootpath *bp = bootpath_store(0, NULL); struct device *busdev = dev->dv_parent; const char *devname = dev->dv_cfdata->cf_driver->cd_name; @@ -1230,6 +1234,10 @@ device_register(struct device *dev, void *aux) else if (strcmp(busname, "sbus") == 0 || strcmp(busname, "dma") == 0 || strcmp(busname, "ledma") == 0) node = sa->sa_node; + else if (strcmp(busname, "vbus") == 0) + node = va->va_node; + else if (strcmp(busname, "cbus") == 0) + node = ca->ca_node; else if (strcmp(busname, "pci") == 0) node = PCITAG_NODE(pa->pa_tag); |