mbox series

[v2,0/8] riscv: Enable efi_loader support

Message ID 20180419154923.70719-1-agraf@suse.de
Headers show
Series riscv: Enable efi_loader support | expand

Message

Alexander Graf April 19, 2018, 3:49 p.m. UTC
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