mbox series

[RFC,V2,0/1] RISCV_EFI_BOOT_PROTOCOL support in linux

Message ID 20220303145944.307321-1-sunilvl@ventanamicro.com
Headers show
Series RISCV_EFI_BOOT_PROTOCOL support in linux | expand

Message

Sunil V L March 3, 2022, 2:59 p.m. UTC
This patch adds support for getting the boot hart ID using new
RISCV_EFI_BOOT_PROTOCOL in linux efi stub. While there is an existing
solution of passing the boot hart ID through Device Tree, it doesn't work
for ACPI. Hence an EFI protocol protocol is recommended which works for
both DT and ACPI based platforms.

The latest draft spec of this new protocol is available at
https://github.com/riscv-non-isa/riscv-uefi/releases/download/1.0-rc2/RISCV_UEFI_PROTOCOL-spec.pdf

This linux ptach can be found in:
riscv_boot_protocol_rfc_v2 branch at
https://github.com/vlsunil/linux.git

This is tested in qemu with u-boot 2022.04.rc3.

Changes since V1:
  - Rebased to get the "Fix get_boot_hartid_from_fdt() return value"
    patch
  - Removed mixed_mode member
  - Separated return value and status.

Sunil V L (1):
  riscv/efi_stub: Add support for RISCV_EFI_BOOT_PROTOCOL

 drivers/firmware/efi/libstub/efistub.h    |  7 ++++++
 drivers/firmware/efi/libstub/riscv-stub.c | 29 +++++++++++++++++++----
 include/linux/efi.h                       |  1 +
 3 files changed, 32 insertions(+), 5 deletions(-)

Comments

Palmer Dabbelt March 23, 2022, 1:32 a.m. UTC | #1
On Thu, 03 Mar 2022 06:59:43 PST (-0800), sunilvl@ventanamicro.com wrote:
> This patch adds support for getting the boot hart ID using new
> RISCV_EFI_BOOT_PROTOCOL in linux efi stub. While there is an existing
> solution of passing the boot hart ID through Device Tree, it doesn't work
> for ACPI. Hence an EFI protocol protocol is recommended which works for
> both DT and ACPI based platforms.
>
> The latest draft spec of this new protocol is available at
> https://github.com/riscv-non-isa/riscv-uefi/releases/download/1.0-rc2/RISCV_UEFI_PROTOCOL-spec.pdf

This looks fine to me, but we need the spec folk to commit to this being 
a stable interface before we can start using it.  Historically that's 
been "frozen" for RISC-V specs, but I'm not sure how that all fits 
together in EFI land as IIUC we also have to follow the UEFI forum's 
process.  Last I checked you guys understood that better than I did, so

Acked-by: Palmer Dabbelt <palmer@rivosinc.com> # pending spec freeze

I had a minor comment about the error message, as well.

Thanks!

> This linux ptach can be found in:
> riscv_boot_protocol_rfc_v2 branch at
> https://github.com/vlsunil/linux.git
>
> This is tested in qemu with u-boot 2022.04.rc3.
>
> Changes since V1:
>   - Rebased to get the "Fix get_boot_hartid_from_fdt() return value"
>     patch
>   - Removed mixed_mode member
>   - Separated return value and status.
>
> Sunil V L (1):
>   riscv/efi_stub: Add support for RISCV_EFI_BOOT_PROTOCOL
>
>  drivers/firmware/efi/libstub/efistub.h    |  7 ++++++
>  drivers/firmware/efi/libstub/riscv-stub.c | 29 +++++++++++++++++++----
>  include/linux/efi.h                       |  1 +
>  3 files changed, 32 insertions(+), 5 deletions(-)
Sunil V L March 23, 2022, 4:27 p.m. UTC | #2
On Tue, Mar 22, 2022 at 06:32:22PM -0700, Palmer Dabbelt wrote:
> On Thu, 03 Mar 2022 06:59:43 PST (-0800), sunilvl@ventanamicro.com wrote:
> > This patch adds support for getting the boot hart ID using new
> > RISCV_EFI_BOOT_PROTOCOL in linux efi stub. While there is an existing
> > solution of passing the boot hart ID through Device Tree, it doesn't work
> > for ACPI. Hence an EFI protocol protocol is recommended which works for
> > both DT and ACPI based platforms.
> > 
> > The latest draft spec of this new protocol is available at
> > https://github.com/riscv-non-isa/riscv-uefi/releases/download/1.0-rc2/RISCV_UEFI_PROTOCOL-spec.pdf
> 
> This looks fine to me, but we need the spec folk to commit to this being a
> stable interface before we can start using it.  Historically that's been
> "frozen" for RISC-V specs, but I'm not sure how that all fits together in
> EFI land as IIUC we also have to follow the UEFI forum's process.  Last I
> checked you guys understood that better than I did, so

Thank you Palmer. The specification is in frozen state now. 
http://lists.infradead.org/pipermail/linux-riscv/2022-March/013431.html.

Thanks
Sunil
> 
> Acked-by: Palmer Dabbelt <palmer@rivosinc.com> # pending spec freeze
> 
> I had a minor comment about the error message, as well.
> 
> Thanks!
> 
> > This linux ptach can be found in:
> > riscv_boot_protocol_rfc_v2 branch at
> > https://github.com/vlsunil/linux.git
> > 
> > This is tested in qemu with u-boot 2022.04.rc3.
> > 
> > Changes since V1:
> >   - Rebased to get the "Fix get_boot_hartid_from_fdt() return value"
> >     patch
> >   - Removed mixed_mode member
> >   - Separated return value and status.
> > 
> > Sunil V L (1):
> >   riscv/efi_stub: Add support for RISCV_EFI_BOOT_PROTOCOL
> > 
> >  drivers/firmware/efi/libstub/efistub.h    |  7 ++++++
> >  drivers/firmware/efi/libstub/riscv-stub.c | 29 +++++++++++++++++++----
> >  include/linux/efi.h                       |  1 +
> >  3 files changed, 32 insertions(+), 5 deletions(-)