Skip to content

Commit 0ead48a

Browse files
committed
KVM: arm64: nv: Describe trap behavior of SCTLR2_EL1
Add the complete trap description for SCTLR2_EL1, including FGT and the inverted HCRX bit. Reviewed-by: Marc Zyngier <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Oliver Upton <[email protected]>
1 parent a99456a commit 0ead48a

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

arch/arm64/kvm/emulate-nested.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ enum cgt_group_id {
8888

8989
CGT_HCRX_EnFPM,
9090
CGT_HCRX_TCR2En,
91+
CGT_HCRX_SCTLR2En,
9192

9293
CGT_CNTHCTL_EL1TVT,
9394
CGT_CNTHCTL_EL1TVCT,
@@ -108,6 +109,7 @@ enum cgt_group_id {
108109
CGT_HCR_TTLB_TTLBOS,
109110
CGT_HCR_TVM_TRVM,
110111
CGT_HCR_TVM_TRVM_HCRX_TCR2En,
112+
CGT_HCR_TVM_TRVM_HCRX_SCTLR2En,
111113
CGT_HCR_TPU_TICAB,
112114
CGT_HCR_TPU_TOCU,
113115
CGT_HCR_NV1_nNV2_ENSCXT,
@@ -398,6 +400,12 @@ static const struct trap_bits coarse_trap_bits[] = {
398400
.mask = HCRX_EL2_TCR2En,
399401
.behaviour = BEHAVE_FORWARD_RW,
400402
},
403+
[CGT_HCRX_SCTLR2En] = {
404+
.index = HCRX_EL2,
405+
.value = 0,
406+
.mask = HCRX_EL2_SCTLR2En,
407+
.behaviour = BEHAVE_FORWARD_RW,
408+
},
401409
[CGT_CNTHCTL_EL1TVT] = {
402410
.index = CNTHCTL_EL2,
403411
.value = CNTHCTL_EL1TVT,
@@ -449,6 +457,8 @@ static const enum cgt_group_id *coarse_control_combo[] = {
449457
MCB(CGT_HCR_TVM_TRVM, CGT_HCR_TVM, CGT_HCR_TRVM),
450458
MCB(CGT_HCR_TVM_TRVM_HCRX_TCR2En,
451459
CGT_HCR_TVM, CGT_HCR_TRVM, CGT_HCRX_TCR2En),
460+
MCB(CGT_HCR_TVM_TRVM_HCRX_SCTLR2En,
461+
CGT_HCR_TVM, CGT_HCR_TRVM, CGT_HCRX_SCTLR2En),
452462
MCB(CGT_HCR_TPU_TICAB, CGT_HCR_TPU, CGT_HCR_TICAB),
453463
MCB(CGT_HCR_TPU_TOCU, CGT_HCR_TPU, CGT_HCR_TOCU),
454464
MCB(CGT_HCR_NV1_nNV2_ENSCXT, CGT_HCR_NV1_nNV2, CGT_HCR_ENSCXT),
@@ -782,6 +792,7 @@ static const struct encoding_to_trap_config encoding_to_cgt[] __initconst = {
782792
SR_TRAP(OP_TLBI_RVALE1OSNXS, CGT_HCR_TTLB_TTLBOS),
783793
SR_TRAP(OP_TLBI_RVAALE1OSNXS, CGT_HCR_TTLB_TTLBOS),
784794
SR_TRAP(SYS_SCTLR_EL1, CGT_HCR_TVM_TRVM),
795+
SR_TRAP(SYS_SCTLR2_EL1, CGT_HCR_TVM_TRVM_HCRX_SCTLR2En),
785796
SR_TRAP(SYS_TTBR0_EL1, CGT_HCR_TVM_TRVM),
786797
SR_TRAP(SYS_TTBR1_EL1, CGT_HCR_TVM_TRVM),
787798
SR_TRAP(SYS_TCR_EL1, CGT_HCR_TVM_TRVM),
@@ -1354,6 +1365,7 @@ static const struct encoding_to_trap_config encoding_to_fgt[] __initconst = {
13541365
SR_FGT(SYS_SCXTNUM_EL0, HFGRTR, SCXTNUM_EL0, 1),
13551366
SR_FGT(SYS_SCXTNUM_EL1, HFGRTR, SCXTNUM_EL1, 1),
13561367
SR_FGT(SYS_SCTLR_EL1, HFGRTR, SCTLR_EL1, 1),
1368+
SR_FGT(SYS_SCTLR2_EL1, HFGRTR, SCTLR_EL1, 1),
13571369
SR_FGT(SYS_REVIDR_EL1, HFGRTR, REVIDR_EL1, 1),
13581370
SR_FGT(SYS_PAR_EL1, HFGRTR, PAR_EL1, 1),
13591371
SR_FGT(SYS_MPIDR_EL1, HFGRTR, MPIDR_EL1, 1),

0 commit comments

Comments
 (0)