Re: [GIT PULL] EFI stub loading support for RISC-V

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Apr 25, 2020 at 12:31 PM Ard Biesheuvel <ardb@xxxxxxxxxx> wrote:
>
> Palmer,
>
> As discussed, below are the changes for v5.8 that can be taken via the
> RISC-V tree to implement booting RISC-V Linux from EFI firmware.
>
> You can fetch and merge the signed tag directly, or merge 22090f84bc3f80
> and cherry pick the 4 patches on top of it, if you see any need to do so
> (but please use a topic branch in that case)
>
> Please be aware (as is noted in the tag) that these changes are really
> the bare minimum that is needed to launch the kernel from EFI firmware.
> In the current state, you may be able to boot from Uboot in EFI mode,
> but Tianocore based boot will not work at all, unless you convert the
> EFI memory map back to DT memory nodes in the firmware implementation,
> and I can assure you that that is not something that will be accepted in
> upstream Tianocore.
>
> So in summary, this is unfinished work, and I can only recommend merging
> these changes once there is a plan in place to complete the implementation.
>

I have started looking into this part. My initial plan was to start
looking into it right after I got
the boot time services working but other things took priority. Thanks
for your review and
suggestion throughout the process. I will coordinate with Abner/Daniel
to test RISC-V UEFI
runtime services(once implemented)  with tianocore.
> --
> Ard.
>
>
> The following changes since commit 22090f84bc3f8081e0ec180ccaedc85820085376:
>
>   efi/libstub: unify EFI call wrappers for non-x86 (2020-04-23 20:15:06 +0200)
>
> are available in the Git repository at:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git tags/riscv-efi-for-v5.8
>
> for you to fetch changes up to 66b4ac6b9dd1fdbb8ac7a1f20a8d08066368245d:
>
>   RISC-V: Add EFI stub support. (2020-04-25 13:59:54 +0200)
>
> ----------------------------------------------------------------
> EFI stub loading support for RISC-V
>
> This branch implements support for loading the RISC-V Linux kernel
> straight from EFI firmware, by adding PE/COFF metadata to the kernel
> image and incorporating the kernel's EFI stub.
>
> Note that this is the *bare* minimum that is needed to boot from EFI
> firmware. The following pieces are still missing at this point, and
> will be required for full interoperability with generic EFI firmware:
> - using the EFI memory map instead of the device tree to populate the
>   memblock tables
> - parsing and handling of generic EFI configuration tables (such as
>   SMBIOS), as well as architecture specific ones that may be defined
>   for RISC-V
> - runtime mapping of EFI runtime services memory and MMIO regions, and
>   support for EFI runtime services (get/set time, get/set variable, reset
>   system)
>
> ----------------------------------------------------------------
>
> Cc: Atish Patra <atish.patra@xxxxxxx>
> Cc: Palmer Dabbelt <palmer@xxxxxxxxxxx>
> Cc: Paul Walmsley <paul.walmsley@xxxxxxxxxx>
> Cc: Albert Ou <aou@xxxxxxxxxxxxxxxxx>
> Cc: linux-riscv@xxxxxxxxxxxxxxxxxxx
>
> Atish Patra (4):
>       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.
>
>  arch/riscv/Kconfig                        |  22 ++++++
>  arch/riscv/Makefile                       |   1 +
>  arch/riscv/configs/defconfig              |   1 +
>  arch/riscv/include/asm/Kbuild             |   1 +
>  arch/riscv/include/asm/efi.h              |  33 +++++++++
>  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            | 100 +++++++++++++++++++++++++++
>  arch/riscv/kernel/head.S                  |  16 +++++
>  arch/riscv/kernel/image-vars.h            |  53 +++++++++++++++
>  arch/riscv/kernel/vmlinux.lds.S           |  22 +++++-
>  drivers/firmware/efi/Kconfig              |   3 +-
>  drivers/firmware/efi/libstub/Makefile     |  10 +++
>  drivers/firmware/efi/libstub/riscv-stub.c | 109 ++++++++++++++++++++++++++++++
>  include/linux/pe.h                        |   3 +
>  17 files changed, 407 insertions(+), 3 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
>  create mode 100644 drivers/firmware/efi/libstub/riscv-stub.c



-- 
Regards,
Atish



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux