10 Commits

Author SHA1 Message Date
Simon Glass
ff3028bdef Revert "efi: arm: Drop setting of fdt_addr"
Unfortunately we cannot do this yet, as when booting with QEMU the
devicetree is provided at the start of memory. Until we have a built-in
way to handle copying this, we must retain the fdt_addr variable.

This reverts commit acc02734be265e92ec88ace5ac097ccb3099d40f.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-09-25 19:19:22 +00:00
Simon Glass
c5606411f1 efi: arm: Drop setting of fdt_addr
This variable is not needed in the ARM app and can be confusing since
there might not be memory at this location. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-09-25 09:47:09 -06:00
Simon Glass
26dd69d4e4 efi: arm: Provide a mapping from CHIDs to compatible
The compatible string cannot be detected on the host so is not shown by
fupdtool. Add a simple text file to provide the mapping.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-09-04 07:08:24 -06:00
Simon Glass
8ca6dc0ca9 efi: arm: Provide CHIDs for the app
Provide some CHIDs for the app, so it can locate the compatible strings.

These are taken from Stubble commit bac4edb14be, with the original files
generated by running 'fwupdtool hwids' on each device.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-09-04 07:08:24 -06:00
Simon Glass
4e0efad3c5 fdt: Add debugging for fdt_simplefb
Add some simple debug output to see what it is doing.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-08-19 17:36:44 -06:00
Simon Glass
4bccd4ea31 efi: Set the FDT address for QEMU
When running under QEMU the FDT is available at the start of RAM. Set
fdt_addr to this address, so that the FDT can be passed onto the OS.

If the OS provides its own devicetree, that is used instead of the QEMU
one.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-08-14 07:45:25 -06:00
Simon Glass
10e31d38f8 efi: Exit EFI boot-services before starting the next app
When the app is booting a kernel without using EFI, it must first exit
the boot services provided by EFI. Add a hook for this, using
bootm_final()

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-08-14 07:45:25 -06:00
Simon Glass
9e7b8db24d efi: Tidy up nits in the ARM64 EFI app
This patches tidies up a few things in the recently added EFI app for
ARM:

- Use 0 as the value for SYS_LOAD_ADDR
- Reword help for TARGET_EFI_ARM_APP64
- Do the same for x86-app targets, for consistency
- Delete efi-arm_app32 MAINTAINERS entry since there is no such thing

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-04-08 14:52:28 -06:00
Simon Glass
483d409aa3 efi: arm: Add an EFI app for arm64
Introduce an EFI app for arm64 and update the documentation.

Provide a value for LOAD_ADDR to avoid a link error.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-03-27 05:31:43 -06:00
Simon Glass
7fa6a68131 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>
2025-03-27 05:31:43 -06:00