Re: [v3 PATCH 0/5] Add UEFI support for RISC-V
From: Ard Biesheuvel
Date: Thu Apr 16 2020 - 03:45:12 EST
(+ Arvind)
On Wed, 15 Apr 2020 at 21:54, Atish Patra <atish.patra@xxxxxxx> wrote:
>
> This series adds UEFI support for RISC-V. Currently, only boot time
> services have been added. Runtime services will be added in a separate
> series. This series depends on some core EFI patches
> present in current in efi-next and following other patches.
>
> U-Boot: Adds the boot hartid under chosen node.
> https://lists.denx.de/pipermail/u-boot/2020-April/405726.html
>
> Linux kernel: 5.7-rc1
>
> OpenSBI: master
>
> Patch 1 just moves arm-stub code to a generic code so that it can be used
> across different architecture.
>
> Patch 3 adds fixmap bindings so that CONFIG_EFI can be compiled and we do not
> have create separate config to enable boot time services.
> As runtime services are not enabled at this time, full generic early ioremap
> support is also not added in this series.
>
> Patch 4 and 5 adds the PE/COFF header and EFI stub code support for RISC-V
> respectively.
>
> The patches can also be found in following git repo.
>
> https://github.com/atishp04/linux/tree/wip_uefi_riscv_v3
>
> The patches have been verified on Qemu using bootefi command in U-Boot.
>
> Changes from v2->v3:
> 1. Rebased on top of latest efi patches.
> 2. Improved handle_kernel_image().
>
> Changes from v1->v2:
> 1. Rebased on 5.7-rc1.
> 2. Fixed minor typos and removed redundant macros/comments.
>
> Changes from previous version:
> 1. Renamed to the generic efi stub macro.
> 2. Address all redundant comments.
> 3. Supported EFI kernel image with normal booti command.
> 4. Removed runtime service related macro defines.
>
> Atish Patra (5):
> efi: Move arm-stub to a common file
> include: pe.h: Add RISC-V related PE definition
> RISC-V: Define fixmap bindings for generic early ioremap support
> RISC-V: Add PE/COFF header for EFI stub
> RISC-V: Add EFI stub support.
>
I had some comments regarding patch #5, but the other ones look fine.
Given that there are two series in flight now that touch the same
code, I am going to merge the patches #1 and #2 of this series into
efi/next.
Once the remaining changes are good to go, I can take them as well,
but I'll need one of the RISC-V maintainers to ack them first.
> arch/arm/Kconfig | 2 +-
> arch/arm64/Kconfig | 2 +-
> arch/riscv/Kconfig | 21 ++++
> arch/riscv/Makefile | 1 +
> arch/riscv/configs/defconfig | 1 +
> arch/riscv/include/asm/Kbuild | 1 +
> arch/riscv/include/asm/efi.h | 44 +++++++
> arch/riscv/include/asm/fixmap.h | 18 +++
> arch/riscv/include/asm/io.h | 1 +
> arch/riscv/include/asm/sections.h | 13 ++
> arch/riscv/kernel/Makefile | 4 +
> arch/riscv/kernel/efi-header.S | 99 ++++++++++++++++
> arch/riscv/kernel/head.S | 16 +++
> arch/riscv/kernel/image-vars.h | 53 +++++++++
> arch/riscv/kernel/vmlinux.lds.S | 20 +++-
> drivers/firmware/efi/Kconfig | 4 +-
> drivers/firmware/efi/libstub/Makefile | 19 ++-
> .../efi/libstub/{arm-stub.c => efi-stub.c} | 0
> drivers/firmware/efi/libstub/riscv-stub.c | 111 ++++++++++++++++++
> include/linux/pe.h | 3 +
> 20 files changed, 421 insertions(+), 12 deletions(-)
> create mode 100644 arch/riscv/include/asm/efi.h
> create mode 100644 arch/riscv/include/asm/sections.h
> create mode 100644 arch/riscv/kernel/efi-header.S
> create mode 100644 arch/riscv/kernel/image-vars.h
> rename drivers/firmware/efi/libstub/{arm-stub.c => efi-stub.c} (100%)
> create mode 100644 drivers/firmware/efi/libstub/riscv-stub.c
>
> --
> 2.24.0
>