Module Name: src
Committed By: jmcneill
Date: Thu Jan 30 09:21:13 UTC 2025
Modified Files:
src/sys/arch/aarch64/aarch64: genassym.cf locore.S
Log Message:
Fix CNTKCTL_EL1 initialization.
Explicitly initialize all fields in CNTKCTL_EL1 as many of them reset
to an architecturally UNKNOWN value.
To generate a diff of this commit:
cvs rdiff -u -r1.39 -r1.40 src/sys/arch/aarch64/aarch64/genassym.cf
cvs rdiff -u -r1.93 -r1.94 src/sys/arch/aarch64/aarch64/locore.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/aarch64/aarch64/genassym.cf
diff -u src/sys/arch/aarch64/aarch64/genassym.cf:1.39 src/sys/arch/aarch64/aarch64/genassym.cf:1.40
--- src/sys/arch/aarch64/aarch64/genassym.cf:1.39 Sun Apr 16 14:01:51 2023
+++ src/sys/arch/aarch64/aarch64/genassym.cf Thu Jan 30 09:21:13 2025
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.39 2023/04/16 14:01:51 skrll Exp $
+# $NetBSD: genassym.cf,v 1.40 2025/01/30 09:21:13 jmcneill Exp $
#-
# Copyright (c) 2014 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -309,6 +309,7 @@ define DAIF_SETCLR_SHIFT DAIF_SETCLR_SHI
define CNTHCTL_EL1PCTEN CNTHCTL_EL1PCTEN
define CNTHCTL_EL1PCEN CNTHCTL_EL1PCEN
define CNTKCTL_EL0VCTEN CNTKCTL_EL0VCTEN
+define CNTKCTL_EL0VTEN CNTKCTL_EL0VTEN
define SPSR_SS_SHIFT SPSR_SS_SHIFT
define SPSR_F SPSR_F
define SPSR_I SPSR_I
Index: src/sys/arch/aarch64/aarch64/locore.S
diff -u src/sys/arch/aarch64/aarch64/locore.S:1.93 src/sys/arch/aarch64/aarch64/locore.S:1.94
--- src/sys/arch/aarch64/aarch64/locore.S:1.93 Wed Feb 7 04:20:26 2024
+++ src/sys/arch/aarch64/aarch64/locore.S Thu Jan 30 09:21:13 2025
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.93 2024/02/07 04:20:26 msaitoh Exp $ */
+/* $NetBSD: locore.S,v 1.94 2025/01/30 09:21:13 jmcneill Exp $ */
/*
* Copyright (c) 2017 Ryo Shimizu
@@ -38,7 +38,7 @@
#include <aarch64/hypervisor.h>
#include "assym.h"
-RCSID("$NetBSD: locore.S,v 1.93 2024/02/07 04:20:26 msaitoh Exp $")
+RCSID("$NetBSD: locore.S,v 1.94 2025/01/30 09:21:13 jmcneill Exp $")
#ifdef AARCH64_DEVICE_MEM_NONPOSTED
#define MAIR_DEVICE_MEM MAIR_DEVICE_nGnRnE
@@ -251,8 +251,7 @@ init_sysregs:
isb
/* allow to read CNTVCT_EL0 and CNTFRQ_EL0 from EL0 */
- mrs x0, cntkctl_el1
- orr x0, x0, #CNTKCTL_EL0VCTEN
+ mov x0, #(CNTKCTL_EL0VCTEN | CNTKCTL_EL0VTEN)
msr cntkctl_el1, x0
/* any exception not masked */