linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH V2 0/1] RISCV_EFI_BOOT_PROTOCOL support in linux
@ 2022-03-03 14:59 Sunil V L
  2022-03-03 14:59 ` [RFC PATCH V2 1/1] riscv/efi_stub: Add support for RISCV_EFI_BOOT_PROTOCOL Sunil V L
  2022-03-23  1:32 ` [RFC PATCH V2 0/1] RISCV_EFI_BOOT_PROTOCOL support in linux Palmer Dabbelt
  0 siblings, 2 replies; 6+ messages in thread
From: Sunil V L @ 2022-03-03 14:59 UTC (permalink / raw)
  To: Ard Biesheuvel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Heinrich Schuchardt
  Cc: Atish Patra, Anup Patel, Abner Chang, Jessica Clarke, linux-efi,
	linux-kernel, linux-riscv, Sunil V L

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(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [RFC PATCH V2 1/1] riscv/efi_stub: Add support for RISCV_EFI_BOOT_PROTOCOL
  2022-03-03 14:59 [RFC PATCH V2 0/1] RISCV_EFI_BOOT_PROTOCOL support in linux Sunil V L
@ 2022-03-03 14:59 ` Sunil V L
  2022-03-23  1:32   ` Palmer Dabbelt
  2022-03-23  1:32 ` [RFC PATCH V2 0/1] RISCV_EFI_BOOT_PROTOCOL support in linux Palmer Dabbelt
  1 sibling, 1 reply; 6+ messages in thread
From: Sunil V L @ 2022-03-03 14:59 UTC (permalink / raw)
  To: Ard Biesheuvel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Heinrich Schuchardt
  Cc: Atish Patra, Anup Patel, Abner Chang, Jessica Clarke, linux-efi,
	linux-kernel, linux-riscv, Sunil V L

This patch adds the support for getting the boot hart ID in
Linux EFI stub using RISCV_EFI_BOOT_PROTOCOL. This protocol
is preferred method over existing DT based solution since it
works irrespective of DT or ACPI.

The specification of the protocol is hosted at:
https://github.com/riscv-non-isa/riscv-uefi

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
---
 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(-)

diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h
index edb77b0621ea..aced62a0907e 100644
--- a/drivers/firmware/efi/libstub/efistub.h
+++ b/drivers/firmware/efi/libstub/efistub.h
@@ -720,6 +720,13 @@ union efi_tcg2_protocol {
 	} mixed_mode;
 };
 
+struct riscv_efi_boot_protocol {
+	u64 revision;
+
+	efi_status_t (__efiapi * get_boot_hartid)(struct riscv_efi_boot_protocol *this,
+						  size_t *boot_hartid);
+};
+
 typedef union efi_load_file_protocol efi_load_file_protocol_t;
 typedef union efi_load_file_protocol efi_load_file2_protocol_t;
 
diff --git a/drivers/firmware/efi/libstub/riscv-stub.c b/drivers/firmware/efi/libstub/riscv-stub.c
index 9c460843442f..915ad209d004 100644
--- a/drivers/firmware/efi/libstub/riscv-stub.c
+++ b/drivers/firmware/efi/libstub/riscv-stub.c
@@ -23,7 +23,7 @@
 
 typedef void __noreturn (*jump_kernel_func)(unsigned int, unsigned long);
 
-static u32 hartid;
+static size_t hartid;
 
 static int get_boot_hartid_from_fdt(void)
 {
@@ -47,14 +47,33 @@ static int get_boot_hartid_from_fdt(void)
 	return 0;
 }
 
+static efi_status_t get_boot_hartid_from_efi(void)
+{
+	efi_guid_t boot_protocol_guid = RISCV_EFI_BOOT_PROTOCOL_GUID;
+	efi_status_t status;
+	struct riscv_efi_boot_protocol *boot_protocol;
+
+	status = efi_bs_call(locate_protocol, &boot_protocol_guid, NULL,
+			     (void **)&boot_protocol);
+	if (status == EFI_SUCCESS) {
+		status = efi_call_proto(boot_protocol,
+					get_boot_hartid, &hartid);
+	}
+	return status;
+}
+
 efi_status_t check_platform_features(void)
 {
 	int ret;
+	efi_status_t status;
 
-	ret = get_boot_hartid_from_fdt();
-	if (ret) {
-		efi_err("/chosen/boot-hartid missing or invalid!\n");
-		return EFI_UNSUPPORTED;
+	status = get_boot_hartid_from_efi();
+	if (status != EFI_SUCCESS) {
+		ret = get_boot_hartid_from_fdt();
+		if (ret) {
+			efi_err("/chosen/boot-hartid missing or invalid!\n");
+			return EFI_UNSUPPORTED;
+		}
 	}
 	return EFI_SUCCESS;
 }
diff --git a/include/linux/efi.h b/include/linux/efi.h
index ccd4d3f91c98..9822c730207c 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -380,6 +380,7 @@ void efi_native_runtime_setup(void);
 #define EFI_CONSOLE_OUT_DEVICE_GUID		EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4,  0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d)
 #define APPLE_PROPERTIES_PROTOCOL_GUID		EFI_GUID(0x91bd12fe, 0xf6c3, 0x44fb,  0xa5, 0xb7, 0x51, 0x22, 0xab, 0x30, 0x3a, 0xe0)
 #define EFI_TCG2_PROTOCOL_GUID			EFI_GUID(0x607f766c, 0x7455, 0x42be,  0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f)
+#define RISCV_EFI_BOOT_PROTOCOL_GUID		EFI_GUID(0xccd15fec, 0x6f73, 0x4eec,  0x83, 0x95, 0x3e, 0x69, 0xe4, 0xb9, 0x40, 0xbf)
 #define EFI_LOAD_FILE_PROTOCOL_GUID		EFI_GUID(0x56ec3091, 0x954c, 0x11d2,  0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
 #define EFI_LOAD_FILE2_PROTOCOL_GUID		EFI_GUID(0x4006c0c1, 0xfcb3, 0x403e,  0x99, 0x6d, 0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d)
 #define EFI_RT_PROPERTIES_TABLE_GUID		EFI_GUID(0xeb66918a, 0x7eef, 0x402a,  0x84, 0x2e, 0x93, 0x1d, 0x21, 0xc3, 0x8a, 0xe9)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [RFC PATCH V2 1/1] riscv/efi_stub: Add support for RISCV_EFI_BOOT_PROTOCOL
  2022-03-03 14:59 ` [RFC PATCH V2 1/1] riscv/efi_stub: Add support for RISCV_EFI_BOOT_PROTOCOL Sunil V L
@ 2022-03-23  1:32   ` Palmer Dabbelt
  2022-03-24 11:01     ` Sunil V L
  0 siblings, 1 reply; 6+ messages in thread
From: Palmer Dabbelt @ 2022-03-23  1:32 UTC (permalink / raw)
  To: sunilvl
  Cc: ardb, Paul Walmsley, aou, heinrich.schuchardt, Atish Patra,
	apatel, abner.chang, jrtc27, linux-efi, linux-kernel,
	linux-riscv, sunilvl

On Thu, 03 Mar 2022 06:59:44 PST (-0800), sunilvl@ventanamicro.com wrote:
> This patch adds the support for getting the boot hart ID in
> Linux EFI stub using RISCV_EFI_BOOT_PROTOCOL. This protocol
> is preferred method over existing DT based solution since it
> works irrespective of DT or ACPI.
>
> The specification of the protocol is hosted at:
> https://github.com/riscv-non-isa/riscv-uefi
>
> Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
> ---
>  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(-)
>
> diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h
> index edb77b0621ea..aced62a0907e 100644
> --- a/drivers/firmware/efi/libstub/efistub.h
> +++ b/drivers/firmware/efi/libstub/efistub.h
> @@ -720,6 +720,13 @@ union efi_tcg2_protocol {
>  	} mixed_mode;
>  };
>
> +struct riscv_efi_boot_protocol {
> +	u64 revision;
> +
> +	efi_status_t (__efiapi * get_boot_hartid)(struct riscv_efi_boot_protocol *this,
> +						  size_t *boot_hartid);
> +};
> +
>  typedef union efi_load_file_protocol efi_load_file_protocol_t;
>  typedef union efi_load_file_protocol efi_load_file2_protocol_t;
>
> diff --git a/drivers/firmware/efi/libstub/riscv-stub.c b/drivers/firmware/efi/libstub/riscv-stub.c
> index 9c460843442f..915ad209d004 100644
> --- a/drivers/firmware/efi/libstub/riscv-stub.c
> +++ b/drivers/firmware/efi/libstub/riscv-stub.c
> @@ -23,7 +23,7 @@
>
>  typedef void __noreturn (*jump_kernel_func)(unsigned int, unsigned long);
>
> -static u32 hartid;
> +static size_t hartid;
>
>  static int get_boot_hartid_from_fdt(void)
>  {
> @@ -47,14 +47,33 @@ static int get_boot_hartid_from_fdt(void)
>  	return 0;
>  }
>
> +static efi_status_t get_boot_hartid_from_efi(void)
> +{
> +	efi_guid_t boot_protocol_guid = RISCV_EFI_BOOT_PROTOCOL_GUID;
> +	efi_status_t status;
> +	struct riscv_efi_boot_protocol *boot_protocol;
> +
> +	status = efi_bs_call(locate_protocol, &boot_protocol_guid, NULL,
> +			     (void **)&boot_protocol);
> +	if (status == EFI_SUCCESS) {
> +		status = efi_call_proto(boot_protocol,
> +					get_boot_hartid, &hartid);
> +	}
> +	return status;
> +}
> +
>  efi_status_t check_platform_features(void)
>  {
>  	int ret;
> +	efi_status_t status;
>
> -	ret = get_boot_hartid_from_fdt();
> -	if (ret) {
> -		efi_err("/chosen/boot-hartid missing or invalid!\n");
> -		return EFI_UNSUPPORTED;
> +	status = get_boot_hartid_from_efi();
> +	if (status != EFI_SUCCESS) {
> +		ret = get_boot_hartid_from_fdt();
> +		if (ret) {
> +			efi_err("/chosen/boot-hartid missing or invalid!\n");

Is that the right error message?  IIUC it doesn't really make sense in 
an ACPI context, that's a DT-ism.

> +			return EFI_UNSUPPORTED;
> +		}
>  	}
>  	return EFI_SUCCESS;
>  }
> diff --git a/include/linux/efi.h b/include/linux/efi.h
> index ccd4d3f91c98..9822c730207c 100644
> --- a/include/linux/efi.h
> +++ b/include/linux/efi.h
> @@ -380,6 +380,7 @@ void efi_native_runtime_setup(void);
>  #define EFI_CONSOLE_OUT_DEVICE_GUID		EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4,  0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d)
>  #define APPLE_PROPERTIES_PROTOCOL_GUID		EFI_GUID(0x91bd12fe, 0xf6c3, 0x44fb,  0xa5, 0xb7, 0x51, 0x22, 0xab, 0x30, 0x3a, 0xe0)
>  #define EFI_TCG2_PROTOCOL_GUID			EFI_GUID(0x607f766c, 0x7455, 0x42be,  0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f)
> +#define RISCV_EFI_BOOT_PROTOCOL_GUID		EFI_GUID(0xccd15fec, 0x6f73, 0x4eec,  0x83, 0x95, 0x3e, 0x69, 0xe4, 0xb9, 0x40, 0xbf)
>  #define EFI_LOAD_FILE_PROTOCOL_GUID		EFI_GUID(0x56ec3091, 0x954c, 0x11d2,  0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
>  #define EFI_LOAD_FILE2_PROTOCOL_GUID		EFI_GUID(0x4006c0c1, 0xfcb3, 0x403e,  0x99, 0x6d, 0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d)
>  #define EFI_RT_PROPERTIES_TABLE_GUID		EFI_GUID(0xeb66918a, 0x7eef, 0x402a,  0x84, 0x2e, 0x93, 0x1d, 0x21, 0xc3, 0x8a, 0xe9)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC PATCH V2 0/1] RISCV_EFI_BOOT_PROTOCOL support in linux
  2022-03-03 14:59 [RFC PATCH V2 0/1] RISCV_EFI_BOOT_PROTOCOL support in linux Sunil V L
  2022-03-03 14:59 ` [RFC PATCH V2 1/1] riscv/efi_stub: Add support for RISCV_EFI_BOOT_PROTOCOL Sunil V L
@ 2022-03-23  1:32 ` Palmer Dabbelt
  2022-03-23 16:27   ` Sunil V L
  1 sibling, 1 reply; 6+ messages in thread
From: Palmer Dabbelt @ 2022-03-23  1:32 UTC (permalink / raw)
  To: sunilvl
  Cc: ardb, Paul Walmsley, aou, heinrich.schuchardt, Atish Patra,
	apatel, abner.chang, jrtc27, linux-efi, linux-kernel,
	linux-riscv, sunilvl

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(-)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC PATCH V2 0/1] RISCV_EFI_BOOT_PROTOCOL support in linux
  2022-03-23  1:32 ` [RFC PATCH V2 0/1] RISCV_EFI_BOOT_PROTOCOL support in linux Palmer Dabbelt
@ 2022-03-23 16:27   ` Sunil V L
  0 siblings, 0 replies; 6+ messages in thread
From: Sunil V L @ 2022-03-23 16:27 UTC (permalink / raw)
  To: Palmer Dabbelt
  Cc: ardb, Paul Walmsley, aou, heinrich.schuchardt, Atish Patra,
	apatel, abner.chang, jrtc27, linux-efi, linux-kernel,
	linux-riscv

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(-)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC PATCH V2 1/1] riscv/efi_stub: Add support for RISCV_EFI_BOOT_PROTOCOL
  2022-03-23  1:32   ` Palmer Dabbelt
@ 2022-03-24 11:01     ` Sunil V L
  0 siblings, 0 replies; 6+ messages in thread
From: Sunil V L @ 2022-03-24 11:01 UTC (permalink / raw)
  To: Palmer Dabbelt
  Cc: ardb, Paul Walmsley, aou, heinrich.schuchardt, Atish Patra,
	apatel, abner.chang, jrtc27, linux-efi, linux-kernel,
	linux-riscv

On Tue, Mar 22, 2022 at 06:32:20PM -0700, Palmer Dabbelt wrote:
> On Thu, 03 Mar 2022 06:59:44 PST (-0800), sunilvl@ventanamicro.com wrote:
> > This patch adds the support for getting the boot hart ID in
> > Linux EFI stub using RISCV_EFI_BOOT_PROTOCOL. This protocol
> > is preferred method over existing DT based solution since it
> > works irrespective of DT or ACPI.
> > 
> > The specification of the protocol is hosted at:
> > https://github.com/riscv-non-isa/riscv-uefi
> > 
> > Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
> > ---
> >  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(-)
> > 
> > diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h
> > index edb77b0621ea..aced62a0907e 100644
> > --- a/drivers/firmware/efi/libstub/efistub.h
> > +++ b/drivers/firmware/efi/libstub/efistub.h
> > @@ -720,6 +720,13 @@ union efi_tcg2_protocol {
> >  	} mixed_mode;
> >  };
> > 
> > +struct riscv_efi_boot_protocol {
> > +	u64 revision;
> > +
> > +	efi_status_t (__efiapi * get_boot_hartid)(struct riscv_efi_boot_protocol *this,
> > +						  size_t *boot_hartid);
> > +};
> > +
> >  typedef union efi_load_file_protocol efi_load_file_protocol_t;
> >  typedef union efi_load_file_protocol efi_load_file2_protocol_t;
> > 
> > diff --git a/drivers/firmware/efi/libstub/riscv-stub.c b/drivers/firmware/efi/libstub/riscv-stub.c
> > index 9c460843442f..915ad209d004 100644
> > --- a/drivers/firmware/efi/libstub/riscv-stub.c
> > +++ b/drivers/firmware/efi/libstub/riscv-stub.c
> > @@ -23,7 +23,7 @@
> > 
> >  typedef void __noreturn (*jump_kernel_func)(unsigned int, unsigned long);
> > 
> > -static u32 hartid;
> > +static size_t hartid;
> > 
> >  static int get_boot_hartid_from_fdt(void)
> >  {
> > @@ -47,14 +47,33 @@ static int get_boot_hartid_from_fdt(void)
> >  	return 0;
> >  }
> > 
> > +static efi_status_t get_boot_hartid_from_efi(void)
> > +{
> > +	efi_guid_t boot_protocol_guid = RISCV_EFI_BOOT_PROTOCOL_GUID;
> > +	efi_status_t status;
> > +	struct riscv_efi_boot_protocol *boot_protocol;
> > +
> > +	status = efi_bs_call(locate_protocol, &boot_protocol_guid, NULL,
> > +			     (void **)&boot_protocol);
> > +	if (status == EFI_SUCCESS) {
> > +		status = efi_call_proto(boot_protocol,
> > +					get_boot_hartid, &hartid);
> > +	}
> > +	return status;
> > +}
> > +
> >  efi_status_t check_platform_features(void)
> >  {
> >  	int ret;
> > +	efi_status_t status;
> > 
> > -	ret = get_boot_hartid_from_fdt();
> > -	if (ret) {
> > -		efi_err("/chosen/boot-hartid missing or invalid!\n");
> > -		return EFI_UNSUPPORTED;
> > +	status = get_boot_hartid_from_efi();
> > +	if (status != EFI_SUCCESS) {
> > +		ret = get_boot_hartid_from_fdt();
> > +		if (ret) {
> > +			efi_err("/chosen/boot-hartid missing or invalid!\n");
> 
> Is that the right error message?  IIUC it doesn't really make sense in an
> ACPI context, that's a DT-ism.

Sure. Will update this message in next version.

Thanks
Sunil
> 
> > +			return EFI_UNSUPPORTED;
> > +		}
> >  	}
> >  	return EFI_SUCCESS;
> >  }
> > diff --git a/include/linux/efi.h b/include/linux/efi.h
> > index ccd4d3f91c98..9822c730207c 100644
> > --- a/include/linux/efi.h
> > +++ b/include/linux/efi.h
> > @@ -380,6 +380,7 @@ void efi_native_runtime_setup(void);
> >  #define EFI_CONSOLE_OUT_DEVICE_GUID		EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4,  0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d)
> >  #define APPLE_PROPERTIES_PROTOCOL_GUID		EFI_GUID(0x91bd12fe, 0xf6c3, 0x44fb,  0xa5, 0xb7, 0x51, 0x22, 0xab, 0x30, 0x3a, 0xe0)
> >  #define EFI_TCG2_PROTOCOL_GUID			EFI_GUID(0x607f766c, 0x7455, 0x42be,  0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f)
> > +#define RISCV_EFI_BOOT_PROTOCOL_GUID		EFI_GUID(0xccd15fec, 0x6f73, 0x4eec,  0x83, 0x95, 0x3e, 0x69, 0xe4, 0xb9, 0x40, 0xbf)
> >  #define EFI_LOAD_FILE_PROTOCOL_GUID		EFI_GUID(0x56ec3091, 0x954c, 0x11d2,  0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
> >  #define EFI_LOAD_FILE2_PROTOCOL_GUID		EFI_GUID(0x4006c0c1, 0xfcb3, 0x403e,  0x99, 0x6d, 0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d)
> >  #define EFI_RT_PROPERTIES_TABLE_GUID		EFI_GUID(0xeb66918a, 0x7eef, 0x402a,  0x84, 0x2e, 0x93, 0x1d, 0x21, 0xc3, 0x8a, 0xe9)

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-03-24 11:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-03 14:59 [RFC PATCH V2 0/1] RISCV_EFI_BOOT_PROTOCOL support in linux Sunil V L
2022-03-03 14:59 ` [RFC PATCH V2 1/1] riscv/efi_stub: Add support for RISCV_EFI_BOOT_PROTOCOL Sunil V L
2022-03-23  1:32   ` Palmer Dabbelt
2022-03-24 11:01     ` Sunil V L
2022-03-23  1:32 ` [RFC PATCH V2 0/1] RISCV_EFI_BOOT_PROTOCOL support in linux Palmer Dabbelt
2022-03-23 16:27   ` Sunil V L

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).