summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/recipes-bsp/systemd-boot/systemd-boot/0001-sd-boot-Link-RMC-library-into-bootloader-and-stub.patch (renamed from common/recipes-bsp/systemd-boot/systemd-boot/0001-sd-boot-Link-RMC-library-into-bootloader.patch)24
-rw-r--r--common/recipes-bsp/systemd-boot/systemd-boot/0004-sd-boot-Support-global-kernel-command-line-fragment-in-EFI-stub.patch81
-rw-r--r--common/recipes-bsp/systemd-boot/systemd-boot_%.bbappend3
3 files changed, 99 insertions, 9 deletions
diff --git a/common/recipes-bsp/systemd-boot/systemd-boot/0001-sd-boot-Link-RMC-library-into-bootloader.patch b/common/recipes-bsp/systemd-boot/systemd-boot/0001-sd-boot-Link-RMC-library-into-bootloader-and-stub.patch
index 626efce8..2f248e21 100644
--- a/common/recipes-bsp/systemd-boot/systemd-boot/0001-sd-boot-Link-RMC-library-into-bootloader.patch
+++ b/common/recipes-bsp/systemd-boot/systemd-boot/0001-sd-boot-Link-RMC-library-into-bootloader-and-stub.patch
@@ -1,20 +1,19 @@
1From 1ccd031ce97501f8ee63f39e8794437d568115dc Mon Sep 17 00:00:00 2001 1From fe1c2fdfe81f2ac2b41fe8543ba07f1911770d26 Mon Sep 17 00:00:00 2001
2From: Jianxun Zhang <jianxun.zhang@linux.intel.com> 2From: Jianxun Zhang <jianxun.zhang@linux.intel.com>
3Date: Sat, 21 May 2016 18:52:07 -0700 3Date: Sat, 21 May 2016 18:52:07 -0700
4Subject: [PATCH 1/3] sd-boot: Link RMC library into bootloader 4Subject: [PATCH] sd-boot: Link RMC library into bootloader and stub
5 5
6Add RMC library into bootloader binary. EFI stub is not changed 6Add RMC library into bootloader binary and stub.
7until we really need rmc in stub.
8 7
9Upstream-Status: Pending 8Upstream-Status: Pending
10 9
11Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com> 10Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
12--- 11---
13 Makefile.am | 2 +- 12 Makefile.am | 4 ++--
14 1 file changed, 1 insertion(+), 1 deletion(-) 13 1 file changed, 2 insertions(+), 2 deletions(-)
15 14
16diff --git a/Makefile.am b/Makefile.am 15diff --git a/Makefile.am b/Makefile.am
17index 305099a..df176a5 100644 16index 305099ab6..9fb6f9b7b 100644
18--- a/Makefile.am 17--- a/Makefile.am
19+++ b/Makefile.am 18+++ b/Makefile.am
20@@ -2802,7 +2802,7 @@ $(top_builddir)/src/boot/efi/%.o: $(top_srcdir)/src/boot/efi/%.c $(addprefix $(t 19@@ -2802,7 +2802,7 @@ $(top_builddir)/src/boot/efi/%.o: $(top_srcdir)/src/boot/efi/%.c $(addprefix $(t
@@ -26,6 +25,15 @@ index 305099a..df176a5 100644
26 nm -D -u $@ | grep ' U ' && exit 1 || : 25 nm -D -u $@ | grep ' U ' && exit 1 || :
27 26
28 $(systemd_boot): $(systemd_boot_solib) 27 $(systemd_boot): $(systemd_boot_solib)
28@@ -2852,7 +2852,7 @@ $(top_builddir)/src/boot/efi/%.o: $(top_srcdir)/src/boot/efi/%.c $(addprefix $(t
29
30 $(stub_solib): $(stub_objects)
31 $(AM_V_CCLD)$(LD) $(efi_ldflags) $(stub_objects) \
32- -o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \
33+ -o $@ -lefi -lgnuefi -lrmcefi $(shell $(CC) -print-libgcc-file-name); \
34 nm -D -u $@ | grep ' U ' && exit 1 || :
35
36 $(stub): $(stub_solib)
29-- 37--
302.7.4 382.11.0
31 39
diff --git a/common/recipes-bsp/systemd-boot/systemd-boot/0004-sd-boot-Support-global-kernel-command-line-fragment-in-EFI-stub.patch b/common/recipes-bsp/systemd-boot/systemd-boot/0004-sd-boot-Support-global-kernel-command-line-fragment-in-EFI-stub.patch
new file mode 100644
index 00000000..75082693
--- /dev/null
+++ b/common/recipes-bsp/systemd-boot/systemd-boot/0004-sd-boot-Support-global-kernel-command-line-fragment-in-EFI-stub.patch
@@ -0,0 +1,81 @@
1From 4cb9c65ea9c0eba3ba04d036dccd4a5ab3d2547b Mon Sep 17 00:00:00 2001
2From: Mikko Ylinen <mikko.ylinen@intel.com>
3Date: Fri, 27 Jan 2017 13:31:45 +0200
4Subject: [PATCH] sd-boot: support global kernel command line in EFI stub
5
6This change integrates rmc into EFI stub and supports a
7global fragment (RMC KBOOTPARAM) that is appended to the
8cmdline at boot.
9
10The fragment is board-specific and read from the database.
11
12Implements [YOCTO #10924].
13
14Upstream-status: Pending
15
16Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
17---
18 src/boot/efi/stub.c | 33 +++++++++++++++++++++++++++++++++
19 1 file changed, 33 insertions(+)
20
21diff --git a/src/boot/efi/stub.c b/src/boot/efi/stub.c
22index 1e250f34f..f3865199f 100644
23--- a/src/boot/efi/stub.c
24+++ b/src/boot/efi/stub.c
25@@ -13,6 +13,7 @@
26
27 #include <efi.h>
28 #include <efilib.h>
29+#include <rmc_api.h>
30
31 #include "disk.h"
32 #include "graphics.h"
33@@ -48,6 +49,9 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) {
34 UINTN cmdline_len;
35 CHAR16 uuid[37];
36 EFI_STATUS err;
37+ INTN len;
38+ CHAR8 *rmc_db = NULL;
39+ rmc_file_t rmc_file;
40
41 InitializeLib(image, sys_table);
42
43@@ -112,6 +116,35 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) {
44 #endif
45 }
46
47+ len = file_read(root_dir, L"\\rmc.db", 0, 0, &rmc_db);
48+ if (len <= 0)
49+ rmc_db = NULL;
50+
51+ /* If the board has a fragment in rmc database, append it to the cmdline */
52+ if (rmc_db && !rmc_gimme_file(sys_table, rmc_db, "KBOOTPARAM", &rmc_file)) {
53+ CHAR8 *line;
54+ UINTN i = 0;
55+ UINTN j;
56+
57+ line = AllocatePool(rmc_file.blob_len + cmdline_len + 2);
58+
59+ while (i < cmdline_len && cmdline[i] != '\0') {
60+ line[i] = cmdline[i];
61+ i++;
62+ }
63+
64+ line[i++] = ' ';
65+
66+ for (j=0; j < rmc_file.blob_len; j++)
67+ line[i+j] = rmc_file.blob[j];
68+ line[i+j] = '\0';
69+
70+ cmdline = line;
71+ cmdline_len = i + j;
72+
73+ FreePool(rmc_db);
74+ }
75+
76 /* export the device path this image is started from */
77 if (disk_get_part_uuid(loaded_image->DeviceHandle, uuid) == EFI_SUCCESS)
78 efivar_set(L"LoaderDevicePartUUID", uuid, FALSE);
79--
802.11.0
81
diff --git a/common/recipes-bsp/systemd-boot/systemd-boot_%.bbappend b/common/recipes-bsp/systemd-boot/systemd-boot_%.bbappend
index 12c1e5ab..0db67b13 100644
--- a/common/recipes-bsp/systemd-boot/systemd-boot_%.bbappend
+++ b/common/recipes-bsp/systemd-boot/systemd-boot_%.bbappend
@@ -15,9 +15,10 @@ EXTRA_OEMAKE_append_intel-x86-common = ' EFI_LDFLAGS="-L${STAGING_DIR_HOST}/usr/
15SRCREV_intel-x86-common = "a1e2ef7ec912902d8142e7cb5830cbfb47dba86c" 15SRCREV_intel-x86-common = "a1e2ef7ec912902d8142e7cb5830cbfb47dba86c"
16 16
17SRC_URI_append_intel-x86-common = " \ 17SRC_URI_append_intel-x86-common = " \
18 file://0001-sd-boot-Link-RMC-library-into-bootloader.patch \ 18 file://0001-sd-boot-Link-RMC-library-into-bootloader-and-stub.patch \
19 file://0002-sd-boot-Load-board-specific-boot-entries-from-RMC-da.patch \ 19 file://0002-sd-boot-Load-board-specific-boot-entries-from-RMC-da.patch \
20 file://0003-sd-boot-Support-global-kernel-command-line-fragment.patch \ 20 file://0003-sd-boot-Support-global-kernel-command-line-fragment.patch \
21 file://0004-sd-boot-Support-global-kernel-command-line-fragment-in-EFI-stub.patch \
21 file://0001-efi-boot.c-workaround-for-Joule-BIOS-hang.patch \ 22 file://0001-efi-boot.c-workaround-for-Joule-BIOS-hang.patch \
22 " 23 "
23 24