We now have RISC-V support in U-Boot - which is great! However, not that we're finally making progress to converge on efi_loader and distro boot for booting on ARM platforms, we really want to make sure there is no technical reason not to do the same on RISC-V as well.
So this patch set introduces distro boot and efi_loader support for RISC-V! So far, I've only tested it with the selftest and hello world target in U-Boot, as the number of target binaries to run is still slim. But it should at least give us a good starting point. v1 -> v2: - Allow 32bit target - Also save/restore ra, sp - Use edk2 default boot file names - Enable hello world binary - remove patch: efi_loader: selftest: Do not build relocation tests for risc-v - new patch: riscv: Add EFI application infrastructure Alexander Graf (8): riscv: Add setjmp/longjmp code riscv: Enable function sections riscv: Add EFI application infrastructure riscv: Add board_quiesce_devices stub efi_loader: Use EFI_CACHELINE_SIZE in the image loader too distro: Extend with RISC-V defines riscv: nx25: Enable distro boot efi_loader: Enable RISC-V support arch/riscv/config.mk | 7 ++- arch/riscv/cpu/nx25/u-boot.lds | 16 ++++++ arch/riscv/include/asm/setjmp.h | 26 ++++++++++ arch/riscv/include/asm/u-boot-riscv.h | 1 + arch/riscv/lib/Makefile | 12 +++++ arch/riscv/lib/bootm.c | 4 ++ arch/riscv/lib/elf_riscv32_efi.lds | 70 +++++++++++++++++++++++++ arch/riscv/lib/elf_riscv64_efi.lds | 70 +++++++++++++++++++++++++ arch/riscv/lib/reloc_riscv_efi.c | 97 +++++++++++++++++++++++++++++++++++ arch/riscv/lib/setjmp.S | 66 ++++++++++++++++++++++++ cmd/Kconfig | 2 +- configs/nx25-ae250_defconfig | 1 + include/config_distro_bootcmd.h | 14 ++++- include/configs/nx25-ae250.h | 17 ++++++ include/efi_loader.h | 7 +++ lib/efi_loader/Kconfig | 2 +- lib/efi_loader/efi_image_loader.c | 2 +- lib/efi_loader/efi_runtime.c | 48 ++++++++++++----- 18 files changed, 445 insertions(+), 17 deletions(-) create mode 100644 arch/riscv/include/asm/setjmp.h create mode 100644 arch/riscv/lib/elf_riscv32_efi.lds create mode 100644 arch/riscv/lib/elf_riscv64_efi.lds create mode 100644 arch/riscv/lib/reloc_riscv_efi.c create mode 100644 arch/riscv/lib/setjmp.S -- 2.12.3 _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

