arm64: efi: invoke EFI_RNG_PROTOCOL to supply KASLR randomness
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 26 Jan 2016 13:48:29 +0000 (14:48 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 24 Feb 2016 14:57:29 +0000 (14:57 +0000)
commit2b5fe07a78a09a32002642b8a823428ade611f16
treedb8929655f2d9de7827d68fbfad1ea08d1cd0e29
parent48fcb2d0216103d15306caa4814e2381104df6d8
arm64: efi: invoke EFI_RNG_PROTOCOL to supply KASLR randomness

Since arm64 does not use a decompressor that supplies an execution
environment where it is feasible to some extent to provide a source of
randomness, the arm64 KASLR kernel depends on the bootloader to supply
some random bits in the /chosen/kaslr-seed DT property upon kernel entry.

On UEFI systems, we can use the EFI_RNG_PROTOCOL, if supplied, to obtain
some random bits. At the same time, use it to randomize the offset of the
kernel Image in physical memory.

Reviewed-by: Matt Fleming <matt@codeblueprint.co.uk>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/Kconfig
drivers/firmware/efi/libstub/arm-stub.c
drivers/firmware/efi/libstub/arm64-stub.c
drivers/firmware/efi/libstub/fdt.c