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