Current ARM relocation doesn't handle the cases when the relocation cant be satisfied directly (like thumb call over 1M of distance or jump24 to thumb mode. Attached patch adds missing tampoline and missing relocation handling to EFI code (it didn't allow to use ARM (no-Thumb) binary with EFI). I couldn't test it on either arm-efi or ARM64