mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Merge pull request #3136 from lubinszARM:pr_sys64_1
PiperOrigin-RevId: 321020733
This commit is contained in:
@@ -78,19 +78,6 @@ func (c *vCPU) initArchState() error {
|
||||
return err
|
||||
}
|
||||
|
||||
// sctlr_el1
|
||||
regGet.id = _KVM_ARM64_REGS_SCTLR_EL1
|
||||
if err := c.getOneRegister(®Get); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
dataGet |= (_SCTLR_M | _SCTLR_C | _SCTLR_I)
|
||||
data = dataGet
|
||||
reg.id = _KVM_ARM64_REGS_SCTLR_EL1
|
||||
if err := c.setOneRegister(®); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// tcr_el1
|
||||
data = _TCR_TXSZ_VA48 | _TCR_CACHE_FLAGS | _TCR_SHARED | _TCR_TG_FLAGS | _TCR_ASID16 | _TCR_IPS_40BITS
|
||||
reg.id = _KVM_ARM64_REGS_TCR_EL1
|
||||
|
||||
@@ -40,6 +40,14 @@
|
||||
|
||||
#define FPEN_ENABLE (FPEN_NOTRAP << FPEN_SHIFT)
|
||||
|
||||
// sctlr_el1: system control register el1.
|
||||
#define SCTLR_M 1 << 0
|
||||
#define SCTLR_C 1 << 2
|
||||
#define SCTLR_I 1 << 12
|
||||
#define SCTLR_UCT 1 << 15
|
||||
|
||||
#define SCTLR_EL1_DEFAULT (SCTLR_M | SCTLR_C | SCTLR_I | SCTLR_UCT)
|
||||
|
||||
// Saves a register set.
|
||||
//
|
||||
// This is a macro because it may need to executed in contents where a stack is
|
||||
@@ -496,6 +504,11 @@ TEXT ·kernelExitToEl1(SB),NOSPLIT,$0
|
||||
// Start is the CPU entrypoint.
|
||||
TEXT ·Start(SB),NOSPLIT,$0
|
||||
IRQ_DISABLE
|
||||
|
||||
// Init.
|
||||
MOVD $SCTLR_EL1_DEFAULT, R1
|
||||
MSR R1, SCTLR_EL1
|
||||
|
||||
MOVD R8, RSV_REG
|
||||
ORR $0xffff000000000000, RSV_REG, RSV_REG
|
||||
WORD $0xd518d092 //MSR R18, TPIDR_EL1
|
||||
|
||||
Reference in New Issue
Block a user