efi: arm: Simplify the crt0 file and update link script

We don't need to manually add the PE header, since binutils has support
for this now. Remove it to simplify the file.

Set the link-target to efi-app-aarch64 so that binutils knows what to
do. Add rules to pick up the arm64 files.

Make some updates to the link-script for arm64, so this all works:

- Pass  .hash .eh_frame and .reloc sections through to objcopy
- Put RELA pieces into a single section
- Put linker lists into .data
- Embed the dtb

Add a config.mk fragment into the baord directory.

Note that it does not seem to be possible to use this approach with
32-bit ARM, so this is left alone.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2025-02-14 20:22:49 -07:00
parent a615863003
commit 7fa6a68131
5 changed files with 74 additions and 151 deletions

View File

@@ -0,0 +1,4 @@
# SPDX-License-Identifier: GPL-2.0+
BUILD_CFLAGS += -shared
PLATFORM_CPPFLAGS += $(CFLAGS_EFI)