]> git.baikalelectronics.ru Git - kernel.git/commit
arm64/efi: do not assume DRAM base is aligned to 2 MB
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Thu, 29 Oct 2015 14:07:25 +0000 (15:07 +0100)
committerWill Deacon <will.deacon@arm.com>
Thu, 29 Oct 2015 16:10:58 +0000 (16:10 +0000)
commit2ee8766308e1f4ce675ff0f13024eb7163e31e06
treeb5cc57b7c2930d53923b1edc704de3ff74df6231
parentdd08a1f6c4e021283fb326ab4a7238a0afdd8072
arm64/efi: do not assume DRAM base is aligned to 2 MB

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.

Fixes: 6dc0608ceaffa115 ("arm64: efi: prefer AllocatePages() over efi_low_alloc() for vmlinux")
Reported-by: Timur Tabi <timur@codeaurora.org>
Tested-by: Timur Tabi <timur@codeaurora.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/efi-stub.c