diff options
author | Jason Wright <jason@cvs.openbsd.org> | 2001-09-28 22:20:49 +0000 |
---|---|---|
committer | Jason Wright <jason@cvs.openbsd.org> | 2001-09-28 22:20:49 +0000 |
commit | 79da6d2ec924cfdf612531607a5ae97264df2270 (patch) | |
tree | 8b4f0d799bd341774c3c9aed1e4d57c94693a002 /sys/arch/sparc64 | |
parent | 631d4764f659442beaade64b015f3850ccb290ce (diff) |
Hack to work around bootpaths like:
bootpath: /pci@1f,4000/ide@3,0/ata@0,0/cmdk@0,0
The val[0] of ata appears to be the channel number, and cmdk is disk
(cmdk@channel,disk)
Diffstat (limited to 'sys/arch/sparc64')
-rw-r--r-- | sys/arch/sparc64/sparc64/autoconf.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/arch/sparc64/sparc64/autoconf.c b/sys/arch/sparc64/sparc64/autoconf.c index 497513fa678..0603e75fb6f 100644 --- a/sys/arch/sparc64/sparc64/autoconf.c +++ b/sys/arch/sparc64/sparc64/autoconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: autoconf.c,v 1.12 2001/09/26 20:21:04 jason Exp $ */ +/* $OpenBSD: autoconf.c,v 1.13 2001/09/28 22:20:48 jason Exp $ */ /* $NetBSD: autoconf.c,v 1.51 2001/07/24 19:32:11 eeh Exp $ */ /* @@ -1455,6 +1455,7 @@ static struct { { "pci", BUSCLASS_PCI, "ppb" }, { "ide", BUSCLASS_PCI, "pciide" }, { "disk", BUSCLASS_NONE, "wd" }, + { "cmdk", BUSCLASS_NONE, "wd" }, { "network", BUSCLASS_NONE, "hme" }, { "SUNW,fas", BUSCLASS_NONE, "esp" }, { "SUNW,hme", BUSCLASS_NONE, "hme" }, @@ -1611,6 +1612,15 @@ device_register(dev, aux) bootpath_store(1, bp + 1); DPRINTF(ACDB_BOOTDEV, ("\t-- found bus controller %s\n", dev->dv_xname)); + if (strcmp(bp->name, "ide") == 0 && + strcmp((bp + 1)->name, "ata") == 0 && + strcmp((bp + 2)->name, "cmdk") == 0) { + if (((bp + 2)->val[0] == (bp + 1)->val[0]) && + ((bp + 1)->val[1] == 0)) { + (bp + 1)->dev = dev; + bootpath_store(1, bp + 2); + } + } return; } } else if (strcmp(dvname, "le") == 0 || |