[U-Boot] [PATCH v3 0/8] riscv: Enable efi_loader support

Alexander Graf agraf at suse.de
Mon Apr 23 05:59:42 UTC 2018


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

v2 -> v3:

  - Add missing crt0 source
  - Use official values for vci

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/crt0_riscv_efi.S       | 152 ++++++++++++++++++++++++++++++++++
 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       |  11 +++
 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 ++++++++---
 19 files changed, 595 insertions(+), 16 deletions(-)
 create mode 100644 arch/riscv/include/asm/setjmp.h
 create mode 100644 arch/riscv/lib/crt0_riscv_efi.S
 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



More information about the U-Boot mailing list