mirror of
git://git.yoctoproject.org/meta-intel.git
synced 2025-07-19 12:59:03 +02:00

Patch changes: * 0001-sd-boot-Link-RMC-library-into-bootloader-and-stub.patch removed because make is no longer used. * 0001-sd-boot-stub-check-LoadOptions-contains-data.patch removed because it was accepted upstream. * 0001-partially-revert-sd-boot-stub-Obtain-PE-section-offs.patch added to support RMC functionality. Upstream removed a snippet that found the root directory because they didn't need it anymore, but RMC does. * 0002-sd-boot-fix-RMC-compatibility-with-systemd-boot-and-.patch added to support building with meson instead of make. * Others refreshed inc file changes: * Don't commit pin, we can maintain these patches OK for now * EXTRA_OEMAKE -> EXTRA_OEMESON, and removed some superfluous options Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
68 lines
2.5 KiB
Diff
68 lines
2.5 KiB
Diff
From 159c8c54f92fb44d8abd2919fa83ad1cb640fac3 Mon Sep 17 00:00:00 2001
|
|
From: Jianxun Zhang <jianxun.zhang@linux.intel.com>
|
|
Date: Mon, 20 Jun 2016 13:08:20 -0700
|
|
Subject: [PATCH 4/5] sd-boot: Support global kernel command line fragment
|
|
|
|
Query file blob KBOOTPARAM from RMC. If it exists, we append
|
|
it to the new linux boot entry's cmdline. A boot entry could
|
|
be read from a .conf file on ESP, RMC database, or embedded
|
|
linux image. content in KBOOTPARAM is effective in all of
|
|
these cases.
|
|
|
|
Upstream-Status: Pending
|
|
|
|
Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
|
|
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
|
|
---
|
|
src/boot/efi/boot.c | 34 ++++++++++++++++++++++++++++++++++
|
|
1 file changed, 34 insertions(+)
|
|
|
|
diff --git a/src/boot/efi/boot.c b/src/boot/efi/boot.c
|
|
index 93cfaf193..2f400db3c 100644
|
|
--- a/src/boot/efi/boot.c
|
|
+++ b/src/boot/efi/boot.c
|
|
@@ -851,6 +851,40 @@ static VOID config_add_entry(Config *config, ConfigEntry *entry) {
|
|
config->entries = ReallocatePool(config->entries,
|
|
sizeof(VOID *) * config->entry_count, sizeof(VOID *) * i);
|
|
}
|
|
+
|
|
+ /* rmc: a linux entry could be added from .conf file or an embedded linux image
|
|
+ * we put appending global command line here to cover both of two cases.
|
|
+ */
|
|
+ if (entry->type == LOADER_LINUX && rmc_db && rmc_fp) {
|
|
+ rmc_file_t rmc_kp;
|
|
+
|
|
+ if (!rmc_query_file_by_fp(rmc_fp, rmc_db, "KBOOTPARAM", &rmc_kp)) {
|
|
+ CHAR8 *cmdline;
|
|
+ CHAR16 *s;
|
|
+ CHAR16 *t;
|
|
+ CHAR16 *p;
|
|
+
|
|
+ cmdline = AllocatePool(rmc_kp.blob_len * sizeof(CHAR8) + 1);
|
|
+ CopyMem(cmdline, rmc_kp.blob, rmc_kp.blob_len);
|
|
+ cmdline[rmc_kp.blob_len] = '\0';
|
|
+ p = stra_to_str(cmdline);
|
|
+ t = p;
|
|
+
|
|
+ while (*t) {
|
|
+ if (*t == '\n')
|
|
+ *t = '\0';
|
|
+ t++;
|
|
+ }
|
|
+
|
|
+ s = PoolPrint(L"%s %s", entry->options, p);
|
|
+ FreePool(entry->options);
|
|
+ FreePool(p);
|
|
+ FreePool(cmdline);
|
|
+
|
|
+ entry->options = s;
|
|
+ }
|
|
+ }
|
|
+
|
|
config->entries[config->entry_count++] = entry;
|
|
}
|
|
|
|
--
|
|
2.14.3
|
|
|