summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2009-01-03 22:09:30 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2009-01-03 22:09:30 +0000
commit61fef22cadc5cc787c12a02d60b262e09cf5d732 (patch)
treeeea8601b51c3bd739fa486daed92d7ff0c9c80b5
parent99afc494521d14340f4c89b68314b6784a258f9b (diff)
Make is possible to boot from devices on cbus(4) (when they're there and
actually work).
-rw-r--r--sys/arch/sparc64/sparc64/autoconf.c10
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);