[PATCH] arm64/efi: do not assume DRAM base is aligned to 2 MB
Timur Tabi
timur at codeaurora.org
Thu Oct 29 07:52:13 PDT 2015
On 10/29/2015 09:07 AM, Ard Biesheuvel wrote:
> The current arm64 Image relocation code in the UEFI stub assumes that
> the dram_base argument it receives is always a multiple of 2 MB. In
> reality, it is simply the lowest start address of all RAM entries in
> the UEFI memory map, which means it could be any multiple of 4 KB.
>
> Since the arm64 kernel Image needs to reside TEXT_OFFSET bytes beyond
> a 2 MB aligned base, or it will fail to boot, make sure we round dram_base
> to 2 MB before using it to calculate the relocation address.
>
> Reported-by: Timur Tabi<timur at codeaurora.org>
> Acked-by: Mark Rutland<mark.rutland at arm.com>
> Signed-off-by: Ard Biesheuvel<ard.biesheuvel at linaro.org>
This works for me
Tested-by: Timur Tabi<timur at codeaurora.org>
On my system, dram_base is 0x4000820000, and *image_addr is
0x43956db000, preferred_offset is set to 0x4000880000.
--
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.
More information about the linux-arm-kernel
mailing list