summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/arch/mvme68k/dev/if_ie.c6
-rw-r--r--sys/arch/mvme68k/dev/if_le.c6
-rw-r--r--sys/arch/mvme68k/dev/siopdma.c11
-rw-r--r--sys/arch/mvme68k/dev/wdsc.c10
4 files changed, 27 insertions, 6 deletions
diff --git a/sys/arch/mvme68k/dev/if_ie.c b/sys/arch/mvme68k/dev/if_ie.c
index e6157f1a739..c24c082d865 100644
--- a/sys/arch/mvme68k/dev/if_ie.c
+++ b/sys/arch/mvme68k/dev/if_ie.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ie.c,v 1.6 1996/05/10 12:42:23 deraadt Exp $ */
+/* $OpenBSD: if_ie.c,v 1.7 1996/05/29 17:54:11 chuck Exp $ */
/*-
* Copyright (c) 1995 Theo de Raadt
@@ -450,6 +450,10 @@ ieattach(parent, self, aux)
sc->sc_reg = ca->ca_vaddr;
ieo = (volatile struct ieob *) sc->sc_reg;
+ /* Are we the boot device? */
+ if (ca->ca_paddr == bootaddr)
+ bootdv = self;
+
sc->sc_maddr = etherbuf; /* maddr = vaddr */
pa = pmap_extract(pmap_kernel(), (vm_offset_t)sc->sc_maddr);
if (pa == 0) panic("ie pmap_extract");
diff --git a/sys/arch/mvme68k/dev/if_le.c b/sys/arch/mvme68k/dev/if_le.c
index 3462c189fbb..34c7aacaf9b 100644
--- a/sys/arch/mvme68k/dev/if_le.c
+++ b/sys/arch/mvme68k/dev/if_le.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_le.c,v 1.7 1996/05/10 12:42:24 deraadt Exp $ */
+/* $OpenBSD: if_le.c,v 1.8 1996/05/29 17:54:12 chuck Exp $ */
/*-
* Copyright (c) 1982, 1992, 1993
@@ -138,6 +138,10 @@ leattach(parent, self, aux)
printf(" pri %d", pri);
+ /* Are we the boot device? */
+ if (ca->ca_paddr == bootaddr)
+ bootdv = self;
+
/* connect the interrupt */
lesc->sc_ih.ih_fn = am7990_intr;
lesc->sc_ih.ih_arg = sc;
diff --git a/sys/arch/mvme68k/dev/siopdma.c b/sys/arch/mvme68k/dev/siopdma.c
index 898e7c34b93..6200b96d1c8 100644
--- a/sys/arch/mvme68k/dev/siopdma.c
+++ b/sys/arch/mvme68k/dev/siopdma.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: siopdma.c,v 1.3 1996/04/28 11:06:20 deraadt Exp $ */
+/* $OpenBSD: siopdma.c,v 1.4 1996/05/29 17:54:12 chuck Exp $ */
/*
* Copyright (c) 1995 Theo de Raadt
@@ -105,6 +105,7 @@ afscattach(parent, self, auxp)
struct siop_softc *sc = (struct siop_softc *)self;
struct confargs *ca = auxp;
siop_regmap_p rp;
+ int tmp;
extern int cpuspeed;
sc->sc_siopp = rp = ca->ca_vaddr;
@@ -170,9 +171,15 @@ afscattach(parent, self, auxp)
evcnt_attach(&sc->sc_dev, "intr", &sc->sc_intrcnt);
/*
- * attach all scsi units on us
+ * attach all scsi units on us, watching for boot device
+ * (see dk_establish).
*/
+ tmp = bootpart;
+ if (ca->ca_paddr != bootaddr)
+ bootpart = -1; /* invalid flag to dk_establish */
config_found(self, &sc->sc_link, afscprint);
+ bootpart = tmp; /* restore old value */
+
}
/*
diff --git a/sys/arch/mvme68k/dev/wdsc.c b/sys/arch/mvme68k/dev/wdsc.c
index f93c9e5af14..f0aa7912023 100644
--- a/sys/arch/mvme68k/dev/wdsc.c
+++ b/sys/arch/mvme68k/dev/wdsc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: wdsc.c,v 1.2 1996/05/06 21:54:00 deraadt Exp $ */
+/* $OpenBSD: wdsc.c,v 1.3 1996/05/29 17:54:13 chuck Exp $ */
/*
* Copyright (c) 1996 Steve Woodford
@@ -116,6 +116,7 @@ wdscattach(pdp, dp, auxp)
struct confargs *ca = auxp;
struct pccreg *pcc = (struct pccreg *)ca->ca_master;
int ipl;
+ int tmp;
sc->sc_enintr = wdsc_enintr;
sc->sc_dmago = wdsc_dmago;
@@ -173,9 +174,14 @@ wdscattach(pdp, dp, auxp)
pcc->pcc_sbicirq = ca->ca_ipl | PCC_IRQ_IEN | PCC_IRQ_INT;
/*
- * Attach all scsi units on us
+ * Attach all scsi units on us, watching for boot device
+ * (see dk_establish).
*/
+ tmp = bootpart;
+ if (ca->ca_paddr != bootaddr)
+ bootpart = -1; /* invalid flag to dk_establish */
config_found(dp, &sc->sc_link, wdscprint);
+ bootpart = tmp; /* restore old value */
}
/*