Commit dea58da4 authored by Yicong Yang's avatar Yicong Yang Committed by Will Deacon
Browse files

arm64: Provide basic EL2 setup for FEAT_{LS64, LS64_V} usage at EL0/1



Instructions introduced by FEAT_{LS64, LS64_V} is controlled by
HCRX_EL2.{EnALS, EnASR}. Configure all of these to allow usage
at EL0/1.

This doesn't mean these instructions are always available in
EL0/1 if provided. The hypervisor still have the control at
runtime.

Acked-by: default avatarWill Deacon <will@kernel.org>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Acked-by: default avatarOliver Upton <oupton@kernel.org>
Signed-off-by: default avatarYicong Yang <yangyicong@hisilicon.com>
Signed-off-by: default avatarZhou Wang <wangzhou1@hisilicon.com>
Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent 2937aeec
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -83,9 +83,19 @@
        /* Enable GCS if supported */
	mrs_s	x1, SYS_ID_AA64PFR1_EL1
	ubfx	x1, x1, #ID_AA64PFR1_EL1_GCS_SHIFT, #4
	cbz	x1, .Lset_hcrx_\@
	cbz	x1, .Lskip_gcs_hcrx_\@
	orr	x0, x0, #HCRX_EL2_GCSEn

.Lskip_gcs_hcrx_\@:
	/* Enable LS64, LS64_V if supported */
	mrs_s	x1, SYS_ID_AA64ISAR1_EL1
	ubfx	x1, x1, #ID_AA64ISAR1_EL1_LS64_SHIFT, #4
	cbz	x1, .Lset_hcrx_\@
	orr	x0, x0, #HCRX_EL2_EnALS
	cmp	x1, #ID_AA64ISAR1_EL1_LS64_LS64_V
	b.lt	.Lset_hcrx_\@
	orr	x0, x0, #HCRX_EL2_EnASR

.Lset_hcrx_\@:
	msr_s	SYS_HCRX_EL2, x0
.Lskip_hcrx_\@: