From nobody Fri Mar 27 01:52:22 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 4fhkD74LsMz6WYF4 for ; Fri, 27 Mar 2026 01:52:23 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fhkD70jM3z41RY for ; Fri, 27 Mar 2026 01:52:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774576343; 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=PxvFvQBjMieoya6Q1HoGKVFz5zi20snZ5R3YRIko4Vs=; b=xPqT3v+y0ARUIZdwB3ndSz8E3yvZjlnVwLlCj4CTbYKc/bKX3jjCni/YcC/VbdbXWOAAia qY+iovPmourOVw3hRL+PhJjajB1M3vQ+Vg3Rh1vCIOusVqc4SX9jfvK1ReiI6tFETpHqsz b3U0A6zvUJxdFj8RdYhIivG7idWOz+xRVeaa6JPMYK7YpL0xKi28uJ5V7hocDyj/UKM7dy xPgo0L8plu7E2Cc88NKtMXGzY9rFTX4F96eYat7BdJUCIKLdOZh6iVJYx8tXvr/2tfpInA wTNvfKba2jdAxdc8WUHqyIu7FtNa0nXP+7D4HDtRYsr1dPjbMtYO6+T5p+onVA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1774576343; a=rsa-sha256; cv=none; b=wwgfUhC8CSSfLpMNVpeoj+alK4ff2Yo0iL2U6O40Ypm0Vf+/hvQIQjcdK6cMdFVg1Cq/DK KpT7+hUwDOOqECO4jYOfRk59u3DsIZJDahD0PmZCa0WHErwKcrUei1NvaiphD8ALjBLIJI bI90r0xec0yHtgo05W+7HX6PwNL6NtRC9zTV5VLrXIz+aQQHKv93TZXi+cDRXl9uznOtu4 +7J7G1CKLJXXunmAvGoAuGudrtsfGpAMeZ2deb7DAy1OUw+WI5M3vGCpd/yxQVQoRsPhbZ fSza2Dhri+QbkpVRO3YRI3I54PT79hnPmLpUQceRorrDUi1gRsbXMmgR/we1JA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774576343; 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=PxvFvQBjMieoya6Q1HoGKVFz5zi20snZ5R3YRIko4Vs=; b=L9L26g/oKWGTM7G2449RZ44/VUK3isS4Beiif75WxrND0L8nSFSjQbJBy9UlUKt0p8pMIY Tj9f1zg3F/N6s9DjPfxx7hsV6xsCV8O9cWb3gHL1I2ZK7uAK65TXI4pEHnF7VLN1va7SUB MvbnMdpwjzgB99gd5JHS6/SCr2wpfvzJN9Fs0TfWsLdnlAu7S5ICUHblP0TjQsMLKI0xfu fl9n06MQRCfshNPM6rWslGlsnTLdtJJTP1yrJTuGe2CjrwR5c5lPpXiNtpR0sxjy3vNxCA 8goQTa5VvVe+fPCqiYZJS+q6/w4CyCBo698NUqBAPDBQsqLu3bGLSrHvieLxbw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fhkD70169z3Cn for ; Fri, 27 Mar 2026 01:52:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1c6f0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Mar 2026 01:52:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 06e71cfc1d5a - stable/15 - x86 FRED: add CPUID, MSR, and CR4 bits 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: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 06e71cfc1d5a32a28dd506f0b4adc4524d5775fd Auto-Submitted: auto-generated Date: Fri, 27 Mar 2026 01:52:22 +0000 Message-Id: <69c5e2d6.1c6f0.6657648d@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=06e71cfc1d5a32a28dd506f0b4adc4524d5775fd commit 06e71cfc1d5a32a28dd506f0b4adc4524d5775fd Author: Konstantin Belousov AuthorDate: 2026-02-07 10:22:22 +0000 Commit: Konstantin Belousov CommitDate: 2026-03-26 23:42:56 +0000 x86 FRED: add CPUID, MSR, and CR4 bits (cherry picked from commit eb0a78f6cef0c2924b565d7c297cb08bb4de7cb0) --- sys/x86/include/specialreg.h | 23 +++++++++++++++++++++++ sys/x86/x86/identcpu.c | 11 +++++++---- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/sys/x86/include/specialreg.h b/sys/x86/include/specialreg.h index e9dde5c3b46a..f14c8c56d0e3 100644 --- a/sys/x86/include/specialreg.h +++ b/sys/x86/include/specialreg.h @@ -91,6 +91,7 @@ #define CR4_LASS 0x08000000 /* Linear Address Space Separation */ #define CR4_LAM_SUP 0x10000000 /* Linear-Address Masking for Supervisor */ +#define CR4_FRED 0x100000000ull /* FRED */ /* * Bits in AMD64 special registers. EFER is 64 bits wide. @@ -548,6 +549,10 @@ * CPUID instruction 7 Structured Extended Features, leaf 1 eax info */ #define CPUID_STDEXT4_LASS 0x00000040 +#define CPUID_STDEXT4_FRED 0x00020000 +#define CPUID_STDEXT4_LKGS 0x00040000 +#define CPUID_STDEXT4_WRMSRNS 0x00080000 +#define CPUID_STDEXT4_NMISRC 0x00100000 #define CPUID_STDEXT4_LAM 0x04000000 /* CPUID_HYBRID_ID leaf 0x1a */ @@ -643,6 +648,15 @@ #define MSR_IA32_ENERGY_PERF_BIAS 0x1b0 #define MSR_IA32_PKG_THERM_STATUS 0x1b1 #define MSR_IA32_PKG_THERM_INTERRUPT 0x1b2 +#define MSR_FRED_RSP0 0x1cc +#define MSR_FRED_RSP1 0x1cd +#define MSR_FRED_RSP2 0x1ce +#define MSR_FRED_RSP3 0x1cf +#define MSR_FRED_STKLVLS 0x1d0 +#define MSR_FRED_SSP1 0x1d1 +#define MSR_FRED_SSP2 0x1d2 +#define MSR_FRED_SSP3 0x1d3 +#define MSR_FRED_CONFIG 0x1d4 #define MSR_DEBUGCTLMSR 0x1d9 #define MSR_LASTBRANCHFROMIP 0x1db #define MSR_LASTBRANCHTOIP 0x1dc @@ -924,6 +938,15 @@ /* MSR IA32_PKG_THERM_INTERRUPT */ #define IA32_PKG_THERM_INTERRUPT_HFI_ENABLE (0x1ULL << 25) +/* MSR IA32_FRED_CONFIG */ +#define IA32_FRED_CONFIG_CSL_MASK 0x00000003 +#define IA32_FRED_CONFIG_DECR_SSP 0x00000008 +#define IA32_FRED_CONFIG_REDZONESZ_MASK 0x000000e0 +#define IA32_FRED_CONFIG_REDZONESZ_SHIFT 6 +#define IA32_FRED_CONFIG_REDZONESZ_MULT 64 +#define IA32_FRED_CONFIG_EXTINT_SLC_MASK 0x00000600 +#define IA32_FRED_CONFIG_EXTINT_SLC_SHIFT 9 + /* * PAT modes. */ diff --git a/sys/x86/x86/identcpu.c b/sys/x86/x86/identcpu.c index 4d64eaf78b29..e8ac6d2a812c 100644 --- a/sys/x86/x86/identcpu.c +++ b/sys/x86/x86/identcpu.c @@ -1046,16 +1046,19 @@ printcpuinfo(void) "\040SSBD" ); } -#define STDEXT4_MASK (CPUID_STDEXT4_LASS | CPUID_STDEXT4_LAM) - if ((cpu_stdext_feature4 & STDEXT4_MASK) != 0) { + + if (cpu_stdext_feature4 != 0) { printf("\n Structured Extended Features4=0x%b", - cpu_stdext_feature4 & STDEXT4_MASK, + cpu_stdext_feature4, "\020" "\007LASS" + "\022FRED" + "\023LKGS" + "\024WRMSRNS" + "\025NMISRC" "\033LAM" ); } -#undef STDEXT4_MASK if ((cpu_feature2 & CPUID2_XSAVE) != 0) { cpuid_count(0xd, 0x1, regs);