Always enable the virtual timer for userspace

We always have it, some languages assume it's present, e.g. go
before 1.20. Enable it by default on arm and arm64.

PR:		269070
Reviewed by:	kevans
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D39059
This commit is contained in:
Andrew Turner 2023-03-10 12:43:59 +00:00
parent ae60314c94
commit 93d574ea95

View File

@ -270,13 +270,12 @@ setup_user_access(void *arg __unused)
cntkctl = get_el1(cntkctl);
cntkctl &= ~(GT_CNTKCTL_PL0PTEN | GT_CNTKCTL_PL0VTEN |
GT_CNTKCTL_EVNTEN);
GT_CNTKCTL_EVNTEN | GT_CNTKCTL_PL0PCTEN);
/* Always enable the virtual timer */
cntkctl |= GT_CNTKCTL_PL0VCTEN;
/* Enable the physical timer if supported */
if (arm_tmr_sc->physical) {
cntkctl |= GT_CNTKCTL_PL0PCTEN;
cntkctl &= ~GT_CNTKCTL_PL0VCTEN;
} else {
cntkctl |= GT_CNTKCTL_PL0VCTEN;
cntkctl &= ~GT_CNTKCTL_PL0PCTEN;
}
set_el1(cntkctl, cntkctl);
isb();