From nobody Fri Mar 13 23:31:34 2026 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 4fXgjm0ddGz6VyVc for ; Fri, 13 Mar 2026 23:31:40 +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 4fXgjl5Z3Zz40Sx for ; Fri, 13 Mar 2026 23:31:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773444699; 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=ZAUWn0BMBCNuHlR6MP/YGkhfIkFiao8otA69PzIR29c=; b=vjfEFMZv1UZ62v3grbDwu+t77lpwXLC9HsMzoMD49Rjs32N7mhFC+3zhaA5u1kMEmA4CGS fB31CzhdHcBoaY1l+Vr1zLaOFtl7f8ynJ8cfcfQQN7a0AItYFEWhrsnL2hu53a3boYeagK +aiAomJk+1Bj0SGGnHi/uqX1xyGKS54E5jykwwAizpGo354Ld4bCs/WquGRPaNANiVwFME Y/PSBlxZOSv4INHSCIlldhS6s/OxCs4H5VqI6RnuzuOFCDzxec8cz3X7mqydKshV8vCG1X kK173+QKJ5mo8c5nTs5ypzRcmQQExPHBGLYgLio/EGCr8YEJZiBkCRBkMCgjlA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1773444699; a=rsa-sha256; cv=none; b=DBHeg7u+sEcoT2KHz4lUu2VjnuwTWN+ZJTq1c1Muc3iaHDO6b3/XeP7fCDV0CD0G3H0aDI x+V9SiQOIgTqWpwSWyyIdpAnv25GEuLQ+qNNcQo4S1i60nfA/kmgGr+q72LGS1nZZNreaB xYlQi64JZLxmCTIGExF+PKEfKluE9cCeGASkbY/Nhg6ZNwsy0REkF9llRj4ymGNi5ufnu/ a6Lz/amM+QS36yOKG22Mi7SYJ2Lu/gztGlWDmk1EdFSb3BcLfdrP5YcvX6yGvR8Ho/yAFz 2jCWm2FeioL3WfsZ1oM4P9j3Giwd9tNayArB6kZ4rm9Q0xgQVE8uTegh1WI9aw== 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=1773444699; 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=ZAUWn0BMBCNuHlR6MP/YGkhfIkFiao8otA69PzIR29c=; b=GpyOAVWqfxWOFvlOiOhZavX0zDL7N91AnuL4JKjjfqLvahVJXeaqulTcwwJ4eYXS+J2ttv 7GAEbMuxNK7GUyrQxQZCwTCuaFyPaSSeVYpDBOY1xLtAG/8WsH5i4CIWPmQENL2nAVxQXU ZBM5OfyYis/Cl+/QDACvFgEm+8RSMCE9dXwz2oCeNmjf0cR2wNpyWPC1D2PkhQr0jk9OyS +chizn2ZaknnSl4/PmgqH46UQn6rd3ZiM07hWpJQOxXeck2iLpcMyb7ud9Le9tedU1jfdm UHWnu7SMn37TXTkpxa/WxEAlkxzr6IJb5wNFLPXHy+SmcELEUg4utWKlYCUfrg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fXgjl4sDQztM0 for ; Fri, 13 Mar 2026 23:31:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2116f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 13 Mar 2026 23:31:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: eb0a78f6cef0 - main - x86 FRED: add CPUID, MSR, and CR4 bits 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: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: eb0a78f6cef0c2924b565d7c297cb08bb4de7cb0 Auto-Submitted: auto-generated Date: Fri, 13 Mar 2026 23:31:34 +0000 Message-Id: <69b49e56.2116f.1c52bb7c@gitrepo.freebsd.org> The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=eb0a78f6cef0c2924b565d7c297cb08bb4de7cb0 commit eb0a78f6cef0c2924b565d7c297cb08bb4de7cb0 Author: Konstantin Belousov AuthorDate: 2026-02-07 10:22:22 +0000 Commit: Konstantin Belousov CommitDate: 2026-03-13 23:30:27 +0000 x86 FRED: add CPUID, MSR, and CR4 bits Reviewed by: jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D55810 --- 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 3e5f598cd82a..4eb4f2c398b2 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. @@ -549,6 +550,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 */ @@ -644,6 +649,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 @@ -925,6 +939,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 7661c82f4394..7e0ccc72f7bb 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);