Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F107506060
D29512.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D29512.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D29512: Loader: support booting OS from memory disk (MD)
Attached
Detach File
Event Timeline
Log In to Comment