]> git.baikalelectronics.ru Git - uboot.git/commit
efi_loader: Handle RELA absolute relocations properly
authorAlexander Graf <agraf@suse.de>
Sun, 4 Nov 2018 21:25:22 +0000 (22:25 +0100)
committerAlexander Graf <agraf@suse.de>
Sun, 2 Dec 2018 20:59:37 +0000 (21:59 +0100)
commit65b59f0e748bc233fb01e047147e27ee162adfad
tree19a7dff5232914c3b6a2fdbe9d7cf367c05dd905
parent6ddc7ec724c4f8d4c3e8549c2e0be57e7d544f12
efi_loader: Handle RELA absolute relocations properly

With RELA absolute relocations, the relocation target contains our link
offset which we need to remove from the equation again. We did this
properly in the relative relocation path, but not in the absolute one.

So let's do this for the absolute one as well. That way, u-boot can have
a TEXT_OFFSET of != 0 and still relocate itself properly.

This fixes a bug where efi_loader did not work on the RISC-V QEMU port.
With this patch, I can successfully run UEFI applications on the RISC-V
QEMU port.

Reported-by: Auer, Lukas <lukas.auer@aisec.fraunhofer.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
lib/efi_loader/efi_runtime.c