mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
allow guest user applications read CNTVCT_EL0/CNTFRQ_EL0
At present, when doing syscall_kvm test, we need to enable the function of ESR_ELx_SYS64_ISS_SYS_CNTVCT/ESR_ELx_SYS64_ISS_SYS_CNTFRQ to successfully pass the test. I set CNTKCTL_EL1.EL0VCTEN==1/CNTKCTL_EL1.EL0PCTEN==1, so that the related cases can passed. Signed-off-by: Bin Lu <bin.lu@arm.com>
This commit is contained in:
@@ -48,6 +48,12 @@
|
||||
|
||||
#define SCTLR_EL1_DEFAULT (SCTLR_M | SCTLR_C | SCTLR_I | SCTLR_UCT)
|
||||
|
||||
// cntkctl_el1: counter-timer kernel control register el1.
|
||||
#define CNTKCTL_EL0PCTEN 1 << 0
|
||||
#define CNTKCTL_EL0VCTEN 1 << 1
|
||||
|
||||
#define CNTKCTL_EL1_DEFAULT (CNTKCTL_EL0PCTEN | CNTKCTL_EL0VCTEN)
|
||||
|
||||
// Saves a register set.
|
||||
//
|
||||
// This is a macro because it may need to executed in contents where a stack is
|
||||
@@ -509,6 +515,9 @@ TEXT ·Start(SB),NOSPLIT,$0
|
||||
MOVD $SCTLR_EL1_DEFAULT, R1
|
||||
MSR R1, SCTLR_EL1
|
||||
|
||||
MOVD $CNTKCTL_EL1_DEFAULT, R1
|
||||
MSR R1, CNTKCTL_EL1
|
||||
|
||||
MOVD R8, RSV_REG
|
||||
ORR $0xffff000000000000, RSV_REG, RSV_REG
|
||||
WORD $0xd518d092 //MSR R18, TPIDR_EL1
|
||||
|
||||
Reference in New Issue
Block a user