[PATCH 0/7] MIPS: Enable EFI support

Jiaxun Yang jiaxun.yang at flygoat.com
Fri May 17 18:32:51 CEST 2024


Hi all,

This series enabled EFI support to MIPS platform.

Although MIPS is not defined by UEFI specification, there are
quite a few firmware implementations available, including
MIPS-EFI[1] for Loongson-2F, Lemote's proprietary EDK2 implementation
on Loongson-3[2], Kunlun firmware for Loongson-3[3], efiffy[4]
for MIPS Creator CI20 and another mystery EDK implementation shipped
with some Creator CI20 board.  

Available applications including gnu-efi, Loongson's GRUB fork[5],
Ventoy[6].

My implementation in U-Boot is aiming to follow conventions made
by other implementations for architecture stuff and remain
compliance with spec for general aspects.

bootefi hello and selftest passed on both 32 and 64 bit system,
gnu-efi, grub and ventoy are tested on mips64el with my pending
platform works. mips32el efi executable from efiffy is tested
as well.

Please review.
Thanks

[1]: https://github.com/kontais/EFI-MIPS
[2]: https://github.com/loongson-community/firmware-nonfree
[3]: http://www.kunluntech.com.cn/klbiosxl
[4]: https://sourceforge.net/projects/efify/
[5]: https://github.com/loongson-community/grub
[6]: https://www.ventoy.net/en/index.html

Signed-off-by: Jiaxun Yang <jiaxun.yang at flygoat.com>
---
Jiaxun Yang (7):
      MIPS: Implement setjmp
      efi: Allow runtime relocate to be disabled
      Makefile.lib: Preserve .rodata section for EFI file
      Makefile.lib: Enforce EFI CFLAGS/AFLAGS
      MIPS: Add smbios_start to arch_global_data
      MIPS: Define MIPS EFI related bits everywhere
      MIPS: Implement EFI supporting stuff

 Makefile                                          |   3 +
 arch/mips/config.mk                               |   9 +
 arch/mips/include/asm/global_data.h               |   3 +
 arch/mips/include/asm/setjmp.h                    |  36 ++++
 arch/mips/lib/Makefile                            |  15 ++
 arch/mips/lib/crt0_mips_efi.S                     | 239 ++++++++++++++++++++++
 arch/mips/lib/elf_mips_efi.lds                    | 113 ++++++++++
 arch/mips/lib/reloc_mips_efi.c                    |  99 +++++++++
 arch/mips/lib/setjmp32.S                          |  51 +++++
 arch/mips/lib/setjmp64.S                          |  56 +++++
 include/asm-generic/pe.h                          |   5 +
 include/config_distro_bootcmd.h                   |   6 +
 include/efi_default_filename.h                    |   8 +
 include/efi_loader.h                              |  26 ++-
 include/elf.h                                     |   8 +
 lib/efi_loader/Kconfig                            |  12 +-
 lib/efi_loader/efi_image_loader.c                 |  18 ++
 lib/efi_loader/efi_memory.c                       |  14 +-
 lib/efi_loader/efi_runtime.c                      |  11 +-
 lib/efi_loader/efi_var_mem.c                      |   6 +-
 lib/efi_selftest/Makefile                         |   2 +-
 lib/efi_selftest/efi_selftest_miniapp_exception.c |   2 +
 scripts/Makefile.lib                              |  10 +-
 23 files changed, 734 insertions(+), 18 deletions(-)
---
base-commit: ad7dce5abd49ef3b5c93da5303e15449c8c162b4
change-id: 20240517-mips-efi-c9a1ad819c2d

Best regards,
-- 
Jiaxun Yang <jiaxun.yang at flygoat.com>



More information about the U-Boot mailing list