From nobody Mon Jun 2 10:41:58 2025 X-Original-To: dev-commits-src-all@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 4b9r4l5RNDz5xsHp; Mon, 02 Jun 2025 10:41:59 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b9r4l1m2hz3gVR; Mon, 02 Jun 2025 10:41:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748860919; 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=cVBDe3pOtt2Opqkk/itBqrr6SPnvjm455b5znyjjIDo=; b=DMaNHtdEZpe8c8UAa8EYez470gEdLkTK4YCtd4QdrJz8vMbjmoyZgH20ixqjn9iiTS//e/ ncLm847TSDqlLaD7LXU6efCVLGdtEHGUmLlbsf8UmRJ+h0z9vDfTx3kT7ob380e5+3yZTM dsbUYDWF+xkP2wHiRH3H3bAlY0jKNLOR8Lh2sXy4bujXWmFvxkgk58olQuJJWpfsF0OK4p 084F+Q+6tXtH9au7zlZ7TMVpQAmjbuXWTLg0b5qxZApjL++zfF0yhG/zJbh4Uxe5X8RSR2 hwK5qMNmS147TMO3giucj8MER/luRwTva6s/mXjO0nprlMPcV9To5Ol9DfU7bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748860919; 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=cVBDe3pOtt2Opqkk/itBqrr6SPnvjm455b5znyjjIDo=; b=TAAAkPeU13aXQ/7nmDZKtxl6BRI5BV/WDzwEO+rmEx4teOqQyBkWQ88dV3A1pEwmHzrBBJ jplzjMrFDYUF/fb5KFFsYGADR8ZD3Tqcq5Br6F+0khvkUfbOAA6s4zKitUw1LWEKRSkrBG 6/Ei37UDVXB+e4NvxJvhfLDqChTOJxZ0ueBYdgtCVNe2y4JH9z+q4BAX11xWGSS+xdso/I nZil525R4WY6eSRAFl8myqu/9VYtEFS/YJVfNmtrorLjkgt37z42TqM0/WO3Q74zwvq7lP QJ1meoXir4Sn7zeblxY7NjZzwov1pD11RzWMd+q5TXg5RHrcyQVoeTXMvNsuDw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748860919; a=rsa-sha256; cv=none; b=B+lkUK7kh+f3iao5etjjtlcdk0z9qZ3LikzOco/S1fQwAvbZSi/N3w0dshXXlYkFK221xc 0nWAWsmfN1m5Js804KXsgXZRYiIA4qGTEcoDf4KhBVHhb+56eScItO1UEZIdi2qXWI+FL+ 0S4Qqa+rVjpbG0jk/zHN1Yu671bsNktc5lVO3k4yJQk41BbVZUVjgy2MUgrbs+ac2c8vrH XUEtKuX8GBsrxxMBsTd43AWr+CSC5THAa4gyWr93g6tn+6xLEwae84pyCHurLLL9SqPFdv JiWBvpI7wbGKSErKpwoc7M0pz+u/3y1xD+uRMehkqXw3GaOD/ULEcY0zqeBqig== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b9r4l0fSJz15J2; Mon, 02 Jun 2025 10:41:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 552AfwtG012332; Mon, 2 Jun 2025 10:41:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 552Afw02012329; Mon, 2 Jun 2025 10:41:58 GMT (envelope-from git) Date: Mon, 2 Jun 2025 10:41:58 GMT Message-Id: <202506021041.552Afw02012329@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Turner Subject: git: 38fd088a5db2 - main - arm64: Move users of sanitised ID registers later List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@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/main X-Git-Reftype: branch X-Git-Commit: 38fd088a5db2194863718983866fab9f402bcf8e Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=38fd088a5db2194863718983866fab9f402bcf8e commit 38fd088a5db2194863718983866fab9f402bcf8e Author: Andrew Turner AuthorDate: 2025-06-02 09:56:41 +0000 Commit: Andrew Turner CommitDate: 2025-06-02 09:56:41 +0000 arm64: Move users of sanitised ID registers later To allow for masking of ID registers in the presence of errata move the late ifunc resolvers and CPU identification functions until after the errata detection has run. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D50571 --- sys/arm64/arm64/identcpu.c | 7 ++++++- sys/arm64/arm64/machdep.c | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/sys/arm64/arm64/identcpu.c b/sys/arm64/arm64/identcpu.c index 16af88dd3c97..fe10e0eb551a 100644 --- a/sys/arm64/arm64/identcpu.c +++ b/sys/arm64/arm64/identcpu.c @@ -2797,7 +2797,12 @@ identify_cpu_sysinit(void *dummy __unused) install_sys_handler(user_ctr_handler); install_sys_handler(user_idreg_handler); } -SYSINIT(identify_cpu, SI_SUB_CPU, SI_ORDER_MIDDLE, identify_cpu_sysinit, NULL); +/* + * This needs to be after the APs have stareted as they may have errata that + * means we need to mask out ID registers & that could affect hwcaps, etc. + */ +SYSINIT(identify_cpu, SI_SUB_CONFIGURE, SI_ORDER_ANY, identify_cpu_sysinit, + NULL); static void cpu_features_sysinit(void *dummy __unused) diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c index 7cacc77173a4..53856dd90cae 100644 --- a/sys/arm64/arm64/machdep.c +++ b/sys/arm64/arm64/machdep.c @@ -263,7 +263,9 @@ late_ifunc_resolve(void *dummy __unused) { link_elf_late_ireloc(); } -SYSINIT(late_ifunc_resolve, SI_SUB_CPU, SI_ORDER_ANY, late_ifunc_resolve, NULL); +/* Late enough for cpu_feat to have completed */ +SYSINIT(late_ifunc_resolve, SI_SUB_CONFIGURE, SI_ORDER_ANY, + late_ifunc_resolve, NULL); int cpu_idle_wakeup(int cpu)