http://bugzilla.opensuse.org/show_bug.cgi?id=1122614
http://bugzilla.opensuse.org/show_bug.cgi?id=1122614#c35
--- Comment #35 from Joey Lee
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.