diff options
author | jake <jake@FreeBSD.org> | 2002-11-10 19:17:36 +0000 |
---|---|---|
committer | jake <jake@FreeBSD.org> | 2002-11-10 19:17:36 +0000 |
commit | 73d398d702d8489985977353b7f67aaabb9d840c (patch) | |
tree | afef4c9c5cb095c3438e4a1874a05286c64fec0e /sys/boot/powerpc/loader/metadata.c | |
parent | 1ff96af1eab5b5285540c2bb95862f1687e10252 (diff) | |
download | FreeBSD-src-73d398d702d8489985977353b7f67aaabb9d840c.zip FreeBSD-src-73d398d702d8489985977353b7f67aaabb9d840c.tar.gz |
Change the device path representation in libofw to use the full firmware
path, instead of an internal i386 specific one. Don't try to interpret
a disklabel in ofw_disk.c, open the partition's device node directly and
let the firmware do it. This fixes booting from a partition other than 'a'
on sparc64, which is needed to support more installation methods.
No objection: ppc
Diffstat (limited to 'sys/boot/powerpc/loader/metadata.c')
-rw-r--r-- | sys/boot/powerpc/loader/metadata.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/sys/boot/powerpc/loader/metadata.c b/sys/boot/powerpc/loader/metadata.c index be86c6c..0ef06a9 100644 --- a/sys/boot/powerpc/loader/metadata.c +++ b/sys/boot/powerpc/loader/metadata.c @@ -255,7 +255,6 @@ md_load(char *args, vm_offset_t *modulep) struct preloaded_file *kfp; struct preloaded_file *xp; struct file_metadata *md; - struct ofw_devdesc *rootdev; vm_offset_t kernend; vm_offset_t addr; vm_offset_t envp; @@ -273,16 +272,10 @@ md_load(char *args, vm_offset_t *modulep) * MI code before launching the kernel. */ rootdevname = getenv("rootdev"); - ofw_getdev((void **)(&rootdev), rootdevname, NULL); - if (rootdev == NULL) { /* bad $rootdev/$currdev */ - printf("can't determine root device\n"); - return(EINVAL); - } - + if (rootdevname == NULL) + rootdevname = getenv("currdev"); /* Try reading the /etc/fstab file to select the root device */ - getrootmount(ofw_fmtdev((void *)rootdev)); - - free(rootdev); + getrootmount(rootdevname); /* find the last module in the chain */ addr = 0; |