Mailinglist Archive: opensuse-bugs (6499 mails)

< Previous Next >
[Bug 1122614] armv7 efistub enablement missing in GRUB2
  • From: bugzilla_noreply@xxxxxxxxxx
  • Date: Thu, 11 Jul 2019 09:03:35 +0000
  • Message-id: <bug-1122614-21960-yq3xNkQMbJ@http.bugzilla.opensuse.org/>
http://bugzilla.opensuse.org/show_bug.cgi?id=1122614
http://bugzilla.opensuse.org/show_bug.cgi?id=1122614#c35

--- Comment #35 from Joey Lee <jlee@xxxxxxxx> ---
(In reply to Guillaume GARDET from comment #33)
On Chromebook ARM, your patch fixes the boot.

On RPi2 it is broken as already reported at
https://bugzilla.opensuse.org/show_bug.cgi?id=1122614#c29
I suspect this line of code:
dram_base = round_up(dram_base, SZ_128M);
from
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/
drivers/firmware/efi/libstub/arm32-stub.c?h=v5.2#n207

which may cause troubles with the first 4K reserved memory.

If dram_base falls in the first reserved region, then the allocation in
reserve_kernel_base() will be failed as the original symptom. With patched
kernel, the allocation is pass. The new broken is in
allocate_new_fdt_and_exit_boot(), Chester Lin is looking at it.

Actually, it a bit mess in the allocation logic for kernel on ARM32. For
example:
The "dram_base + MAX_UNCOMP_KERNEL_SIZE" space be allocated in
reserve_kernel_base() as EFI_BOOT_SERVICES_DATA type. But in later
efi_relocate_kernel(), it tries to allocate the same space as EFI_LOADER_DATA
again. Which means that the efi_low_alloc() will always be performed. Then the
first allocation reserve_kernel_base() and efi_relocate_kernel() are useless.

I don't think that many people use the EFI stub code path on ARM32.

--
You are receiving this mail because:
You are on the CC list for the bug.
< Previous Next >