
From: Simon Glass <sjg@chromium.org> The ARM EFI app does not successfully boot an OS at present. This series includes patches to allow it to boot an OS via extlinux: The main changes are: - Call exit-boot-services before jumping to the OS - Write the physical-memory info to the FDT - Tidy up some Kconfig options - Improve keyboard compatibility Note that QEMU 8.2 does not boot Ubuntu 24.04 with this series[1]. The kernel dies quite early with: ERROR:target/arm/internals.h:767:regime_is_user: code should not be reached Bail out! ERROR:target/arm/internals.h:767:regime_is_user: code should not be reached QEMU 9.2 resolves this problem. [1] https://lists.opensuse.org/archives/list/bugs@lists.opensuse.org/ message/XVO4M4LDEFOORP5M4ZFINZDX36DWO3G5/ Changes in v2: - Add a comment to serial_efi_get_key() about the 1ms delay Simon Glass (19): treewide: Correct paramters typo scripts: Add an option for the build directory efi: Move efi_store_memory_map() to the stub efi: Adjust serial to work better on real devices efi: Use the same format for all EFI_GUID() declarations efi: Add a few more GUIDs efi: Move memory-map dumping into a common file efi: Add a function to obtain the memory type as a string efi: Run happily without a video display efi: Rename efi_block_device driver efi: Exit EFI boot-services before starting the next app efi: Set the FDT address for QEMU efi: boot: Correct calculation of load address in app efi: Update the ARM app to boot from extlinux efi: arm: Expand app to use 512M of memory efi: arm: Add the memory map to the FDT efi: arm: Increase the cyclic timeout test: Provide a test for the ARM EFI app booting Ubuntu CI: Provide a QEMU instance for efi-arm_app64 .gitlab-ci.yml | 6 + arch/arm/include/asm/arch-mx6/mx6_plugin.S | 2 +- arch/arm/include/asm/arch-mx7/mx7_plugin.S | 2 +- board/efi/efi-arm_app/board.c | 30 ++++ board/efi/efi-arm_app/efi-arm_app.env | 1 + boot/bootm.c | 2 + cmd/efi.c | 119 +------------- configs/efi-arm_app64_defconfig | 4 + drivers/ddr/fsl/options.c | 2 +- drivers/ddr/marvell/axp/ddr3_spd.c | 2 +- drivers/serial/serial_efi.c | 37 ++++- drivers/video/efi.c | 8 +- include/efi.h | 46 +++++- include/efi_api.h | 178 +++++++++++---------- include/image.h | 2 +- lib/efi/Makefile | 1 + lib/efi/memory.c | 132 +++++++++++++++ lib/efi_client/efi.c | 48 ------ lib/efi_client/efi_app.c | 64 +++++++- lib/efi_client/stub.c | 57 +++++++ lib/efi_driver/efi_block_device.c | 2 +- lib/uuid.c | 4 + scripts/build-efi | 19 ++- scripts/build_helper.py | 1 + test/py/tests/test_distro.py | 22 ++- 25 files changed, 517 insertions(+), 274 deletions(-) create mode 100644 lib/efi/memory.c -- 2.43.0 base-commit: 97a083c86cfaab2268dc8a0f90aedbac6d419738 branch: loadn2