From nobody Tue Jan 13 16:27:20 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4drF5P4tZVz6NLr1 for ; Tue, 13 Jan 2026 16:27:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4drF5P0lkwz3Kc5 for ; Tue, 13 Jan 2026 16:27:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768321641; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9xw+0XlCYZUfvWQHsS0SFF9kdtDh/xk4BHhY3shZ80Y=; b=NXAB9NMwybRgeodW8LvY3Fh+5odrcgAzpQu6an1zWiKMhgi3K6/zlgJ0SGdh7qdby9h0Tr EXldmJv3S1BnOgH6WGzr1xqbRZg6Fv3yqLuug33+buZnGIEnRen7ploCsTaIlGT4vBQduM fiXCoahyFtZstZ6js/hhTDP3lV4ZBjYEj/+nZDF+RzyMX/aulDBOUZxAJ6UX5KA7N9qaBr wUfTMxhP/ROxPzJs7erTz13WpGoEyPFiQHocLFgKgAlT2P8WT618X1cSAB18OagPvtj+dV 21AYr9NiugUrGuXxbfMvd8kBqpPqnPTv2Xrdc9m784cPK9KR/Xb7mI9Ro2WwWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768321641; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9xw+0XlCYZUfvWQHsS0SFF9kdtDh/xk4BHhY3shZ80Y=; b=dtykIWE72d7gTTtfUgQcIEFc3lmAIz1r9pMraL6ui1jBV+lNSWSzC/LSCLbkSEAkDD9zjr MZ9gjnL7cgCPtzo2mKjb8lflIjxEAoKTVy8qRfkVXv8j4y6K3XPxFpUsGH+3AysEnRf3W4 jmy6To/jw9k/WlKWt2mrzWi70eNojdrauH2i6fljYg+Q4faOay+gMfawVOIK4IvZff8DEr fTU2R5IAD+uhYYhspZ6lVW/tYt0Sm5pqSza8KbFnGCdFra6aU51rX3+h15Dac2aTz2Sd6m Yx6GbpzCSNpgqqI0MD+gNVdQtCJ13M85UESynEHwHsoHyxo440T4hVR/3RxbtQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1768321641; a=rsa-sha256; cv=none; b=pCrui4uKmwukMrXGNCJV9wIYk7ND+xoWfV0JwYc+O82vtOBQ7MhdqD89i/fFMiedo8VQTR iVaQIu+iMooEj4LCbGqYQRAEfDclX6BwFEwWoG0MQmsk4NjLgFq5/gaSV7UBK0DP0qPE/R HZxUM6w2MK7cBHBnK5pOEC9rkbm/2x1Ga445c9SjWBC7CZJ1wgautG+gI3D16H3FjUPPV2 9L3LRcqXK8Okap9HOUpJpGVQQBpsf2W/MVLqwF9y4+LUzRWLZ1COnYvmKTQHAU2N/rKO6k K1afJpcwvrT6iiRcKoI2Xt1tFhsVezstfEu9vgnvR7lo2OpSYZus4ZfgK/AU4Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4drF5N73nzz4lr for ; Tue, 13 Jan 2026 16:27:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27248 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 13 Jan 2026 16:27:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 0aef3b56caad - stable/15 - arm: Use the Self-Synchronized counter registers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 0aef3b56caadc5e5939362cbf4238c719a1433a1 Auto-Submitted: auto-generated Date: Tue, 13 Jan 2026 16:27:20 +0000 Message-Id: <69667268.27248.1e0efef7@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=0aef3b56caadc5e5939362cbf4238c719a1433a1 commit 0aef3b56caadc5e5939362cbf4238c719a1433a1 Author: Andrew Turner AuthorDate: 2025-09-22 17:08:47 +0000 Commit: Andrew Turner CommitDate: 2026-01-13 14:06:18 +0000 arm: Use the Self-Synchronized counter registers When FEAT_ECV is implemented on arm64 a Self-Synchronized view of the counter registers are available. These don't need an isb before reading the count as they are not able to be speculatively executed. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D51820 (cherry picked from commit 0efa0fe26b9d980b2862bb58f8484f0123cff19f) --- sys/arm/arm/generic_timer.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/sys/arm/arm/generic_timer.c b/sys/arm/arm/generic_timer.c index c4a1f44a0079..e3ba56a6f6ac 100644 --- a/sys/arm/arm/generic_timer.c +++ b/sys/arm/arm/generic_timer.c @@ -231,6 +231,25 @@ get_cntxct(bool physical) return (val); } +#ifdef __aarch64__ +/* + * Read the self-syncronized counter. These cannot be read speculatively so + * don't need an isb before them. + */ +static uint64_t +get_cntxctss(bool physical) +{ + uint64_t val; + + if (physical) + val = READ_SPECIALREG(CNTPCTSS_EL0_REG); + else + val = READ_SPECIALREG(CNTVCTSS_EL0_REG); + + return (val); +} +#endif + static int set_ctrl(uint32_t val, bool physical) { @@ -631,6 +650,7 @@ arm_tmr_attach(device_t dev) pcell_t clock; #endif #ifdef __aarch64__ + uint64_t id_aa64mmfr0_el1; int user_phys; #endif int error; @@ -641,6 +661,11 @@ arm_tmr_attach(device_t dev) return (ENXIO); sc->get_cntxct = &get_cntxct; +#ifdef __aarch64__ + if (get_kernel_reg(ID_AA64MMFR0_EL1, &id_aa64mmfr0_el1) && + ID_AA64MMFR0_ECV_VAL(id_aa64mmfr0_el1) >= ID_AA64MMFR0_ECV_IMPL) + sc->get_cntxct = &get_cntxctss; +#endif #ifdef FDT /* Get the base clock frequency */ node = ofw_bus_get_node(dev);