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

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

 



On Thu, 30 Apr 2020 at 00:52, Palmer Dabbelt <palmer@xxxxxxxxxxx> wrote:
>
> On Tue, 28 Apr 2020 10:57:48 PDT (-0700), atishp@xxxxxxxxxxxxxx wrote:
> > On Sun, Apr 26, 2020 at 12:52 PM Atish Patra <atishp@xxxxxxxxxxxxxx> wrote:
> >>
> >> 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
> >
> > Hi Palmer,
> > There were few build errors for all-yes config and nommu reported by
> > 0-day tests.
> > As some of the fixes require to add some dummy declarations for efi
> > runtime related functions,
> > Ard suggested that we should drop the series for now and merge with
> > full uefi support later.
>
> OK, I'll wait for another patch set.  That makes my life a bit easier as well,
> as we don't have to do the multi-tree merge in a single release.

Yeah. Apologies for the back and forth, but I really don't want to end
up in a place where I am juggling EFI fixes and have to care about
architectures that can't even use EFI in a meaningful way.



[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