svn commit: r344404 - stable/11/stand/efi/loader
Kyle Evans
kevans at FreeBSD.org
Thu Feb 21 02:31:15 UTC 2019
Author: kevans
Date: Thu Feb 21 02:31:14 2019
New Revision: 344404
URL: https://svnweb.freebsd.org/changeset/base/344404
Log:
MFC r336463: 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.
Modified:
stable/11/stand/efi/loader/main.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/stand/efi/loader/main.c
==============================================================================
--- stable/11/stand/efi/loader/main.c Thu Feb 21 02:28:04 2019 (r344403)
+++ stable/11/stand/efi/loader/main.c Thu Feb 21 02:31:14 2019 (r344404)
@@ -166,16 +166,21 @@ out:
}
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,7 +284,15 @@ 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
/*
* Did efi_zfs_probe() detect the boot pool? If so, use the zpool
@@ -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);
More information about the svn-src-stable-11
mailing list