diff --git a/man/systemd-stub.xml b/man/systemd-stub.xml
index c230168780..7934f344f8 100644
--- a/man/systemd-stub.xml
+++ b/man/systemd-stub.xml
@@ -379,6 +379,23 @@
default, this is done for the TPM2 PCR signature and public key files.
+
+ SMBIOS Type 11 Strings
+
+ systemd-stub can be configured using SMBIOS Type 11 strings. Applicable strings
+ consist of a name, followed by =, followed by the value.
+ systemd-stub will search the table for a string with a specific name, and if found,
+ use its value. The following strings are read:
+
+
+
+ io.systemd.stub.kernel-cmdline-extra
+ If set, the value of this string is added to the list of kernel command line
+ arguments that are passed to the kernel.
+
+
+
+
Assembling Kernel Images
diff --git a/src/boot/efi/stub.c b/src/boot/efi/stub.c
index d85424ceae..25fd1bdb7f 100644
--- a/src/boot/efi/stub.c
+++ b/src/boot/efi/stub.c
@@ -14,6 +14,7 @@
#include "splash.h"
#include "tpm-pcr.h"
#include "util.h"
+#include "vmm.h"
/* magic string to find in the binary image */
_used_ _section_(".sdmagic") static const char magic[] = "#### LoaderInfo: systemd-stub " GIT_VERSION " ####";
@@ -275,6 +276,12 @@ static EFI_STATUS run(EFI_HANDLE image) {
mangle_stub_cmdline(cmdline);
}
+ const char *extra = smbios_find_oem_string("io.systemd.stub.kernel-cmdline-extra");
+ if (extra) {
+ _cleanup_free_ char16_t *tmp = TAKE_PTR(cmdline), *extra16 = xstr8_to_16(extra);
+ cmdline = xasprintf("%ls %ls", tmp, extra16);
+ }
+
export_variables(loaded_image);
if (pack_cpio(loaded_image,