From nobody Thu Jan 15 14:51:08 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 4dsQsX4HHxz6P4jN for ; Thu, 15 Jan 2026 14:51:12 +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 4dsQsV1MMkz3JfT for ; Thu, 15 Jan 2026 14:51:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768488670; 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=0Y+0DvFZHrEdI7CYzcDTMCEu8zjdlqqC3CASy31uPd0=; b=YYTGg2WP875b88oyyAKzL52f2sIrOmtrk21RYOJaxEl9EZY3DpA7TC515Clv9oDHkgOhgK Leyjlp1bWDFU8pSPyVHoMq6CsTfqWgo5N4Z1IaUJFWx33lxc0Jx9T83TNPFlMWsoNRdU+2 30zxWGeTqNtQ8dUAP/sSe8Y3EP6ES888SiQBMkQV6y0Le2kdui76WpvjX67UrvVqYVSopF jk88SHd8NTAbARQgvqJWitBmmh9mzVMrssjBjlzm10mXsAeDMmPeQ9DDu7WvmeqY71dIxr vPExlVYVUHO0QZTYKTu6Mre3KcRR8+C2lH6cignezSjyUONROSd+YNb6rKy3LQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768488670; 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=0Y+0DvFZHrEdI7CYzcDTMCEu8zjdlqqC3CASy31uPd0=; b=aBFCQlQXgSC03xhjiBOxI8Rij9npNthbxNHVCCxVCyWpIm4KD77CkvEn2C8p/GBO47ZMxA wop4u8c7BOB2rnJ+g+1WkRZwxxDzh/A2wCpySmcKEmPaSL40Aq5IPm5qeLxyJ2WRkD0uvx F4o7Cr3s+5b98seYzG+tGwTsO+z/RWQtwPWASRJHokLz2costuJ1zUK59U6lRq57cWEYbX V/ZxfN/wDRevCpEdKwZ5KYiyptsaVIN3slnF8bzsNnhMSxFfFFlIdF9d6v6uXOoaUFBWfL nmRHUhO1x1xGqRGc/UiehTST+//NbN9IPWtcTo9VGFLE8AZbUNpZyP/84+qYbA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1768488670; a=rsa-sha256; cv=none; b=cd4PbDd9yVHi7hfjeHmbKodckkFdGpPJdJ1NXrS1q1lDw7vYG203eh7qdlZwNcSHuyyGD5 k6whFbHdhoLvSvF09+qhQs5dyvq5eZsYEoru95J6YRiOmQ0yR9N6E9TpNA1lgfHCMGFQ9i JL3GM4PO0rNI/MydFfqeRmjJkEJreEvuXWEn189O2dSHfDoQ0EEPsw3wuuoX67ugwkzYac 24d/7MMDYEUvsxywUHHNElc4VlTy2q/rzEPF+lhRDHxMG1AMug0+MN7Yir7PWXfKtm+YVT u3IKIbBk7hJiUBUKskF0NdHgV5w9EEatlZ25qOlie+AcovuYwesq58MCLZcO1w== 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 4dsQsS2Bj5zYwf for ; Thu, 15 Jan 2026 14:51:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22acf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 15 Jan 2026 14:51:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 7cd4ec4adb8f - stable/14 - arm64: Add a function to check a range of CPU revs 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/14 X-Git-Reftype: branch X-Git-Commit: 7cd4ec4adb8f3727f59b6208b9e3bcc6c0bf30c0 Auto-Submitted: auto-generated Date: Thu, 15 Jan 2026 14:51:08 +0000 Message-Id: <6968fedc.22acf.7df3d6b2@gitrepo.freebsd.org> The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=7cd4ec4adb8f3727f59b6208b9e3bcc6c0bf30c0 commit 7cd4ec4adb8f3727f59b6208b9e3bcc6c0bf30c0 Author: Andrew Turner AuthorDate: 2025-09-04 14:57:41 +0000 Commit: Andrew Turner CommitDate: 2026-01-14 21:14:15 +0000 arm64: Add a function to check a range of CPU revs Add a function that can check if a given midr is within a range of revisions. This will be used to check if a CPU is affected by a known erratum. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D52187 (cherry picked from commit c76b0247a95ed090cc0d83b2698228d2937af3e6) --- sys/arm64/include/cpu.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/sys/arm64/include/cpu.h b/sys/arm64/include/cpu.h index dbb92d75dd85..f61f727315a6 100644 --- a/sys/arm64/include/cpu.h +++ b/sys/arm64/include/cpu.h @@ -202,6 +202,31 @@ #define CPU_MATCH_RAW(mask, devid) \ (((mask) & PCPU_GET(midr)) == ((mask) & (devid))) +#if !defined(__ASSEMBLER__) +static inline bool +midr_check_var_part_range(u_int midr, u_int impl, u_int part, u_int var_low, + u_int part_low, u_int var_high, u_int part_high) +{ + /* Check for the correct part */ + if (CPU_IMPL(midr) != impl || CPU_PART(midr) != part) + return (false); + + /* Check if the variant is between var_low and var_high inclusive */ + if (CPU_VAR(midr) < var_low || CPU_VAR(midr) > var_high) + return (false); + + /* If the variant is the low value, check if the part is high enough */ + if (CPU_VAR(midr) == var_low && CPU_PART(midr) < part_low) + return (false); + + /* If the variant is the high value, check if the part is low enough */ + if (CPU_VAR(midr) == var_high && CPU_PART(midr) > part_high) + return (false); + + return (true); +} +#endif + /* * Chip-specific errata. This defines are intended to be * booleans used within if statements. When an appropriate