Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Sep 2025 11:49:16 -0700
From:      Ahmad Khalifa <ahmadkhalifa570@gmail.com>
To:        Andrew Turner <andrew@freebsd.org>
Cc:        src-committers@freebsd.org, dev-commits-src-all@freebsd.org,  dev-commits-src-main@freebsd.org
Subject:   Re: git: f38792ffc2db - main - arm64/vmm: Clean up enabling guest timer access
Message-ID:  <CAMLT6uB5dMO2BjWCNcWHYjP_0wb3HbnnFJBdO=0rs3s9w0OWEw@mail.gmail.com>
In-Reply-To: <202509231709.58NH9XaU077251@gitrepo.freebsd.org>
References:  <202509231709.58NH9XaU077251@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue Sep 23, 2025 at 8:09 PM +0300, Andrew Turner wrote:
> The branch main has been updated by andrew:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=f38792ffc2db67ca82026eb4861f37fe7ac7c38e
>
> commit f38792ffc2db67ca82026eb4861f37fe7ac7c38e
> Author:     Andrew Turner <andrew@FreeBSD.org>
> AuthorDate: 2025-09-22 17:08:06 +0000
> Commit:     Andrew Turner <andrew@FreeBSD.org>
> CommitDate: 2025-09-23 17:08:36 +0000
>
>     arm64/vmm: Clean up enabling guest timer access
>
>     Clean up the name of CNTHCTL_EL2 field macros and expand to include
>     more fields. This makes it easier to see which accesses are trapped or
>     not trapped.
>
>     While here set the register directly. We already set it in locore.S so
>     there is no need to read that and modify it.
>
>     Sponsored by:   Arm Ltd
>     Differential Revision:  https://reviews.freebsd.org/D51817
> ---
>  sys/arm64/arm64/locore.S       |  4 +--
>  sys/arm64/include/hypervisor.h | 79 ++++++++++++++++++++++++++++++++++++------
>  sys/arm64/vmm/io/vtimer.c      | 31 ++++++++++-------
>  3 files changed, 88 insertions(+), 26 deletions(-)
>
> diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S
> index 50a3eda846da..d35e334905a7 100644
> --- a/sys/arm64/arm64/locore.S
> +++ b/sys/arm64/arm64/locore.S
> @@ -418,7 +418,7 @@ LENTRY(enter_kernel_el)
>
>  	msr	SCTLR_EL12_REG, x2
>  	mov	x2, xzr /* CPTR_EL2 is managed by vfp.c */
> -	ldr	x3, =(CNTHCTL_E2H_EL1PCTEN | CNTHCTL_E2H_EL1PTEN)
> +	ldr	x3, =(CNTHCTL_E2H_EL1PCTEN_NOTRAP | CNTHCTL_E2H_EL1PTEN_NOTRAP)
>  	ldr	x5, =(PSR_DAIF | PSR_M_EL2h)
>  	b	.Ldone_vhe

Just an FYI:
The clang-14 cross build fails on this. Seems like it doesn't like
having a suffix on the integer literal.

/home/runner/work/freebsd-src/freebsd-src/sys/arm64/arm64/locore.S:421:16:
error: expected ')'
 ldr x3, =((0x1ul << 10) | (0x1ul << 11))
               ^
/home/runner/work/freebsd-src/freebsd-src/sys/arm64/arm64/locore.S:432:16:
error: expected ')'
 ldr x3, =((0x1ul << 0) | (0x1ul << 1))
               ^
--- locore.o ---
*** [locore.o] Error code 1

https://github.com/freebsd/freebsd-src/actions/runs/18014912022/job/51257258696



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAMLT6uB5dMO2BjWCNcWHYjP_0wb3HbnnFJBdO=0rs3s9w0OWEw>