Page MenuHomeFreeBSD

D29512.diff
No OneTemporary

D29512.diff

diff --git a/stand/efi/loader/conf.c b/stand/efi/loader/conf.c
--- a/stand/efi/loader/conf.c
+++ b/stand/efi/loader/conf.c
@@ -35,6 +35,10 @@
extern struct devsw vdisk_dev;
+#ifdef MD_IMAGE_SIZE
+extern struct devsw md_dev;
+#endif
+
struct devsw *devsw[] = {
&efipart_fddev,
&efipart_cddev,
@@ -46,6 +50,9 @@
&vdisk_dev,
#ifdef EFI_ZFS_BOOT
&zfs_dev,
+#endif
+#ifdef MD_IMAGE_SIZE
+ &md_dev,
#endif
NULL
};
diff --git a/stand/efi/loader/main.c b/stand/efi/loader/main.c
--- a/stand/efi/loader/main.c
+++ b/stand/efi/loader/main.c
@@ -296,6 +296,21 @@
}
#endif
+#ifdef MD_IMAGE_SIZE
+static bool
+probe_md_currdev(void)
+{
+ extern struct devsw md_dev;
+ bool rv;
+
+ set_currdev_devsw(&md_dev, 0);
+ rv = sanity_check_currdev();
+ if (!rv)
+ printf("MD not present\n");
+ return (rv);
+}
+#endif
+
static bool
try_as_currdev(pdinfo_t *hd, pdinfo_t *pp)
{
@@ -569,6 +584,15 @@
}
#endif /* EFI_ZFS_BOOT */
+#ifdef MD_IMAGE_SIZE
+ /*
+ * If there is an embedded MD, try to use that.
+ */
+ printf("Trying MD\n");
+ if (probe_md_currdev())
+ return (0);
+#endif /* MD_IMAGE_SIZE */
+
/*
* Try to find the block device by its handle based on the
* image we're booting. If we can't find a sane partition,
diff --git a/stand/man/loader.8 b/stand/man/loader.8
--- a/stand/man/loader.8
+++ b/stand/man/loader.8
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 2, 2020
+.Dd April 7, 2021
.Dt LOADER 8
.Os
.Sh NAME
@@ -987,6 +987,23 @@
for details.
In order for this to be effective, one should also configure the firmware
(BIOS or UEFI) to prevent booting from unauthorized devices.
+.Sh MD
+Memory disk (MD) can be used when the
+.Nm
+was compiled with
+.Va MD_IMAGE_SIZE .
+The size of the memory disk is determined by
+.Va MD_IMAGE_SIZE .
+If MD available, a file system can be embedded into the
+.Nm
+with
+.Pa /sys/tools/embed_mfs.sh .
+Then, MD will be probed and be set to
+.Va currdev
+during initialization.
+.Pp
+Currently, MD is only supported in
+.Xr loader.efi 8 .
.Sh FILES
.Bl -tag -width /usr/share/examples/bootforth/ -compact
.It Pa /boot/loader

File Metadata

Mime Type
text/plain
Expires
Thu, Jan 16, 4:33 AM (15 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15820016
Default Alt Text
D29512.diff (2 KB)

Event Timeline