Switch EFI users to new config and fix ESC no longer showing the menu

Resolves: rhbz#1918817
Resolves: rhbz#1928595

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
This commit is contained in:
Javier Martinez Canillas 2021-02-22 20:11:09 +01:00
parent a32aa179fa
commit c65a33ebca
No known key found for this signature in database
GPG key ID: C751E590D63F3D69
28 changed files with 33 additions and 454 deletions

View file

@ -1,121 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Renaud=20M=C3=A9trich?= <rmetrich@redhat.com>
Date: Thu, 3 Dec 2020 09:13:24 +0100
Subject: [PATCH] at_keyboard: use set 1 when keyboard is in Translate mode
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When keyboard controller acts in Translate mode (0x40 mask), then use
set 1 since translation is done.
Otherwise use the mode queried from the controller (usually set 2).
Added "atkeyb" debugging messages in at_keyboard module as well.
Resolves: rhbz#1897587
Tested on:
- Asus N53SN (set 1 used)
- Dell Precision (set 1 used)
- HP Elitebook (set 2 used)
- HP G5430 (set 1 used, keyboard in XT mode!)
- Lenovo P71 & Lenovo T460s (set 2 used)
- QEMU/KVM (set 1 used)
Signed-off-by: Renaud Métrich <rmetrich@redhat.com>
---
grub-core/term/at_keyboard.c | 29 ++++++++++++++++++++++++-----
include/grub/at_keyboard.h | 4 ++++
2 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c
index f0a986eb176..69d99b61df5 100644
--- a/grub-core/term/at_keyboard.c
+++ b/grub-core/term/at_keyboard.c
@@ -135,20 +135,28 @@ query_mode (void)
int e;
e = write_mode (0);
- if (!e)
+ if (!e) {
+ grub_dprintf("atkeyb", "query_mode: write_mode(0) failed\n");
return 0;
+ }
do {
keyboard_controller_wait_until_ready ();
ret = grub_inb (KEYBOARD_REG_DATA);
} while (ret == GRUB_AT_ACK);
/* QEMU translates the set even in no-translate mode. */
- if (ret == 0x43 || ret == 1)
+ if (ret == 0x43 || ret == 1) {
+ grub_dprintf("atkeyb", "query_mode: returning 1 (ret=0x%x)\n", ret);
return 1;
- if (ret == 0x41 || ret == 2)
+ }
+ if (ret == 0x41 || ret == 2) {
+ grub_dprintf("atkeyb", "query_mode: returning 2 (ret=0x%x)\n", ret);
return 2;
- if (ret == 0x3f || ret == 3)
+ }
+ if (ret == 0x3f || ret == 3) {
+ grub_dprintf("atkeyb", "query_mode: returning 3 (ret=0x%x)\n", ret);
return 3;
+ }
return 0;
}
@@ -165,7 +173,13 @@ set_scancodes (void)
}
#if !USE_SCANCODE_SET
- ps2_state.current_set = 1;
+ if ((grub_keyboard_controller_orig & KEYBOARD_AT_TRANSLATE) == KEYBOARD_AT_TRANSLATE) {
+ grub_dprintf ("atkeyb", "queried set is %d but keyboard in Translate mode, so actually in set 1\n", grub_keyboard_orig_set);
+ ps2_state.current_set = 1;
+ } else {
+ grub_dprintf ("atkeyb", "using queried set %d\n", grub_keyboard_orig_set);
+ ps2_state.current_set = grub_keyboard_orig_set;
+ }
return;
#else
@@ -266,6 +280,7 @@ grub_keyboard_controller_init (void)
grub_keyboard_orig_set = 2;
#else
grub_keyboard_controller_orig = grub_keyboard_controller_read ();
+ grub_dprintf ("atkeyb", "grub_keyboard_controller_orig = 0x%x\n", grub_keyboard_controller_orig);
grub_keyboard_orig_set = query_mode ();
#endif
set_scancodes ();
@@ -275,11 +290,15 @@ grub_keyboard_controller_init (void)
static grub_err_t
grub_keyboard_controller_fini (struct grub_term_input *term __attribute__ ((unused)))
{
+/* In !USE_SCANCODE_SET mode, we didn't change anything, so nothing to restore */
+#if USE_SCANCODE_SET
if (ps2_state.current_set == 0)
return GRUB_ERR_NONE;
+ grub_dprintf ("atkeyb", "restoring set %d, controller 0x%x\n", grub_keyboard_orig_set, grub_keyboard_controller_orig);
if (grub_keyboard_orig_set)
write_mode (grub_keyboard_orig_set);
grub_keyboard_controller_write (grub_keyboard_controller_orig);
+#endif
return GRUB_ERR_NONE;
}
diff --git a/include/grub/at_keyboard.h b/include/grub/at_keyboard.h
index bcb4d9ba78f..9414dc1b996 100644
--- a/include/grub/at_keyboard.h
+++ b/include/grub/at_keyboard.h
@@ -19,6 +19,10 @@
#ifndef GRUB_AT_KEYBOARD_HEADER
#define GRUB_AT_KEYBOARD_HEADER 1
+/*
+ * Refer to https://wiki.osdev.org/%228042%22_PS/2_Controller for details.
+ */
+
/* Used for sending commands to the controller. */
#define KEYBOARD_COMMAND_ISREADY(x) !((x) & 0x02)
#define KEYBOARD_COMMAND_READ 0x20

View file

@ -1,251 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Renaud=20M=C3=A9trich?= <rmetrich@redhat.com>
Date: Fri, 18 Dec 2020 15:39:26 +0100
Subject: [PATCH] Add 'at_keyboard_fallback_set' var to force the set manually
This seems required with HP DL380p Gen 8 systems.
Indeed, with this system, we can see the following sequence:
1. controller is queried to get current configuration (returns 0x30 which is quite standard)
2. controller is queried to get the current keyboard set in used, using code 0xf0 (first part)
3. controller answers with 0xfa which means "ACK" (== ok)
4. then we send "0" to tell "we want to know which set your are supporting"
5. controller answers with 0xfa ("ACK")
6. controller should then give us 1, 2, 3 or 0x43, 0x41, 0x3f, but here it gives us 0xfe which means "NACK"
Since there seems no way to determine the current set, and in fact the
controller expects set2 to be used, we need to rely on an environment
variable.
Everything has been tested on this system: using 0xFE (resend command),
making sure we wait for ACK in the 2 steps "write_mode", etc.
Below is litterature I used to come up with "there is no other
solution":
- https://wiki.osdev.org/%228042%22_PS/2_Controller
- http://www-ug.eecg.toronto.edu/msl/nios_devices/datasheets/PS2%20Keyboard%20Protocol.htm
- http://www.s100computers.com/My%20System%20Pages/MSDOS%20Board/PC%20Keyboard.pdf
---
grub-core/term/at_keyboard.c | 127 ++++++++++++++++++++++++++++++++++---------
1 file changed, 101 insertions(+), 26 deletions(-)
diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c
index 69d99b61df5..e7d51b249ad 100644
--- a/grub-core/term/at_keyboard.c
+++ b/grub-core/term/at_keyboard.c
@@ -31,6 +31,7 @@ GRUB_MOD_LICENSE ("GPLv3+");
static grub_uint8_t grub_keyboard_controller_orig;
static grub_uint8_t grub_keyboard_orig_set;
struct grub_ps2_state ps2_state;
+static int fallback_set;
static int ping_sent;
@@ -76,6 +77,8 @@ at_command (grub_uint8_t data)
break;
return 0;
}
+ if (i == GRUB_AT_TRIES)
+ grub_dprintf ("atkeyb", "at_command() timed out! (stopped after %d tries)\n", i);
return (i != GRUB_AT_TRIES);
}
@@ -105,6 +108,21 @@ grub_keyboard_controller_read (void)
#endif
+static int
+resend_last_result (void)
+{
+ grub_uint8_t ret;
+ keyboard_controller_wait_until_ready ();
+ grub_dprintf ("atkeyb", "resend_last_result: sending 0xfe\n");
+ grub_outb (0xfe, KEYBOARD_REG_DATA);
+ ret = wait_ack ();
+ grub_dprintf ("atkeyb", "resend_last_result: wait_ack() returned 0x%x\n", ret);
+ keyboard_controller_wait_until_ready ();
+ ret = grub_inb (KEYBOARD_REG_DATA);
+ grub_dprintf ("atkeyb", "resend_last_result: read 0x%x from controller\n", ret);
+ return ret;
+}
+
static int
write_mode (int mode)
{
@@ -113,11 +131,17 @@ write_mode (int mode)
{
grub_uint8_t ack;
keyboard_controller_wait_until_ready ();
+ grub_dprintf ("atkeyb", "write_mode: sending 0xf0\n");
grub_outb (0xf0, KEYBOARD_REG_DATA);
+ ack = wait_ack ();
+ grub_dprintf ("atkeyb", "write_mode: wait_ack() returned 0x%x\n", ack);
+ if (ack != GRUB_AT_ACK)
+ continue;
keyboard_controller_wait_until_ready ();
+ grub_dprintf ("atkeyb", "write_mode: sending mode %d\n", mode);
grub_outb (mode, KEYBOARD_REG_DATA);
- keyboard_controller_wait_until_ready ();
ack = wait_ack ();
+ grub_dprintf ("atkeyb", "write_mode: wait_ack() returned 0x%x\n", ack);
if (ack == GRUB_AT_NACK)
continue;
if (ack == GRUB_AT_ACK)
@@ -125,6 +149,9 @@ write_mode (int mode)
return 0;
}
+ if (i == GRUB_AT_TRIES)
+ grub_dprintf ("atkeyb", "write_mode() timed out! (stopped after %d tries)\n", i);
+
return (i != GRUB_AT_TRIES);
}
@@ -132,31 +159,66 @@ static int
query_mode (void)
{
grub_uint8_t ret;
+ grub_uint64_t endtime;
+ unsigned i;
int e;
+ char *envvar;
- e = write_mode (0);
- if (!e) {
- grub_dprintf("atkeyb", "query_mode: write_mode(0) failed\n");
- return 0;
- }
+ for (i = 0; i < GRUB_AT_TRIES; i++) {
+ grub_dprintf ("atkeyb", "query_mode: sending command to controller\n");
+ e = write_mode (0);
+ if (!e) {
+ grub_dprintf ("atkeyb", "query_mode: write_mode(0) failed\n");
+ return 0;
+ }
- do {
- keyboard_controller_wait_until_ready ();
- ret = grub_inb (KEYBOARD_REG_DATA);
- } while (ret == GRUB_AT_ACK);
- /* QEMU translates the set even in no-translate mode. */
- if (ret == 0x43 || ret == 1) {
- grub_dprintf("atkeyb", "query_mode: returning 1 (ret=0x%x)\n", ret);
- return 1;
- }
- if (ret == 0x41 || ret == 2) {
- grub_dprintf("atkeyb", "query_mode: returning 2 (ret=0x%x)\n", ret);
- return 2;
+ endtime = grub_get_time_ms () + 20;
+ do {
+ keyboard_controller_wait_until_ready ();
+ ret = grub_inb (KEYBOARD_REG_DATA);
+ grub_dprintf ("atkeyb", "query_mode/loop: read 0x%x from controller\n", ret);
+ } while ((ret == GRUB_AT_ACK || ret == GRUB_AT_NACK) && grub_get_time_ms () < endtime);
+ if (ret == 0xfe) {
+ grub_dprintf ("atkeyb", "query_mode: asking controller to resend last result\n");
+ ret = resend_last_result();
+ grub_dprintf ("atkeyb", "query_mode: read 0x%x from controller\n", ret);
+ }
+ /* QEMU translates the set even in no-translate mode. */
+ if (ret == 0x43 || ret == 1) {
+ grub_dprintf ("atkeyb", "query_mode: controller returned 0x%x, returning 1\n", ret);
+ return 1;
+ }
+ if (ret == 0x41 || ret == 2) {
+ grub_dprintf ("atkeyb", "query_mode: controller returned 0x%x, returning 2\n", ret);
+ return 2;
+ }
+ if (ret == 0x3f || ret == 3) {
+ grub_dprintf ("atkeyb", "query_mode: controller returned 0x%x, returning 3\n", ret);
+ return 3;
+ }
+ grub_dprintf ("atkeyb", "query_mode: controller returned unexpected value 0x%x, retrying\n", ret);
}
- if (ret == 0x3f || ret == 3) {
- grub_dprintf("atkeyb", "query_mode: returning 3 (ret=0x%x)\n", ret);
- return 3;
+
+ /*
+ * Falling here means we tried querying and the controller returned something
+ * we don't understand, try to use 'at_keyboard_fallback_set' if it exists,
+ * otherwise return 0.
+ */
+ envvar = grub_env_get ("at_keyboard_fallback_set");
+ if (envvar) {
+ fallback_set = grub_strtoul (envvar, 0, 10);
+ if ((grub_errno) || (fallback_set < 1) || (fallback_set > 3)) {
+ grub_dprintf ("atkeyb", "WARNING: ignoring unexpected value '%s' for '%s' variable\n",
+ envvar, "at_keyboard_fallback_set");
+ fallback_set = 0;
+ } else {
+ grub_dprintf ("atkeyb", "query_mode: '%s' specified in environment, returning %d\n",
+ "at_keyboard_fallback_set", fallback_set);
+ }
+ return fallback_set;
}
+ grub_dprintf ("atkeyb", "WARNING: no '%s' specified in environment, returning 0\n",
+ "at_keyboard_fallback_set");
return 0;
}
@@ -165,14 +227,25 @@ set_scancodes (void)
{
/* You must have visited computer museum. Keyboard without scancode set
knowledge. Assume XT. */
- if (!grub_keyboard_orig_set)
- {
- grub_dprintf ("atkeyb", "No sets support assumed\n");
- ps2_state.current_set = 1;
+ if (!grub_keyboard_orig_set) {
+ if (fallback_set) {
+ grub_dprintf ("atkeyb", "No sets support assumed but set forced to %d\n", fallback_set);
+ ps2_state.current_set = fallback_set;
return;
}
+ grub_dprintf ("atkeyb", "No sets support assumed, forcing to set 1\n");
+ ps2_state.current_set = 1;
+ return;
+ }
#if !USE_SCANCODE_SET
+ if (fallback_set) {
+ grub_dprintf ("atkeyb", "queried set is %d but set forced to %d\n",
+ grub_keyboard_orig_set, fallback_set);
+ ps2_state.current_set = fallback_set;
+ return;
+ }
+
if ((grub_keyboard_controller_orig & KEYBOARD_AT_TRANSLATE) == KEYBOARD_AT_TRANSLATE) {
grub_dprintf ("atkeyb", "queried set is %d but keyboard in Translate mode, so actually in set 1\n", grub_keyboard_orig_set);
ps2_state.current_set = 1;
@@ -229,6 +302,7 @@ grub_at_keyboard_is_alive (void)
if (KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS)))
{
+ grub_dprintf ("atkeyb", "grub_at_keyboard_is_alive: controller mode before self-test: 0x%x\n", grub_keyboard_controller_read());
grub_outb (0xaa, KEYBOARD_REG_STATUS);
ping_sent = 1;
}
@@ -261,6 +335,7 @@ grub_at_keyboard_getkey (struct grub_term_input *term __attribute__ ((unused)))
static void
grub_keyboard_controller_init (void)
{
+ grub_dprintf ("atkeyb", "initializing the controller\n");
ps2_state.at_keyboard_status = 0;
/* Drain input buffer. */
while (1)
@@ -282,6 +357,7 @@ grub_keyboard_controller_init (void)
grub_keyboard_controller_orig = grub_keyboard_controller_read ();
grub_dprintf ("atkeyb", "grub_keyboard_controller_orig = 0x%x\n", grub_keyboard_controller_orig);
grub_keyboard_orig_set = query_mode ();
+ grub_dprintf ("atkeyb", "grub_keyboard_orig_set = %d\n", grub_keyboard_orig_set);
#endif
set_scancodes ();
keyboard_controller_led (ps2_state.led_status);
@@ -329,7 +405,6 @@ grub_at_restore_hw (void)
return GRUB_ERR_NONE;
}
-
static struct grub_term_input grub_at_keyboard_term =
{
.name = "at_keyboard",

View file

@ -1,52 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Daniel Axtens <dja@axtens.net>
Date: Wed, 28 Oct 2020 11:44:29 +1100
Subject: [PATCH] ieee1275: claim up to 256MB memory
If we are verifying large kernels, we need more that 32MB. (Many distro
kernels are quite large, and debug kernels can be even bigger!)
We originally went with 512MB: qemu pseries gives you all the memory a
32-bit number can handle, so there was lots left over to place a linux image
and initrd.
Here's what we said then:
| This is possibly not the way we want to go with for upstream as it breaks
| booting on systems with <= 512MB. We're working on a more upstream-friendly
| solution and will post it shortly. However, for an end-user or packager with
| a higher minimum memory requirement, this will work fine.
However, we've since discovered that (at least on one P8 test system), PFW
doesn't expose all of the memory allocated to the LPAR: it looks like it just
exposes 512MB - at least unless we mess with the CHRP note section.
Therefore, if we try to claim 512MB in grub, things _do not_ work when we try
to load linux. As a compromise, and again we'd like a better upstream solution,
go for 256MB. This is at least enough to verify distro kernels.
Signed-off-by: Daniel Axtens <dja@axtens.net>
---
grub-core/kern/ieee1275/init.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c
index 937c1bc44cb..d84fba44d10 100644
--- a/grub-core/kern/ieee1275/init.c
+++ b/grub-core/kern/ieee1275/init.c
@@ -52,15 +52,13 @@
#ifdef __i386__
#define HEAP_MAX_SIZE (unsigned long) (64 * 1024 * 1024)
#else
-#define HEAP_MAX_SIZE (unsigned long) (32 * 1024 * 1024)
+#define HEAP_MAX_SIZE (unsigned long) (256 * 1024 * 1024)
#endif
-/* If possible, we will avoid claiming heap above this address, because it
- seems to cause relocation problems with OSes that link at 4 MiB */
#ifdef __i386__
#define HEAP_MAX_ADDR (unsigned long) (64 * 1024 * 1024)
#else
-#define HEAP_MAX_ADDR (unsigned long) (32 * 1024 * 1024)
+#define HEAP_MAX_ADDR (unsigned long) (256 * 1024 * 1024)
#endif
extern char _end[];

View file

@ -92,10 +92,10 @@ index 1fbc942254a..6efe58ce8b2 100644
cmd_trust =
grub_register_command ("trust_certificate", grub_cmd_trust,
diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c
index d84fba44d10..9ffc7919da8 100644
index 937c1bc44cb..5df2e0efae7 100644
--- a/grub-core/kern/ieee1275/init.c
+++ b/grub-core/kern/ieee1275/init.c
@@ -269,6 +269,30 @@ grub_parse_cmdline (void)
@@ -271,6 +271,30 @@ grub_parse_cmdline (void)
}
}
@ -126,7 +126,7 @@ index d84fba44d10..9ffc7919da8 100644
grub_addr_t grub_modbase;
void
@@ -294,6 +318,8 @@ grub_machine_init (void)
@@ -296,6 +320,8 @@ grub_machine_init (void)
#else
grub_install_get_time_ms (grub_rtc_get_time_ms);
#endif

View file

@ -276,29 +276,26 @@ Patch0275: 0275-ieee1275-Avoiding-many-unecessary-open-close.patch
Patch0276: 0276-ieee1275-powerpc-implements-fibre-channel-discovery-.patch
Patch0277: 0277-ieee1275-powerpc-enables-device-mapper-discovery.patch
Patch0278: 0278-btrfs-Add-support-for-new-RAID1C34-profiles.patch
Patch0279: 0279-at_keyboard-use-set-1-when-keyboard-is-in-Translate-.patch
Patch0280: 0280-Add-at_keyboard_fallback_set-var-to-force-the-set-ma.patch
Patch0281: 0281-verifiers-Fix-calling-uninitialized-function-pointer.patch
Patch0282: 0282-ieee1275-claim-up-to-256MB-memory.patch
Patch0283: 0283-Add-suport-for-signing-grub-with-an-appended-signatu.patch
Patch0284: 0284-docs-grub-Document-signing-grub-under-UEFI.patch
Patch0285: 0285-docs-grub-Document-signing-grub-with-an-appended-sig.patch
Patch0286: 0286-docs-grub-grub-install-is-no-longer-a-shell-script.patch
Patch0287: 0287-docs-grub-pubkey-has-been-supported-for-some-time.patch
Patch0288: 0288-dl-provide-a-fake-grub_dl_set_persistent-for-the-emu.patch
Patch0289: 0289-verifiers-provide-unsafe-module-list.patch
Patch0290: 0290-pgp-factor-out-rsa_pad.patch
Patch0291: 0291-crypto-move-storage-for-grub_crypto_pk_-to-crypto.c.patch
Patch0292: 0292-posix_wrap-tweaks-in-preparation-for-libtasn1.patch
Patch0293: 0293-libtasn1-import-libtasn1-4.16.0.patch
Patch0294: 0294-libtasn1-disable-code-not-needed-in-grub.patch
Patch0295: 0295-libtasn1-changes-for-grub-compatibility.patch
Patch0296: 0296-libtasn1-compile-into-asn1-module.patch
Patch0297: 0297-test_asn1-test-module-for-libtasn1.patch
Patch0298: 0298-grub-install-support-embedding-x509-certificates.patch
Patch0299: 0299-appended-signatures-import-GNUTLS-s-ASN.1-descriptio.patch
Patch0300: 0300-appended-signatures-parse-PKCS-7-signedData-and-X.50.patch
Patch0301: 0301-appended-signatures-support-verifying-appended-signa.patch
Patch0302: 0302-appended-signatures-verification-tests.patch
Patch0303: 0303-appended-signatures-documentation.patch
Patch0304: 0304-ieee1275-link-appended-signature-enforcement-to-ibm-.patch
Patch0279: 0279-verifiers-Fix-calling-uninitialized-function-pointer.patch
Patch0280: 0280-Add-suport-for-signing-grub-with-an-appended-signatu.patch
Patch0281: 0281-docs-grub-Document-signing-grub-under-UEFI.patch
Patch0282: 0282-docs-grub-Document-signing-grub-with-an-appended-sig.patch
Patch0283: 0283-docs-grub-grub-install-is-no-longer-a-shell-script.patch
Patch0284: 0284-docs-grub-pubkey-has-been-supported-for-some-time.patch
Patch0285: 0285-dl-provide-a-fake-grub_dl_set_persistent-for-the-emu.patch
Patch0286: 0286-verifiers-provide-unsafe-module-list.patch
Patch0287: 0287-pgp-factor-out-rsa_pad.patch
Patch0288: 0288-crypto-move-storage-for-grub_crypto_pk_-to-crypto.c.patch
Patch0289: 0289-posix_wrap-tweaks-in-preparation-for-libtasn1.patch
Patch0290: 0290-libtasn1-import-libtasn1-4.16.0.patch
Patch0291: 0291-libtasn1-disable-code-not-needed-in-grub.patch
Patch0292: 0292-libtasn1-changes-for-grub-compatibility.patch
Patch0293: 0293-libtasn1-compile-into-asn1-module.patch
Patch0294: 0294-test_asn1-test-module-for-libtasn1.patch
Patch0295: 0295-grub-install-support-embedding-x509-certificates.patch
Patch0296: 0296-appended-signatures-import-GNUTLS-s-ASN.1-descriptio.patch
Patch0297: 0297-appended-signatures-parse-PKCS-7-signedData-and-X.50.patch
Patch0298: 0298-appended-signatures-support-verifying-appended-signa.patch
Patch0299: 0299-appended-signatures-verification-tests.patch
Patch0300: 0300-appended-signatures-documentation.patch
Patch0301: 0301-ieee1275-link-appended-signature-enforcement-to-ibm-.patch

View file

@ -14,7 +14,7 @@
Name: grub2
Epoch: 1
Version: 2.04
Release: 35%{?dist}
Release: 36%{?dist}
Summary: Bootloader with support for Linux, Multiboot and more
License: GPLv3+
URL: http://www.gnu.org/software/grub/
@ -547,6 +547,12 @@ mv ${EFI_HOME}/grub.cfg.stb ${EFI_HOME}/grub.cfg
%endif
%changelog
* Mon Feb 22 2021 Javier Martinez Canillas <javierm@redhat.com> - 2.04-36
- Switch EFI users to new unified config
Resolves: rhbz#1918817
- Fix ESC key no longer showing the menu
Resolves: rhbz#1928595
* Mon Feb 08 2021 Javier Martinez Canillas <javierm@redhat.com> - 2.04-35
- Remove -fcf-protection compiler flag to allow i386 builds (law)
Related: rhbz#1915452