summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1999-07-03 08:24:00 +0000
committerphk <phk@FreeBSD.org>1999-07-03 08:24:00 +0000
commitb44eacea5615b297c0b69ee43ffbd6f4683895b3 (patch)
tree7d96fa260dd00fbc0ac5c91f9651c79e24992d19 /sys
parent1d20b72ec57ab7ec22422ba41719b0b503c35ea3 (diff)
downloadFreeBSD-src-b44eacea5615b297c0b69ee43ffbd6f4683895b3.zip
FreeBSD-src-b44eacea5615b297c0b69ee43ffbd6f4683895b3.tar.gz
Be more informative and try to ask the user in some instances if we can't
figure out the root device.
Diffstat (limited to 'sys')
-rw-r--r--sys/amd64/amd64/autoconf.c26
-rw-r--r--sys/i386/i386/autoconf.c26
-rw-r--r--sys/kern/vfs_conf.c6
-rw-r--r--sys/kern/vfs_mount.c6
4 files changed, 42 insertions, 22 deletions
diff --git a/sys/amd64/amd64/autoconf.c b/sys/amd64/amd64/autoconf.c
index 1118fcb..05507a8 100644
--- a/sys/amd64/amd64/autoconf.c
+++ b/sys/amd64/amd64/autoconf.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)autoconf.c 7.1 (Berkeley) 5/9/91
- * $Id: autoconf.c,v 1.124 1999/05/31 11:25:39 phk Exp $
+ * $Id: autoconf.c,v 1.125 1999/06/01 18:56:10 phk Exp $
*/
/*
@@ -431,18 +431,27 @@ setroot()
#endif
return;
}
- if ((bootdev & B_MAGICMASK) != B_DEVMAGIC)
+ if ((bootdev & B_MAGICMASK) != B_DEVMAGIC) {
+ printf("No B_DEVMAGIC\n");
+ setconf();
return;
+ }
majdev = B_TYPE(bootdev);
dev = makebdev(majdev, 0);
- if (bdevsw(dev) == NULL)
+ if (bdevsw(dev) == NULL) {
+ printf("No bdevsw (majdev=%d bootdev=%08x)\n", majdev, bootdev);
+ setconf();
return;
+ }
unit = B_UNIT(bootdev);
slice = B_SLICE(bootdev);
if (slice == WHOLE_DISK_SLICE)
slice = COMPATIBILITY_SLICE;
- if (slice < 0 || slice >= MAX_SLICES)
+ if (slice < 0 || slice >= MAX_SLICES) {
+ printf("bad slice\n");
+ setconf();
return;
+ }
/*
* XXX kludge for inconsistent unit numbering and lack of slice
@@ -508,6 +517,7 @@ setrootbyname(char *name)
int bd, unit, slice, part;
dev_t dev;
+ printf("setrootbyname(\"%s\")\n", name);
slice = 0;
part = 0;
cp = name;
@@ -545,9 +555,9 @@ gotit:
printf("junk after name\n");
return (1);
}
- printf("driver=%s, unit=%d, slice=%d, part=%d\n",
- name, unit, slice, part);
rootdev = makebdev(bd, dkmakeminor(unit, slice, part));
+ printf("driver=%s, unit=%d, slice=%d, part=%d -> rootdev=%08x\n",
+ name, unit, slice, part, rootdev);
return 0;
}
@@ -569,9 +579,9 @@ setconf()
for (i = 0; i < NUMCDEVSW; i++) {
dev = makebdev(i, 0);
if (bdevsw(dev) != NULL)
- printf(" %s", bdevsw(dev)->d_name);
+ printf(" \"%s\"", bdevsw(dev)->d_name);
}
- printf(" followed by a unit number...\n");
+ printf("\nfollowed by a unit number...\n");
}
}
diff --git a/sys/i386/i386/autoconf.c b/sys/i386/i386/autoconf.c
index 1118fcb..05507a8 100644
--- a/sys/i386/i386/autoconf.c
+++ b/sys/i386/i386/autoconf.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)autoconf.c 7.1 (Berkeley) 5/9/91
- * $Id: autoconf.c,v 1.124 1999/05/31 11:25:39 phk Exp $
+ * $Id: autoconf.c,v 1.125 1999/06/01 18:56:10 phk Exp $
*/
/*
@@ -431,18 +431,27 @@ setroot()
#endif
return;
}
- if ((bootdev & B_MAGICMASK) != B_DEVMAGIC)
+ if ((bootdev & B_MAGICMASK) != B_DEVMAGIC) {
+ printf("No B_DEVMAGIC\n");
+ setconf();
return;
+ }
majdev = B_TYPE(bootdev);
dev = makebdev(majdev, 0);
- if (bdevsw(dev) == NULL)
+ if (bdevsw(dev) == NULL) {
+ printf("No bdevsw (majdev=%d bootdev=%08x)\n", majdev, bootdev);
+ setconf();
return;
+ }
unit = B_UNIT(bootdev);
slice = B_SLICE(bootdev);
if (slice == WHOLE_DISK_SLICE)
slice = COMPATIBILITY_SLICE;
- if (slice < 0 || slice >= MAX_SLICES)
+ if (slice < 0 || slice >= MAX_SLICES) {
+ printf("bad slice\n");
+ setconf();
return;
+ }
/*
* XXX kludge for inconsistent unit numbering and lack of slice
@@ -508,6 +517,7 @@ setrootbyname(char *name)
int bd, unit, slice, part;
dev_t dev;
+ printf("setrootbyname(\"%s\")\n", name);
slice = 0;
part = 0;
cp = name;
@@ -545,9 +555,9 @@ gotit:
printf("junk after name\n");
return (1);
}
- printf("driver=%s, unit=%d, slice=%d, part=%d\n",
- name, unit, slice, part);
rootdev = makebdev(bd, dkmakeminor(unit, slice, part));
+ printf("driver=%s, unit=%d, slice=%d, part=%d -> rootdev=%08x\n",
+ name, unit, slice, part, rootdev);
return 0;
}
@@ -569,9 +579,9 @@ setconf()
for (i = 0; i < NUMCDEVSW; i++) {
dev = makebdev(i, 0);
if (bdevsw(dev) != NULL)
- printf(" %s", bdevsw(dev)->d_name);
+ printf(" \"%s\"", bdevsw(dev)->d_name);
}
- printf(" followed by a unit number...\n");
+ printf("\nfollowed by a unit number...\n");
}
}
diff --git a/sys/kern/vfs_conf.c b/sys/kern/vfs_conf.c
index c8ebca6..27d53ba 100644
--- a/sys/kern/vfs_conf.c
+++ b/sys/kern/vfs_conf.c
@@ -32,7 +32,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_conf.c 8.8 (Berkeley) 3/31/94
- * $Id: vfs_conf.c,v 1.28 1999/05/24 00:37:26 jb Exp $
+ * $Id: vfs_conf.c,v 1.29 1999/06/26 14:44:24 peter Exp $
*/
/*
@@ -129,7 +129,7 @@ vfs_mountrootfs(void *unused)
* New root mount structure
*/
if ((err = vfs_rootmountalloc(mountrootfsname, ROOTNAME, &mp))) {
- printf("error %d: ", err);
+ printf("rootdev=%08x error=%d, ", rootdev, err);
panic("cannot mount root\n");
return ;
}
@@ -170,7 +170,7 @@ vfs_mountrootfs(void *unused)
* (hardly worthwhile with the PANIC eh?)
*/
free( mp, M_MOUNT);
- printf("error %d: ", err);
+ printf("rootdev=%08x error=%d, ", rootdev, err);
panic("cannot mount root (2)\n");
return;
}
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c
index c8ebca6..27d53ba 100644
--- a/sys/kern/vfs_mount.c
+++ b/sys/kern/vfs_mount.c
@@ -32,7 +32,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_conf.c 8.8 (Berkeley) 3/31/94
- * $Id: vfs_conf.c,v 1.28 1999/05/24 00:37:26 jb Exp $
+ * $Id: vfs_conf.c,v 1.29 1999/06/26 14:44:24 peter Exp $
*/
/*
@@ -129,7 +129,7 @@ vfs_mountrootfs(void *unused)
* New root mount structure
*/
if ((err = vfs_rootmountalloc(mountrootfsname, ROOTNAME, &mp))) {
- printf("error %d: ", err);
+ printf("rootdev=%08x error=%d, ", rootdev, err);
panic("cannot mount root\n");
return ;
}
@@ -170,7 +170,7 @@ vfs_mountrootfs(void *unused)
* (hardly worthwhile with the PANIC eh?)
*/
free( mp, M_MOUNT);
- printf("error %d: ", err);
+ printf("rootdev=%08x error=%d, ", rootdev, err);
panic("cannot mount root (2)\n");
return;
}
OpenPOWER on IntegriCloud