diff --git a/sys/arch/sparc/dev/esp_obio.c b/sys/arch/sparc/dev/esp_obio.c index 801086566067..1faa0d3ceed7 100644 --- a/sys/arch/sparc/dev/esp_obio.c +++ b/sys/arch/sparc/dev/esp_obio.c @@ -1,4 +1,4 @@ -/* $NetBSD: esp_obio.c,v 1.4 1998/11/19 21:49:17 thorpej Exp $ */ +/* $NetBSD: esp_obio.c,v 1.5 2000/01/11 12:59:45 pk Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -174,12 +174,6 @@ espattach_obio(parent, self, aux) return; } - if (oba->oba_bp != NULL && strcmp(oba->oba_bp->name, "esp") == 0 && - oba->oba_bp->val[0] == -1 && - oba->oba_bp->val[1] == sc->sc_dev.dv_unit) - bootpath_store(1, oba->oba_bp + 1); - - /* * Set up glue for MI code early; we use some of it here. */ @@ -281,8 +275,6 @@ espattach_obio(parent, self, aux) /* Turn on target selection using the `dma' method */ ncr53c9x_dmaselect = 1; - - bootpath_store(1, NULL); } /* diff --git a/sys/arch/sparc/dev/fd.c b/sys/arch/sparc/dev/fd.c index 15a4dc7da366..94a34b1b5d72 100644 --- a/sys/arch/sparc/dev/fd.c +++ b/sys/arch/sparc/dev/fd.c @@ -1,4 +1,4 @@ -/* $NetBSD: fd.c,v 1.68 1999/11/21 15:23:01 pk Exp $ */ +/* $NetBSD: fd.c,v 1.69 2000/01/11 12:59:45 pk Exp $ */ /*- * Copyright (c) 1993, 1994, 1995 Charles M. Hannum. @@ -145,7 +145,7 @@ int fdcmatch_obio __P((struct device *, struct cfdata *, void *)); void fdcattach_mainbus __P((struct device *, struct device *, void *)); void fdcattach_obio __P((struct device *, struct device *, void *)); -void fdcattach __P((struct fdc_softc *, int, struct bootpath *)); +void fdcattach __P((struct fdc_softc *, int)); struct cfattach fdc_mainbus_ca = { sizeof(struct fdc_softc), fdcmatch_mainbus, fdcattach_mainbus @@ -339,7 +339,6 @@ fdcmatch_obio(parent, match, aux) */ struct fdc_attach_args { int fa_drive; - struct bootpath *fa_bootpath; struct fd_type *fa_deftype; }; @@ -398,7 +397,6 @@ fdcattach_mainbus(parent, self, aux) { struct fdc_softc *fdc = (void *)self; struct mainbus_attach_args *ma = aux; - struct bootpath *bp; fdc->sc_bustag = ma->ma_bustag; @@ -420,24 +418,7 @@ fdcattach_mainbus(parent, self, aux) fdc->sc_reg = (caddr_t)bh; } - bp = NULL; - if (ma->ma_bp != NULL && strcmp(ma->ma_bp->name, OBP_FDNAME) == 0) { - int v0 = ma->ma_bp->val[0]; - int v1 = ma->ma_bp->val[1]; - /* - * We can get the bootpath in several different - * formats! The faked v1 bootpath looks like /fd@0,0. - * The v2 bootpath is either just /fd0, in which case - * `bp->val[0]' will have been set to -1, or /fd@x,y - * where is the prom address specifier. - */ - if (((v0 == ma->ma_iospace) && (v1 == (int)ma->ma_paddr)) || - ((v0 == -1) && (v1 == 0)) || /* v2: /fd0 */ - ((v0 == 0) && (v1 == 0)) /* v1: /fd@0,0 */ ) - bp = ma->ma_bp; - } - - fdcattach(fdc, ma->ma_pri, bp); + fdcattach(fdc, ma->ma_pri); } void @@ -448,7 +429,6 @@ fdcattach_obio(parent, self, aux) struct fdc_softc *fdc = (void *)self; union obio_attach_args *uoba = aux; struct sbus_attach_args *sa = &uoba->uoba_sbus; - struct bootpath *bp; fdc->sc_bustag = sa->sa_bustag; @@ -470,29 +450,14 @@ fdcattach_obio(parent, self, aux) fdc->sc_reg = (caddr_t)bh; } - bp = NULL; - if (sa->sa_bp != NULL && strcmp(sa->sa_bp->name, OBP_FDNAME) == 0) { - int v0 = sa->sa_bp->val[0]; - int v1 = sa->sa_bp->val[1]; - /* - * floppy controller on obio (such as on the sun4m), - * e.g.: `/obio0/SUNW,fdtwo@0,700000'. - * We use "slot, offset" to determine if this is the - * right one. - */ - if ((v0 != sa->sa_slot) || (v1 != sa->sa_offset)) - bp = sa->sa_bp; - } - if (sa->sa_nintr != 0) - fdcattach(fdc, sa->sa_pri, bp); + fdcattach(fdc, sa->sa_pri); } void -fdcattach(fdc, pri, bp) +fdcattach(fdc, pri) struct fdc_softc *fdc; int pri; - struct bootpath *bp; { struct fdc_attach_args fa; char code; @@ -566,16 +531,12 @@ fdcattach(fdc, pri, bp) printf(" softpri %d: chip 8207%c\n", PIL_FDSOFT, code); - fa.fa_bootpath = bp; - /* physical limit: four drives per controller. */ for (fa.fa_drive = 0; fa.fa_drive < 4; fa.fa_drive++) { fa.fa_deftype = NULL; /* unknown */ fa.fa_deftype = &fd_types[0]; /* XXX */ (void)config_found(&fdc->sc_dev, (void *)&fa, fdprint); } - - bootpath_store(1, NULL); } int @@ -683,12 +644,6 @@ fdattach(parent, self, aux) fd->sc_dk.dk_driver = &fddkdriver; disk_attach(&fd->sc_dk); - /* - * We're told if we're the boot device in fdcattach(). - */ - if (fa->fa_bootpath) - fa->fa_bootpath->dev = &fd->sc_dv; - /* * Establish a mountroot_hook anyway in case we booted * with RB_ASKNAME and get selected as the boot device. diff --git a/sys/arch/sparc/dev/if_ie_obio.c b/sys/arch/sparc/dev/if_ie_obio.c index d9e88801d43e..32c5bc0023ee 100644 --- a/sys/arch/sparc/dev/if_ie_obio.c +++ b/sys/arch/sparc/dev/if_ie_obio.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_ie_obio.c,v 1.12 1999/11/13 00:32:12 thorpej Exp $ */ +/* $NetBSD: if_ie_obio.c,v 1.13 2000/01/11 12:59:46 pk Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -282,7 +282,6 @@ ie_obio_attach(parent, self, aux) bus_space_handle_t bh; bus_dma_segment_t seg; int rseg; - struct bootpath *bp; paddr_t pa; struct intrhand *ih; u_long iebase; @@ -410,9 +409,4 @@ extern void myetheraddr(u_char *); /* should be elsewhere */ ih = bus_intr_establish(oba->oba_bustag, oba->oba_pri, 0, i82586_intr, sc); - - bp = oba->oba_bp; - if (bp != NULL && strcmp(bp->name, "ie") == 0 && - sc->sc_dev.dv_unit == bp->val[1]) - bp->dev = &sc->sc_dev; } diff --git a/sys/arch/sparc/dev/if_le_obio.c b/sys/arch/sparc/dev/if_le_obio.c index ff1a09ccf8db..a7eff29820d1 100644 --- a/sys/arch/sparc/dev/if_le_obio.c +++ b/sys/arch/sparc/dev/if_le_obio.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_le_obio.c,v 1.5 1998/08/29 20:49:37 pk Exp $ */ +/* $NetBSD: if_le_obio.c,v 1.6 2000/01/11 12:59:46 pk Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -172,12 +172,6 @@ leattach_obio(parent, self, aux) return; } - if (oba->oba_bp != NULL && - strcmp(oba->oba_bp->name, le_cd.cd_name) == 0 && - sc->sc_dev.dv_unit == oba->oba_bp->val[1]) - oba->oba_bp->dev = &sc->sc_dev; - - if (bus_dmamem_alloc(lesc->sc_dmatag, MEMSIZE, NBPG, 0, &seg, 1, &rseg, BUS_DMA_NOWAIT | BUS_DMA_24BIT) != 0) { diff --git a/sys/arch/sparc/dev/obio.c b/sys/arch/sparc/dev/obio.c index 4f405cb1044d..bda4428429f5 100644 --- a/sys/arch/sparc/dev/obio.c +++ b/sys/arch/sparc/dev/obio.c @@ -1,4 +1,4 @@ -/* $NetBSD: obio.c,v 1.46 1999/06/28 22:40:15 pk Exp $ */ +/* $NetBSD: obio.c,v 1.47 2000/01/11 12:59:46 pk Exp $ */ /*- * Copyright (c) 1997,1998 The NetBSD Foundation, Inc. @@ -202,7 +202,7 @@ obioattach(parent, self, aux) sc->sc_dmatag = ma->ma_dmatag; sc->sc_intr2ipl = intr_obio2ipl; - sbus_attach_common(sc, "obio", ma->ma_node, ma->ma_bp, special4m); + sbus_attach_common(sc, "obio", ma->ma_node, special4m); } else { printf("obio on this machine?\n"); } @@ -266,7 +266,6 @@ obiosearch(parent, cf, aux) struct obio4_busattachargs *oap = aux; union obio_attach_args uoba; struct obio4_attach_args *oba = &uoba.uoba_oba4; - struct bootpath *bp; /* Check whether we're looking for a specifically named device */ if (oap->name != NULL && strcmp(oap->name, cf->cf_driver->cd_name) != 0) @@ -297,12 +296,6 @@ obiosearch(parent, cf, aux) oba->oba_paddr = cf->cf_loc[0]; oba->oba_pri = cf->cf_loc[1]; - bp = oap->ma->ma_bp; - if (bp != NULL && strcmp(bp->name, "obio") == 0) - oba->oba_bp = bp + 1; - else - oba->oba_bp = NULL; - if ((*cf->cf_attach->ca_match)(parent, cf, &uoba) == 0) return (0); diff --git a/sys/arch/sparc/dev/sbus.c b/sys/arch/sparc/dev/sbus.c index 975093ea1524..cf4dfff67a90 100644 --- a/sys/arch/sparc/dev/sbus.c +++ b/sys/arch/sparc/dev/sbus.c @@ -1,4 +1,4 @@ -/* $NetBSD: sbus.c,v 1.35 1999/04/14 09:50:01 pk Exp $ */ +/* $NetBSD: sbus.c,v 1.36 2000/01/11 12:59:46 pk Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -311,7 +311,7 @@ sbus_attach_mainbus(parent, self, aux) printf(": clock = %s MHz\n", clockfreq(sc->sc_clockfreq)); sbus_sc = sc; - sbus_attach_common(sc, "sbus", node, ma->ma_bp, NULL); + sbus_attach_common(sc, "sbus", node, NULL); } @@ -352,7 +352,7 @@ sbus_attach_iommu(parent, self, aux) sbus_sc = sc; sbuserr_handler = sbus_error; - sbus_attach_common(sc, "sbus", node, ia->iom_bp, NULL); + sbus_attach_common(sc, "sbus", node, NULL); } void @@ -378,15 +378,14 @@ sbus_attach_xbox(parent, self, aux) sc->sc_clockfreq = getpropint(node, "clock-frequency", 25*1000*1000); printf(": clock = %s MHz\n", clockfreq(sc->sc_clockfreq)); - sbus_attach_common(sc, "sbus", node, xa->xa_bp, NULL); + sbus_attach_common(sc, "sbus", node, NULL); } void -sbus_attach_common(sc, busname, busnode, bp, specials) +sbus_attach_common(sc, busname, busnode, specials) struct sbus_softc *sc; char *busname; int busnode; - struct bootpath *bp; const char * const *specials; { int node0, node, error; @@ -413,12 +412,6 @@ sbus_attach_common(sc, busname, busnode, bp, specials) sc->sc_burst &= ~SBUS_BURST_64; } - /* Propagate bootpath */ - if (bp != NULL && strcmp(bp->name, busname) == 0) - bp++; - else - bp = NULL; - /* * Collect address translations from the OBP. */ @@ -451,7 +444,7 @@ sbus_attach_common(sc, busname, busnode, bp, specials) } if (sbus_setup_attach_args(sc, sbt, sc->sc_dmatag, - node, bp, &sa) != 0) { + node, &sa) != 0) { panic("sbus_attach: %s: incomplete", sp); } (void) config_found(&sc->sc_dev, (void *)&sa, sbus_print); @@ -471,7 +464,7 @@ sbus_attach_common(sc, busname, busnode, bp, specials) continue; if (sbus_setup_attach_args(sc, sbt, sc->sc_dmatag, - node, bp, &sa) != 0) { + node, &sa) != 0) { printf("sbus_attach: %s: incomplete\n", name); continue; } @@ -481,12 +474,11 @@ sbus_attach_common(sc, busname, busnode, bp, specials) } int -sbus_setup_attach_args(sc, bustag, dmatag, node, bp, sa) +sbus_setup_attach_args(sc, bustag, dmatag, node, sa) struct sbus_softc *sc; bus_space_tag_t bustag; bus_dma_tag_t dmatag; int node; - struct bootpath *bp; struct sbus_attach_args *sa; { int n, error; @@ -500,7 +492,6 @@ sbus_setup_attach_args(sc, bustag, dmatag, node, bp, sa) sa->sa_bustag = bustag; sa->sa_dmatag = dmatag; sa->sa_node = node; - sa->sa_bp = bp; error = getprop(node, "reg", sizeof(struct sbus_reg), &sa->sa_nreg, (void **)&sa->sa_reg); diff --git a/sys/arch/sparc/dev/si.c b/sys/arch/sparc/dev/si.c index 95287e4d323e..7e6fbfdefa06 100644 --- a/sys/arch/sparc/dev/si.c +++ b/sys/arch/sparc/dev/si.c @@ -1,4 +1,4 @@ -/* $NetBSD: si.c,v 1.53 1999/10/21 13:46:06 pk Exp $ */ +/* $NetBSD: si.c,v 1.54 2000/01/11 12:59:47 pk Exp $ */ /*- * Copyright (c) 1996 The NetBSD Foundation, Inc. @@ -372,7 +372,6 @@ si_attach(parent, self, aux) ncr_sc->sc_intr_on = si_vme_intr_on; ncr_sc->sc_intr_off = si_vme_intr_off; } - bootpath_store(1, NULL); } static void @@ -385,7 +384,6 @@ sw_attach(parent, self, aux) union obio_attach_args *uoba = aux; struct obio4_attach_args *oba = &uoba->uoba_oba4; bus_space_handle_t bh; - struct bootpath *bp; sc->sc_dmatag = oba->oba_dmatag; @@ -425,18 +423,7 @@ sw_attach(parent, self, aux) printf(" pri %d\n", oba->oba_pri); - /* - * If the boot path is "sw" or "si" at the moment and it's me, then - * walk out pointer to the sub-device, ready for the config - * below. - */ - bp = oba->oba_bp; - if (bp != NULL && strcmp(bp->name, "sw") == 0 && - bp->val[0] == -1 && bp->val[1] == ncr_sc->sc_dev.dv_unit) - bootpath_store(1, bp + 1); - si_attach_common(parent, sc); - bootpath_store(1, NULL); } static void diff --git a/sys/arch/sparc/dev/vme_machdep.c b/sys/arch/sparc/dev/vme_machdep.c index c6cb041eaa17..3032003a1f3c 100644 --- a/sys/arch/sparc/dev/vme_machdep.c +++ b/sys/arch/sparc/dev/vme_machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: vme_machdep.c,v 1.21 1999/11/13 00:32:12 thorpej Exp $ */ +/* $NetBSD: vme_machdep.c,v 1.22 2000/01/11 12:59:47 pk Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -77,7 +77,6 @@ struct sparcvme_softc { volatile u_int32_t *sc_ioctags; /* VME IO-cache tag registers */ volatile u_int32_t *sc_iocflush;/* VME IO-cache flush registers */ int (*sc_vmeintr) __P((void *)); - struct bootpath *sc_bp; }; struct sparcvme_softc *sparcvme_sc;/*XXX*/ @@ -297,11 +296,6 @@ vmeattach_mainbus(parent, self, aux) sc->sc_bustag = ma->ma_bustag; sc->sc_dmatag = ma->ma_dmatag; - if (ma->ma_bp != NULL && strcmp(ma->ma_bp->name, "vme") == 0) { - sc->sc_bp = ma->ma_bp + 1; - bootpath_store(1, sc->sc_bp); - } - /* VME interrupt entry point */ sc->sc_vmeintr = vmeintr4; @@ -329,7 +323,6 @@ vmeattach_mainbus(parent, self, aux) printf("\n"); (void)config_found(self, &vba, 0); - bootpath_store(1, NULL); #endif return; } diff --git a/sys/arch/sparc/include/autoconf.h b/sys/arch/sparc/include/autoconf.h index dfa095663d6b..17c8ed2261c2 100644 --- a/sys/arch/sparc/include/autoconf.h +++ b/sys/arch/sparc/include/autoconf.h @@ -1,4 +1,4 @@ -/* $NetBSD: autoconf.h,v 1.31 1999/02/14 12:26:16 pk Exp $ */ +/* $NetBSD: autoconf.h,v 1.32 2000/01/11 13:00:36 pk Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -131,7 +131,6 @@ struct mainbus_attach_args { int ma_size; /* register physical size */ int ma_pri; /* priority (IPL) */ void *ma_promvaddr; /* PROM virtual address, if any */ - struct bootpath *ma_bp; /* used for locating boot device */ }; /* Attach arguments presented to devices by obio_attach() (sun4 only) */ @@ -141,7 +140,6 @@ struct obio4_attach_args { bus_dma_tag_t oba_dmatag; bus_addr_t oba_paddr; /* register physical address */ int oba_pri; /* interrupt priority (IPL) */ - struct bootpath *oba_bp; /* used for locating boot device */ }; union obio_attach_args { @@ -198,7 +196,9 @@ struct bootpath { struct device *dev; /* device that recognised this component */ }; +#if 0 struct bootpath *bootpath_store __P((int, struct bootpath *)); +#endif int sd_crazymap __P((int)); /* Parse a disk string into a dev_t, return device struct pointer */ @@ -212,14 +212,3 @@ void bootstrap __P((void)); struct device *getdevunit __P((char *, int)); void *findzs __P((int)); int romgetcursoraddr __P((int **, int **)); -#if 0 -/* Pass a string to the FORTH interpreter. May fail silently. */ -void rominterpret __P((char *)); -int firstchild __P((int)); -int nextsibling __P((int)); -void callrom __P((void)); -int findroot __P((void)); -int findnode __P((int, const char *)); -int opennode __P((char *)); -int node_has_property __P((int, const char *)); -#endif diff --git a/sys/arch/sparc/sparc/autoconf.c b/sys/arch/sparc/sparc/autoconf.c index 7dd4e95002f3..3c7f134b4ec5 100644 --- a/sys/arch/sparc/sparc/autoconf.c +++ b/sys/arch/sparc/sparc/autoconf.c @@ -1,4 +1,4 @@ -/* $NetBSD: autoconf.c,v 1.127 2000/01/09 20:53:30 pk Exp $ */ +/* $NetBSD: autoconf.c,v 1.128 2000/01/11 13:01:53 pk Exp $ */ /* * Copyright (c) 1996 @@ -121,6 +121,7 @@ int nbootpath; static void bootpath_build __P((void)); static void bootpath_fake __P((struct bootpath *, char *)); static void bootpath_print __P((struct bootpath *)); +static struct bootpath *bootpath_store __P((int, struct bootpath *)); int find_cpus __P((void)); /* @@ -650,12 +651,7 @@ bootpath_print(bp) /* * save or read a bootpath pointer from the boothpath store. - * - * XXX. required because of SCSI... we don't have control over the "sd" - * device, so we can't set boot device there. we patch in with - * dk_establish(), and use this to recover the bootpath. */ - struct bootpath * bootpath_store(storep, bp) int storep; @@ -670,23 +666,6 @@ bootpath_store(storep, bp) return (retval); } -/* TEMP: */ -struct bootpath *altbootpath_store(int, struct bootpath *); -struct bootpath * -altbootpath_store(storep, bp) - int storep; - struct bootpath *bp; -{ - static struct bootpath *save; - struct bootpath *retval; - - retval = save; - if (storep) - save = bp; - - return (retval); -} -/* END TEMP */ /* * Set up the sd target mappings for non SUN4 PROMs. @@ -831,8 +810,6 @@ cpu_configure() (void)spl0(); } -struct device *altbootdev; - void cpu_rootconf() { @@ -842,29 +819,8 @@ cpu_rootconf() bp = nbootpath == 0 ? NULL : &bootpath[nbootpath-1]; bootdv = bp == NULL ? NULL : bp->dev; - bootpartition = bp == NULL ? 0 : bp->val[2]; + bootpartition = bootdv == NULL ? 0 : bp->val[2]; -#if 1 - /* - * Old bootpath code no longer works now that SCSI autoconfiguration - * can be delayed. device_register() is the One True Way. - */ - bootdv = altbootdev; -#else - if (bootdv != altbootdev) { - int c; - printf("device_register boot device mismatch\n"); - printf("\tbootdv=%s\n", - bootdv==NULL?"NOT FOUND":bootdv->dv_xname); - printf("\taltbootdev=%s\n", - altbootdev==NULL?"NOT FOUND":altbootdev->dv_xname); - printf("RETURN to continue "); - cnpollc(1); - while ((c = cngetc()) != '\r' && c != '\n'); - printf("\n"); - cnpollc(0); - } -#endif setroot(bootdv, bootpartition); } @@ -1016,7 +972,7 @@ extern struct sparc_bus_space_tag mainbus_space_tag; namebuf, sizeof(namebuf))); /* Establish the first component of the boot path */ - altbootpath_store(1, bootpath); + bootpath_store(1, bootpath); /* * Locate and configure the ``early'' devices. These must be @@ -1039,14 +995,12 @@ extern struct sparc_bus_space_tag mainbus_space_tag; ma.ma_bustag = &mainbus_space_tag; ma.ma_dmatag = &mainbus_dma_tag; ma.ma_name = "obio"; - ma.ma_bp = bootpath; if (config_found(dev, (void *)&ma, mbprint) == NULL) panic("obio missing"); ma.ma_bustag = &mainbus_space_tag; ma.ma_dmatag = &mainbus_dma_tag; ma.ma_name = "vme"; - ma.ma_bp = bootpath; (void)config_found(dev, (void *)&ma, mbprint); return; } @@ -1127,9 +1081,6 @@ extern struct sparc_bus_space_tag mainbus_space_tag; if (getprop_address1(node, &ma.ma_promvaddr) != 0) continue; - /* Start at the beginning of the bootpath */ - ma.ma_bp = bootpath; - if (config_found(dev, (void *)&ma, mbprint) == NULL) panic(sp); } @@ -1177,9 +1128,6 @@ extern struct sparc_bus_space_tag mainbus_space_tag; if (getprop_address1(node, &ma.ma_promvaddr) != 0) continue; - /* Start at the beginning of the bootpath */ - ma.ma_bp = bootpath; - (void) config_found(dev, (void *)&ma, mbprint); } #endif /* SUN4C || SUN4M */ @@ -1651,18 +1599,23 @@ nail_bootdev(dev, bp) struct device *dev; struct bootpath *bp; { - /*bp->dev = dev; -* got it! */ - if (altbootdev != NULL) + + if (bp->dev != NULL) panic("device_register: already got a boot device: %s", - altbootdev->dv_xname); - altbootdev = dev; + bp->dev->dv_xname); /* - * Clear current bootpath component, so we don't spuriously + * Mark this bootpath component by linking it to the matched + * device. We pick up the device pointer in cpu_rootconf(). + */ + bp->dev = dev; + + /* + * Then clear the current bootpath component, so we don't spuriously * match similar instances on other busses, e.g. a disk on * another SCSI bus with the same target. */ - altbootpath_store(1, NULL); + bootpath_store(1, NULL); } void @@ -1670,7 +1623,7 @@ device_register(dev, aux) struct device *dev; void *aux; { - struct bootpath *bp = altbootpath_store(0, NULL); + struct bootpath *bp = bootpath_store(0, NULL); char *dvname = dev->dv_cfdata->cf_driver->cd_name; /* @@ -1719,7 +1672,7 @@ device_register(dev, aux) strcpy(bootpath[nbootpath].name, "fd"); nbootpath++; } - altbootpath_store(1, bp + 1); + bootpath_store(1, bp + 1); return; } } else if (strcmp(dvname, "le") == 0) { diff --git a/sys/arch/sparc/sparc/disksubr.c b/sys/arch/sparc/sparc/disksubr.c index fec9e9ee6fdf..c067719f7f88 100644 --- a/sys/arch/sparc/sparc/disksubr.c +++ b/sys/arch/sparc/sparc/disksubr.c @@ -1,4 +1,4 @@ -/* $NetBSD: disksubr.c,v 1.23 1999/02/14 12:42:33 pk Exp $ */ +/* $NetBSD: disksubr.c,v 1.24 2000/01/11 13:01:52 pk Exp $ */ /* * Copyright (c) 1994, 1995 Gordon W. Ross @@ -61,72 +61,12 @@ static int disklabel_bsd_to_sun __P((struct disklabel *, char *)); extern struct device *bootdv; -/* - * find the boot device (if it was a disk). we must check to see if - * unit info in saved bootpath structure matches unit info in our softc. - * note that knowing the device name (e.g. "xd0") is not useful... we - * must check the drive number (or target/lun, in the case of SCSI). - * (XXX is it worth ifdef'ing this?) - */ - void dk_establish(dk, dev) struct disk *dk; struct device *dev; { - struct bootpath *bp = bootpath_store(0, NULL); /* restore bootpath! */ - struct scsibus_softc *sbsc; - int target, lun; - - if (bp == NULL) - return; - - /* - * scsi: sd,cd - */ - if (strncmp("sd", dev->dv_xname, 2) == 0 || - strncmp("cd", dev->dv_xname, 2) == 0) { - - sbsc = (struct scsibus_softc *)dev->dv_parent; - - target = bp->val[0]; - lun = bp->val[1]; - - if (CPU_ISSUN4 && dev->dv_xname[0] == 's' && - target == 0 && sbsc->sc_link[0][0] == NULL) { - /* - * disk unit 0 is magic: if there is actually no - * target 0 scsi device, the PROM will call - * target 3 `sd0'. - * XXX - what if someone puts a tape at target 0? - */ - target = 3; /* remap to 3 */ - lun = 0; - } - - if (CPU_ISSUN4C && dev->dv_xname[0] == 's') - target = sd_crazymap(target); - - if (sbsc->sc_link[target][lun] != NULL && - sbsc->sc_link[target][lun]->device_softc == (void *)dev) { - bp->dev = dev; /* got it! */ - return; - } - } - - /* - * xd,xy - */ - if (strncmp("xd", dev->dv_xname, 2) == 0 || - strncmp("xy", dev->dv_xname, 2) == 0) { - - /* XXX - dv_unit may not be the driver number.. */ - if (dev->dv_unit == bp->val[0] && - strncmp(bp->name, dev->dv_xname, 2) == 0) { - bp->dev = dev; /* got it! */ - return; - } - } + return; } /* diff --git a/sys/arch/sparc/sparc/iommu.c b/sys/arch/sparc/sparc/iommu.c index 82f2452d1c53..91f53ec12dc3 100644 --- a/sys/arch/sparc/sparc/iommu.c +++ b/sys/arch/sparc/sparc/iommu.c @@ -1,4 +1,4 @@ -/* $NetBSD: iommu.c,v 1.37 2000/01/07 10:54:11 pk Exp $ */ +/* $NetBSD: iommu.c,v 1.38 2000/01/11 13:01:52 pk Exp $ */ /* * Copyright (c) 1996 @@ -173,7 +173,6 @@ iommu_attach(parent, self, aux) struct iommu_softc *sc = (struct iommu_softc *)self; struct mainbus_attach_args *ma = aux; int node; - struct bootpath *bp; bus_space_handle_t bh; u_int pbase, pa; int i, mmupcrsave, s; @@ -306,12 +305,6 @@ iommu_attach(parent, self, aux) sc->sc_pagesize, sc->sc_range >> 20); - /* Propagate bootpath */ - if (ma->ma_bp != NULL && strcmp(ma->ma_bp->name, "iommu") == 0) - bp = ma->ma_bp + 1; - else - bp = NULL; - iommu_dvmamap = extent_create("iommudvma", IOMMU_DVMA_BASE, IOMMU_DVMA_END, M_DEVBUF, 0, 0, EX_NOWAIT); @@ -332,7 +325,6 @@ iommu_attach(parent, self, aux) ia.iom_dmatag = &iommu_dma_tag; ia.iom_node = node; - ia.iom_bp = bp; ia.iom_reg = NULL; getprop(node, "reg", sizeof(struct sbus_reg), diff --git a/sys/arch/sparc/sparc/iommuvar.h b/sys/arch/sparc/sparc/iommuvar.h index 21309f831413..d774c910dfe3 100644 --- a/sys/arch/sparc/sparc/iommuvar.h +++ b/sys/arch/sparc/sparc/iommuvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: iommuvar.h,v 1.4 1998/09/19 15:47:18 pk Exp $ */ +/* $NetBSD: iommuvar.h,v 1.5 2000/01/11 13:01:52 pk Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -52,7 +52,6 @@ struct iommu_attach_args { int iom_node; /* PROM handle */ struct iommu_reg *iom_reg; int iom_nreg; - struct bootpath *iom_bp; /* used for locating boot device */ }; void iommu_enter __P((bus_addr_t, paddr_t)); diff --git a/sys/dev/sbus/dma_sbus.c b/sys/dev/sbus/dma_sbus.c index 36f1bd308c1c..58f1648823cc 100644 --- a/sys/dev/sbus/dma_sbus.c +++ b/sys/dev/sbus/dma_sbus.c @@ -1,4 +1,4 @@ -/* $NetBSD: dma_sbus.c,v 1.3 1998/09/05 17:28:57 pk Exp $ */ +/* $NetBSD: dma_sbus.c,v 1.4 2000/01/11 12:59:43 pk Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -152,7 +152,6 @@ dmaattach_sbus(parent, self, aux) struct dma_softc *dsc = (void *)self; struct lsi64854_softc *sc = &dsc->sc_lsi64854; bus_space_handle_t bh; -/*XXX*/ struct bootpath *bp; bus_space_tag_t sbt; int sbusburst, burst; int node; @@ -222,19 +221,6 @@ dmaattach_sbus(parent, self, aux) sc->sc_channel = L64854_CHANNEL_SCSI; } - - /* Propagate bootpath */ - bp = NULL; - if (sa->sa_bp != NULL) { - char *bpname = sa->sa_bp->name; - if (strcmp(bpname, "espdma") == 0) - /* We call everything "dma" */ - bpname = "dma"; - - if (strcmp(bpname, self->dv_cfdata->cf_driver->cd_name) == 0) - bp = sa->sa_bp + 1; - } - sbus_establish(&dsc->sc_sd, &sc->sc_dev); sbt = dma_alloc_bustag(dsc); lsi64854_attach(sc); @@ -243,7 +229,7 @@ dmaattach_sbus(parent, self, aux) for (node = firstchild(sa->sa_node); node; node = nextsibling(node)) { struct sbus_attach_args sa; sbus_setup_attach_args((struct sbus_softc *)parent, - sbt, sc->sc_dmatag, node, bp, &sa); + sbt, sc->sc_dmatag, node, &sa); (void) config_found(&sc->sc_dev, (void *)&sa, dmaprint_sbus); sbus_destroy_attach_args(&sa); } diff --git a/sys/dev/sbus/esp_sbus.c b/sys/dev/sbus/esp_sbus.c index 863a58c0167c..896d89942aa4 100644 --- a/sys/dev/sbus/esp_sbus.c +++ b/sys/dev/sbus/esp_sbus.c @@ -1,4 +1,4 @@ -/* $NetBSD: esp_sbus.c,v 1.7 1999/11/21 15:01:51 pk Exp $ */ +/* $NetBSD: esp_sbus.c,v 1.8 2000/01/11 12:59:43 pk Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -75,16 +75,6 @@ struct esp_softc { int sc_pri; /* SBUS priority */ }; -/* - * Is this esp on the bootpath? - * We may get two forms of the bootpath: - * (1) ../sbus@.../esp@,/sd@.. (PROM v3 style) - * (2) /sbus0/esp0/sd@.. (PROM v2 style) - */ -#define SAME_ESP(sc, bp, sa) \ - ((bp->val[0] == sa->sa_slot && bp->val[1] == sa->sa_offset) || \ - (bp->val[0] == -1 && bp->val[1] == sc->sc_dev.dv_unit)) - void espattach_sbus __P((struct device *, struct device *, void *)); void espattach_dma __P((struct device *, struct device *, void *)); int espmatch_sbus __P((struct device *, struct cfdata *, void *)); @@ -236,10 +226,6 @@ espattach_sbus(parent, self, aux) esc->sc_sd.sd_reset = (void *) ncr53c9x_reset; sbus_establish(&esc->sc_sd, &sc->sc_dev); - if (sa->sa_bp != NULL && strcmp("esp", sa->sa_bp->name) == 0 && - SAME_ESP(sc, sa->sa_bp, sa)) - bootpath_store(1, sa->sa_bp + 1); - if (strcmp("ptscII", sa->sa_name) == 0) { espattach(esc, &esp_sbus_glue1); } else { @@ -303,10 +289,6 @@ espattach_dma(parent, self, aux) esc->sc_sd.sd_reset = (void *) ncr53c9x_reset; sbus_establish(&esc->sc_sd, parent); - if (sa->sa_bp != NULL && strcmp("esp", sa->sa_bp->name) == 0 && - SAME_ESP(sc, sa->sa_bp, sa)) - bootpath_store(1, sa->sa_bp + 1); - espattach(esc, &esp_sbus_glue); } @@ -423,8 +405,6 @@ espattach(esc, gluep) /* Turn on target selection using the `dma' method */ ncr53c9x_dmaselect = 1; - - bootpath_store(1, NULL); } /* diff --git a/sys/dev/sbus/if_le.c b/sys/dev/sbus/if_le.c index 6be7afbb1f1e..70bd27e26330 100644 --- a/sys/dev/sbus/if_le.c +++ b/sys/dev/sbus/if_le.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_le.c,v 1.9 1999/11/21 15:01:51 pk Exp $ */ +/* $NetBSD: if_le.c,v 1.10 2000/01/11 12:59:43 pk Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -158,10 +158,6 @@ lematch_sbus(parent, cf, aux) return (strcmp(cf->cf_driver->cd_name, sa->sa_name) == 0); } -#define SAME_LANCE(bp, sa) \ - ((bp->val[0] == sa->sa_slot && bp->val[1] == sa->sa_offset) || \ - (bp->val[0] == -1 && bp->val[1] == sc->sc_dev.dv_unit)) - void leattach_sbus(parent, self, aux) struct device *parent, *self; @@ -220,10 +216,6 @@ leattach_sbus(parent, self, aux) lesc->sc_sd.sd_reset = (void *)lance_reset; sbus_establish(&lesc->sc_sd, &sc->sc_dev); - if (sa->sa_bp != NULL && strcmp(sa->sa_bp->name, le_cd.cd_name) == 0 && - SAME_LANCE(sa->sa_bp, sa)) - sa->sa_bp->dev = &sc->sc_dev; - if (sc->sc_mem == 0) { bus_dma_segment_t seg; int rseg, error; diff --git a/sys/dev/sbus/if_le_lebuffer.c b/sys/dev/sbus/if_le_lebuffer.c index 9157e8a23b1c..4b8a51fae1b9 100644 --- a/sys/dev/sbus/if_le_lebuffer.c +++ b/sys/dev/sbus/if_le_lebuffer.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_le_lebuffer.c,v 1.4 1999/11/21 15:01:51 pk Exp $ */ +/* $NetBSD: if_le_lebuffer.c,v 1.5 2000/01/11 12:59:43 pk Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -163,10 +163,6 @@ lematch_lebuffer(parent, cf, aux) } -#define SAME_LANCE(bp, sa) \ - (bp->val[0] == sa->sa_slot && bp->val[1] == sa->sa_offset) - - void leattach_lebuffer(parent, self, aux) struct device *parent, *self; @@ -205,10 +201,6 @@ leattach_lebuffer(parent, self, aux) lesc->sc_sd.sd_reset = (void *)lance_reset; sbus_establish(&lesc->sc_sd, parent); - if (sa->sa_bp != NULL && strcmp(sa->sa_bp->name, le_cd.cd_name) == 0 && - SAME_LANCE(sa->sa_bp, sa)) - sa->sa_bp->dev = &sc->sc_dev; - sc->sc_supmedia = lemedia; sc->sc_nsupmedia = NLEMEDIA; sc->sc_defaultmedia = lemedia[0]; diff --git a/sys/dev/sbus/if_le_ledma.c b/sys/dev/sbus/if_le_ledma.c index 59bd497637fa..090a2a23d966 100644 --- a/sys/dev/sbus/if_le_ledma.c +++ b/sys/dev/sbus/if_le_ledma.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_le_ledma.c,v 1.6 1999/11/21 15:01:51 pk Exp $ */ +/* $NetBSD: if_le_ledma.c,v 1.7 2000/01/11 12:59:44 pk Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -338,9 +338,6 @@ lematch_ledma(parent, cf, aux) } -#define SAME_LANCE(bp, sa) \ - (bp->val[0] == sa->sa_slot && bp->val[1] == sa->sa_offset) - void leattach_ledma(parent, self, aux) struct device *parent, *self; @@ -400,10 +397,6 @@ leattach_ledma(parent, self, aux) lesc->sc_sd.sd_reset = (void *)lance_reset; sbus_establish(&lesc->sc_sd, parent); - if (sa->sa_bp != NULL && strcmp(sa->sa_bp->name, le_cd.cd_name) == 0 && - SAME_LANCE(sa->sa_bp, sa)) - sa->sa_bp->dev = &sc->sc_dev; - sc->sc_mediachange = lemediachange; sc->sc_mediastatus = lemediastatus; sc->sc_supmedia = lemedia; diff --git a/sys/dev/sbus/lebuffer.c b/sys/dev/sbus/lebuffer.c index be5e84af2f61..b4590fc9d706 100644 --- a/sys/dev/sbus/lebuffer.c +++ b/sys/dev/sbus/lebuffer.c @@ -1,4 +1,4 @@ -/* $NetBSD: lebuffer.c,v 1.5 1998/08/29 20:38:38 pk Exp $ */ +/* $NetBSD: lebuffer.c,v 1.6 2000/01/11 12:59:44 pk Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -99,7 +99,6 @@ lebufattach(parent, self, aux) int sbusburst; bus_space_tag_t sbt; bus_space_handle_t bh; - struct bootpath *bp; sc->sc_bustag = sa->sa_bustag; sc->sc_dmatag = sa->sa_dmatag; @@ -139,12 +138,6 @@ lebufattach(parent, self, aux) sbus_establish(&sc->sc_sd, &sc->sc_dev); - /* Propagate bootpath */ - if (sa->sa_bp != NULL) - bp = sa->sa_bp + 1; - else - bp = NULL; - /* Allocate a bus tag */ sbt = (bus_space_tag_t) malloc(sizeof(struct sparc_bus_space_tag), M_DEVBUF, M_NOWAIT); @@ -163,7 +156,7 @@ lebufattach(parent, self, aux) for (node = firstchild(node); node; node = nextsibling(node)) { struct sbus_attach_args sa; sbus_setup_attach_args((struct sbus_softc *)parent, - sbt, sc->sc_dmatag, node, bp, &sa); + sbt, sc->sc_dmatag, node, &sa); (void)config_found(&sc->sc_dev, (void *)&sa, lebufprint); sbus_destroy_attach_args(&sa); } diff --git a/sys/dev/sbus/qec.c b/sys/dev/sbus/qec.c index 5da41109269c..d508efa51a4d 100644 --- a/sys/dev/sbus/qec.c +++ b/sys/dev/sbus/qec.c @@ -1,4 +1,4 @@ -/* $NetBSD: qec.c,v 1.9 1999/06/24 19:56:51 pk Exp $ */ +/* $NetBSD: qec.c,v 1.10 2000/01/11 12:59:44 pk Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -115,7 +115,6 @@ qecattach(parent, self, aux) int sbusburst; bus_space_tag_t sbt; bus_space_handle_t bh; - struct bootpath *bp; int error; sc->sc_bustag = sa->sa_bustag; @@ -190,12 +189,6 @@ qecattach(parent, self, aux) panic("%s: error getting ranges property", self->dv_xname); } - /* Propagate bootpath */ - if (sa->sa_bp != NULL) - bp = sa->sa_bp + 1; - else - bp = NULL; - /* Allocate a bus tag */ sbt = (bus_space_tag_t) malloc(sizeof(struct sparc_bus_space_tag), M_DEVBUF, M_NOWAIT); @@ -229,7 +222,7 @@ qecattach(parent, self, aux) for (node = firstchild(node); node; node = nextsibling(node)) { struct sbus_attach_args sa; sbus_setup_attach_args((struct sbus_softc *)parent, - sbt, sc->sc_dmatag, node, bp, &sa); + sbt, sc->sc_dmatag, node, &sa); (void)config_found(&sc->sc_dev, (void *)&sa, qecprint); sbus_destroy_attach_args(&sa); } diff --git a/sys/dev/sbus/sbusvar.h b/sys/dev/sbus/sbusvar.h index 943d7f501262..5fe950813fd1 100644 --- a/sys/dev/sbus/sbusvar.h +++ b/sys/dev/sbus/sbusvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: sbusvar.h,v 1.9 1998/09/06 21:23:58 eeh Exp $ */ +/* $NetBSD: sbusvar.h,v 1.10 2000/01/11 12:59:44 pk Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -95,13 +95,11 @@ struct sbus_attach_args { u_int32_t *sa_promvaddrs;/* PROM-supplied virtual addresses -- 32-bit */ int sa_npromvaddrs; /* Number of PROM VAs */ #define sa_promvaddr sa_promvaddrs[0] - - struct bootpath *sa_bp; /* used for locating boot device */ }; /* sbus_attach_internal() is also used from obio.c */ void sbus_attach_common __P((struct sbus_softc *, char *, int, - struct bootpath *, const char * const *)); + const char * const *)); int sbus_print __P((void *, const char *)); void sbus_establish __P((struct sbusdev *, struct device *)); @@ -111,7 +109,6 @@ int sbus_setup_attach_args __P(( bus_space_tag_t, bus_dma_tag_t, int, /*node*/ - struct bootpath *, struct sbus_attach_args *)); void sbus_destroy_attach_args __P((struct sbus_attach_args *)); diff --git a/sys/dev/sbus/xbox.c b/sys/dev/sbus/xbox.c index e0690be0ed36..1672d06790ca 100644 --- a/sys/dev/sbus/xbox.c +++ b/sys/dev/sbus/xbox.c @@ -1,4 +1,4 @@ -/* $NetBSD: xbox.c,v 1.2 1998/07/27 19:13:06 pk Exp $ */ +/* $NetBSD: xbox.c,v 1.3 2000/01/11 12:59:44 pk Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -138,7 +138,6 @@ xbox_attach(parent, self, aux) { struct xbox_softc *sc = (struct xbox_softc *)self; struct sbus_attach_args *sa = aux; - struct bootpath *bp = sa->sa_bp; int node = sa->sa_node; struct xbox_attach_args xa; char *cp; @@ -156,12 +155,6 @@ xbox_attach(parent, self, aux) printf("\n"); - /* Propagate bootpath */ - if (bp != NULL && strcmp(bp->name, "xbox") == 0) - bp++; - else - bp = NULL; - /* * Now pretend to be another Sbus. */ @@ -170,7 +163,6 @@ xbox_attach(parent, self, aux) xa.xa_node = node; xa.xa_bustag = sa->sa_bustag; xa.xa_dmatag = sa->sa_dmatag; - xa.xa_bp = bp; (void) config_found(&sc->sc_dev, (void *)&xa, xbox_print); } diff --git a/sys/dev/sbus/xboxvar.h b/sys/dev/sbus/xboxvar.h index e44a5b61a3c4..a8f60faecebd 100644 --- a/sys/dev/sbus/xboxvar.h +++ b/sys/dev/sbus/xboxvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: xboxvar.h,v 1.1 1998/04/18 19:00:18 pk Exp $ */ +/* $NetBSD: xboxvar.h,v 1.2 2000/01/11 12:59:44 pk Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -47,6 +47,5 @@ struct xbox_attach_args { bus_dma_tag_t xa_dmatag; char *xa_name; /* PROM node name */ int xa_node; /* PROM handle */ - struct bootpath *xa_bp; /* used for locating boot device */ }; #endif /* _XBOX_VAR_H */