diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2019-10-23 18:55:57 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-10-24 09:59:30 +0200 |
commit | 60101d8efc8036853345061c288b4789be4c3132 (patch) | |
tree | fb4fc38c985a8bc2c6375d0940412c2b6575a2a5 /common/efi/env-efi | |
parent | 0ddc47db89b19baf6c085fc86537631126f3ff5f (diff) | |
download | barebox-60101d8efc8036853345061c288b4789be4c3132.tar.gz barebox-60101d8efc8036853345061c288b4789be4c3132.tar.xz |
efi: efi-image: don't mask x86 interrupts on boot
55da0cf1 ("efi: add support for initrd loading") introduced support for
the Linux v3.6+ handover protocol[1]. As part of this change a x86 cli
(Clear Interrupt Flag) instruction was introduced just prior to the jump
into the kernel's EFI handover protocol entry point.
While the normal Linux x86 boot protocols require that interrupts are
masked on entry, this doesn't apply to the EFI stub, because the EFI
stub itself is the one implementing the boot protocol and as such
masks the interrupts itself[2].
EFI watchdogs may, and often are, implemented using a timer interrupt.
Dropping the cli will allow monitoring the boot of the kernel up to it
calling ExitBootServices.
In absence of a hardware watchdog, this is the only watchdog available
to users with EFI 1.0+, so it seems prudent to not make it even more
useless.
[1]: https://www.kernel.org/doc/Documentation/x86/boot.txt
[2]: Linux v5.4-rc4, arch/x86/boot/compressed/eboot.c
Cc: Michael Olbrich <mol@pengutronix.de>
Fixes: 55da0cf1 ("efi: add support for initrd loading")
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common/efi/env-efi')
0 files changed, 0 insertions, 0 deletions