summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/sparc/dev/fd.c23
-rw-r--r--sys/arch/sparc/sparc/autoconf.c7
2 files changed, 21 insertions, 9 deletions
diff --git a/sys/arch/sparc/dev/fd.c b/sys/arch/sparc/dev/fd.c
index ca8c1fde423..c703e19e963 100644
--- a/sys/arch/sparc/dev/fd.c
+++ b/sys/arch/sparc/dev/fd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fd.c,v 1.16 1997/05/11 22:37:34 grr Exp $ */
+/* $OpenBSD: fd.c,v 1.17 1997/05/30 08:27:49 grr Exp $ */
/* $NetBSD: fd.c,v 1.33.4.1 1996/06/12 20:52:25 pk Exp $ */
/*-
@@ -1692,6 +1692,12 @@ fd_do_eject()
auxregbisc(AUXIO_FEJ, AUXIO_FDS);
}
+/*
+ * The mountroot_hook is called once the root and swap device have been
+ * established. NULL implies that we may have been the boot device but
+ * haven't been elected for the root device.
+ */
+
/* ARGSUSED */
void
fd_mountroot_hook(dev)
@@ -1700,12 +1706,15 @@ fd_mountroot_hook(dev)
int c;
fd_do_eject();
- printf("Insert filesystem floppy and press return.");
- for (;;) {
- c = cngetc();
- if ((c == '\r') || (c == '\n')) {
- printf("\n");
- return;
+
+ if (dev) {
+ printf("Insert filesystem floppy and press return.");
+ for (;;) {
+ c = cngetc();
+ if ((c == '\r') || (c == '\n')) {
+ printf("\n");
+ return;
+ }
}
}
}
diff --git a/sys/arch/sparc/sparc/autoconf.c b/sys/arch/sparc/sparc/autoconf.c
index 6b8cb20832c..e6b7a359b21 100644
--- a/sys/arch/sparc/sparc/autoconf.c
+++ b/sys/arch/sparc/sparc/autoconf.c
@@ -1908,7 +1908,7 @@ setroot()
#endif
bp = nbootpath == 0 ? NULL : &bootpath[nbootpath-1];
- bootdv = bp == NULL ? NULL : bp->dev;
+ bootdv = (bp == NULL) ? NULL : bp->dev;
/*
* If `swap generic' and we couldn't determine boot device,
@@ -2079,7 +2079,10 @@ gotroot:
for (mrhp = mrh_list.lh_first; mrhp != NULL;
mrhp = mrhp->mr_link.le_next)
if (mrhp->mr_device == bootdv) {
- (*mrhp->mr_func)(bootdv);
+ if (findblkmajor(mrhp->mr_device) == major(rootdev))
+ (*mrhp->mr_func)(bootdv);
+ else
+ (*mrhp->mr_func)(NULL);
break;
}