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 04:54:48 PDT (-0700), ardb@xxxxxxxxxx wrote:
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.

No problem, I just wanted to make sure I understood correctly as it was going
to be my first time trying to handle a multi-tree patch set like this so I'm a
bit lost.



[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