[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