diff mbox series

[AArch64,boot-wrapper] aarch64: Enable FGT for EL2

Message ID 20210503120920.1819233-1-maz@kernel.org (mailing list archive)
State New, archived
Headers show
Series [AArch64,boot-wrapper] aarch64: Enable FGT for EL2 | expand

Commit Message

Marc Zyngier May 3, 2021, 12:09 p.m. UTC
We have no intention of handling FGT traps to EL3, so let EL2
play with the feature directly.

Signed-off-by: Marc Zyngier <maz@kernel.org>
---

Notes:
    Needed to boot Linux 5.13 at EL2.

 arch/aarch64/boot.S | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Andre Przywara May 4, 2021, 3:19 p.m. UTC | #1
On Mon,  3 May 2021 13:09:20 +0100
Marc Zyngier <maz@kernel.org> wrote:

> We have no intention of handling FGT traps to EL3, so let EL2
> play with the feature directly.
> 
> Signed-off-by: Marc Zyngier <maz@kernel.org>

Verified the bits used against the ARM ARM. Also Trusted Firmware does
the same thing, so:

Reviewed-by: Andre Przywara <andre.przywara@arm.com>

Cheers,
Andre

> ---
> 
> Notes:
>     Needed to boot Linux 5.13 at EL2.
> 
>  arch/aarch64/boot.S | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
> index e47cf59..fd7133d 100644
> --- a/arch/aarch64/boot.S
> +++ b/arch/aarch64/boot.S
> @@ -54,6 +54,13 @@ _start:
>  	cbz	x1, 1f
>  
>  	orr	x0, x0, #(1 << 34)		// TME enable
> +1:
> +	/* Enable FGT if present */
> +	mrs	x1, id_aa64mmfr0_el1
> +	ubfx	x1, x1, #56, #4
> +	cbz	x1, 1f
> +
> +	orr	x0, x0, #(1 << 27)		// FGT enable
>  1:
>  #ifndef KERNEL_32
>  	orr	x0, x0, #(1 << 10)		// 64-bit EL2
Sudeep Holla May 4, 2021, 3:29 p.m. UTC | #2
On Mon, May 03, 2021 at 01:09:20PM +0100, Marc Zyngier wrote:
> We have no intention of handling FGT traps to EL3, so let EL2
> play with the feature directly.
> 

I had cooked up hacky fix after Mark Brown pointed out this could be
reason for boot failure on FVP. So,

Tested-by: Sudeep Holla <sudeep.holla@arm.com>
Mark Rutland May 4, 2021, 3:31 p.m. UTC | #3
On Mon, May 03, 2021 at 01:09:20PM +0100, Marc Zyngier wrote:
> We have no intention of handling FGT traps to EL3, so let EL2
> play with the feature directly.
> 
> Signed-off-by: Marc Zyngier <maz@kernel.org>

Thanks; applied.

Mark.

> ---
> 
> Notes:
>     Needed to boot Linux 5.13 at EL2.
> 
>  arch/aarch64/boot.S | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
> index e47cf59..fd7133d 100644
> --- a/arch/aarch64/boot.S
> +++ b/arch/aarch64/boot.S
> @@ -54,6 +54,13 @@ _start:
>  	cbz	x1, 1f
>  
>  	orr	x0, x0, #(1 << 34)		// TME enable
> +1:
> +	/* Enable FGT if present */
> +	mrs	x1, id_aa64mmfr0_el1
> +	ubfx	x1, x1, #56, #4
> +	cbz	x1, 1f
> +
> +	orr	x0, x0, #(1 << 27)		// FGT enable
>  1:
>  #ifndef KERNEL_32
>  	orr	x0, x0, #(1 << 10)		// 64-bit EL2
> -- 
> 2.29.2
>
diff mbox series

Patch

diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
index e47cf59..fd7133d 100644
--- a/arch/aarch64/boot.S
+++ b/arch/aarch64/boot.S
@@ -54,6 +54,13 @@  _start:
 	cbz	x1, 1f
 
 	orr	x0, x0, #(1 << 34)		// TME enable
+1:
+	/* Enable FGT if present */
+	mrs	x1, id_aa64mmfr0_el1
+	ubfx	x1, x1, #56, #4
+	cbz	x1, 1f
+
+	orr	x0, x0, #(1 << 27)		// FGT enable
 1:
 #ifndef KERNEL_32
 	orr	x0, x0, #(1 << 10)		// 64-bit EL2