From nobody Fri Mar 13 23:31:34 2026 X-Original-To: dev-commits-src-main@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 4fXgjf6CQrz6VyKJ for ; Fri, 13 Mar 2026 23:31:34 +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 4fXgjf3wMMz40SK for ; Fri, 13 Mar 2026 23:31:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773444694; 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=VsXyYYH+A24dBtLXdenCRcjT3WqqivXFAQX8zeAfDPTtA3FaWPEE4SXrsXygEBU5FVIDTy KuSP1mCmUw6h1udedD0YLVYhU3KqXEovVbY9cQkz3gI6C3SaqfDPiU7n4MUkfVtHPk++7j ZWr3VXCakmDqyXP4NfNW5YZkHAQbMYYRebaWCnqfPKiImr5vEB2EtEna34H4882FadugZv iFGYDxlRivEjZOFk7nTCfGVRMiQaDafX3/gQThQlLQ8DMkaeeJ3Xf5z5heEuTZVvEHgHLB DFTTxhjE0QyesQO6czCLueQCc7TIe6X9hVu0KG4BKvBYy3NRoDtf/e9jR0LVXw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1773444694; a=rsa-sha256; cv=none; b=iCHUIji9+VPva88w7FG/mBMRTToMeXwbItc+XB/26NJFtRpR4JopuE86SMDJyL3OZ+ROJV yLzwiMRSlJuBkUNnbRBUyVyjRlBqpWnOQYNfi+uCeDf5WO0SoDh4+kyFyrwf/a/nDXViWb cdZ6G7XnnUK/oAGDMV38TpkoB03Ifmp/dlq5J92Gz7a79nN68Y1O9cugqoPzrgFoJNe4cW iH07YDrbeqzUrA/43JVXWplK6qYvfXpXAzbuHG3bziVhmffer9pDyYKCeXdt1gTibhDrZZ E73qpfjYRiDcSQPTXK+PfRhw4l8Tn7Q8/mJaOGihxIMZ2Kn6uEcwOVtAbRNNSw== 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=1773444694; 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=Wp0fKCOQzVuqYRcffnGQy2or3QB+SiiJuz2QTpkPc8oxIFOjuR/FMG5a3F/l/SMn/REdR9 V4/LK5X4GQ+9WmgXIkOPgnlINyOWGWCnFHAN6XdLdJhaXwPoA+ca465dyZTiJLgBEb8FYp ySuHw4tpRQME0AjaVUQOR0Lj96Vb5R6bYh90nQ4MzvrZ+VstELMTjjMxdbc4aKguP8s+IW qE8lUql/lPNsmrfgZ/lUVMskE0daTeXrcCAS71AVDyvTZZ7BHd+i0Dxxww0pAI6zwBPQ9s w1I/Cu45uAktM3H3HzfqgvyYz5KhhRYlryB35H9XP+Ho2Rrye8Rn12lh9uGDkA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fXgjf3X1qztHY for ; Fri, 13 Mar 2026 23:31:34 +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 the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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);