Package: linux-image-5.7.0-1-amd64 Severity: normal Dear Maintainer,
We have a number of MinnowBoards (Intel Atom based SBC with TianoCore EDK II UEFI firmware) that we use for development of the Debian derived Apertis distribution. We have recently found that these boards are stalling for approximately 5 minutes during boot, after the firmware has printed the following message: >>>>Clear memory in MRC per MOR request Start, Please wait for some minutes... This is replicable with a vanilla Debian image too. I have performed some diagnosis of the issue and this is what I've discovered: The delay is a result of the UEFI firmware on the Minnowboard performing a "MemoryOverwriteRequest", due to it finding that the related "MemoryOverwriteRequestControl" EFI variable is set. The kernel provides functionality via the "CONFIG_RESET_ATTACK_MITIGATION" option to set this bit on boot, which is enabled in the Debian config. When this option is enabled and the required functionality is present, the intention appears to be that this EFI variable, which is exposed via `/sys/firmware/efi/efivars/MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829`, is cleared by user space on a "clean shutdown after secrets have been evicted" from memory, as stated in the relevant kernel config option (1). The config option also suggests that "This should only be enabled when userland is configured to clear the MemoryOverwriteRequest flag". I have not been able to find such a mechanism provided in Debian, thus I'd expect to see this memory clean to end up being performed at every boot where this functionality is provided. Of the 6 amd64/x64 based devices I had available for testing, 2 of the machines (including the MinnowBoard) exposed this EFI variable. The other (an AMD Ryzen based laptop) didn't seem to present this issue/delay at boot. I am thus unsure how frequently this issue will be hit by Debian users. As a Debian user, I am raising this bug to ensure the potentially rare but inconvenient side effect of having this option enabled have been raised and indexed somewhere (it's not been the easiest issue to find information about) and to enable a discussion regarding the suitability of enabling this option by default in Debian. Thanks, Martyn 1) https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/efi/Kconfig#n202 -- System Information: Debian Release: bullseye/sid APT prefers testing-debug APT policy: (500, 'testing-debug'), (500, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: armhf, i386 Kernel: Linux 5.7.0-2-amd64 (SMP w/8 CPU threads) Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages linux-image-5.7.0-1-amd64 depends on: ii initramfs-tools [linux-initramfs-tool] 0.139 ii kmod 27+20200310-2 ii linux-base 4.6 Versions of packages linux-image-5.7.0-1-amd64 recommends: ii apparmor 2.13.4-3 ii firmware-linux-free 20200122-1 Versions of packages linux-image-5.7.0-1-amd64 suggests: pn debian-kernel-handbook <none> ii grub-efi-amd64 2.04-8 pn linux-doc-5.7 <none>