mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
If rootdev is set, use it as currdev.
Setting rootdev in the enviornment should specify things completely. If it is set, then have it override everything else. PR: 229770 Differential Review: https://reviews.freebsd.org/D16322
This commit is contained in:
parent
a304238bcf
commit
e39cc26762
1 changed files with 18 additions and 5 deletions
|
|
@ -165,17 +165,22 @@ out:
|
|||
return retval;
|
||||
}
|
||||
|
||||
static void
|
||||
set_currdev(const char *devname)
|
||||
{
|
||||
|
||||
env_setenv("currdev", EV_VOLATILE, devname, efi_setcurrdev, env_nounset);
|
||||
env_setenv("loaddev", EV_VOLATILE, devname, env_noset, env_nounset);
|
||||
}
|
||||
|
||||
static void
|
||||
set_currdev_devdesc(struct devdesc *currdev)
|
||||
{
|
||||
const char *devname;
|
||||
|
||||
devname = efi_fmtdev(currdev);
|
||||
|
||||
printf("Setting currdev to %s\n", devname);
|
||||
|
||||
env_setenv("currdev", EV_VOLATILE, devname, efi_setcurrdev, env_nounset);
|
||||
env_setenv("loaddev", EV_VOLATILE, devname, env_noset, env_nounset);
|
||||
set_currdev(devname);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -279,6 +284,14 @@ find_currdev(EFI_LOADED_IMAGE *img)
|
|||
struct devsw *dev;
|
||||
int unit;
|
||||
uint64_t extra;
|
||||
char *rootdev;
|
||||
|
||||
rootdev = getenv("rootdev");
|
||||
if (rootdev != NULL) {
|
||||
printf("Setting currdev to configured rootdev %s\n", rootdev);
|
||||
set_currdev(rootdev);
|
||||
return (0);
|
||||
}
|
||||
|
||||
#ifdef EFI_ZFS_BOOT
|
||||
/*
|
||||
|
|
@ -616,7 +629,7 @@ main(int argc, CHAR16 *argv[])
|
|||
* set the env based on it.
|
||||
*/
|
||||
boot_howto_to_env(howto);
|
||||
|
||||
|
||||
if (efi_copy_init()) {
|
||||
printf("failed to allocate staging area\n");
|
||||
return (EFI_BUFFER_TOO_SMALL);
|
||||
|
|
|
|||
Loading…
Reference in a new issue