Module Name: src Committed By: msaitoh Date: Sat Oct 19 06:35:10 UTC 2024
Modified Files: src/sys/arch/x86/include: specialreg.h Log Message: x86/specialreg.h: Update AMD CPUID definitions. - Add AMD Hetero Workload Classification. - Extend the number of UMC PMCs field from 6bit to 8bit. - Add Guest Intercept Control for SEV-ES. - Add Segmented RMP To generate a diff of this commit: cvs rdiff -u -r1.215 -r1.216 src/sys/arch/x86/include/specialreg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/x86/include/specialreg.h diff -u src/sys/arch/x86/include/specialreg.h:1.215 src/sys/arch/x86/include/specialreg.h:1.216 --- src/sys/arch/x86/include/specialreg.h:1.215 Thu Oct 17 14:22:35 2024 +++ src/sys/arch/x86/include/specialreg.h Sat Oct 19 06:35:09 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: specialreg.h,v 1.215 2024/10/17 14:22:35 msaitoh Exp $ */ +/* $NetBSD: specialreg.h,v 1.216 2024/10/19 06:35:09 msaitoh Exp $ */ /* * Copyright (c) 2014-2020 The NetBSD Foundation, Inc. @@ -1045,6 +1045,8 @@ #define CPUID_AMD_ENCMEM_IBSVGUEST __BIT(19) /* IBS Virt. for SEV-ES guest */ #define CPUID_AMD_ENCMEM_PMCVGUEST __BIT(20) /* PMC Virt. for SEV-ES guest */ #define CPUID_AMD_ENCMEM_RMPREAD __BIT(21) /* RMPREAD instruction */ +#define CPUID_AMD_ENCMEM_GUESTINTERCEPT __BIT(22) /* Guest Intercept 4SEV-ES */ +#define CPUID_AMD_ENCMEM_SEGRMP __BIT(23) /* Segmented RMP */ #define CPUID_AMD_ENCMEM_VMSA_REGPROT __BIT(24) /* VmsaRegProt */ #define CPUID_AMD_ENCMEM_SMTPROTECT __BIT(25) /* SMT Protection */ #define CPUID_AMD_ENCMEM_SECAVIC __BIT(26) /* Secure AVIC */ @@ -1061,6 +1063,7 @@ "\15" "RSTRINJ" "\16" "ALTINJ" "\17" "DebugSwap" "\20PreventHostIbs" \ "\21VTE" "\22VmgexitParam" "\23VirtualTomMsr" "\24IbsVirtGuest" \ "\25PmcVirtGuest" "\26RMPREAD" \ + "\27GuestInterceptControl" "\30SegmentedRmp" \ "\31VmsaRegProt" "\32SmtProtection" "\33SecureAvic" "\34AllowedSev" \ "\35SvsmCommPageMSR" "\36NestedVirtSnpMsr" "\37HvInuseWrAllowed" \ "\40IbpbOnEntry" @@ -1083,15 +1086,11 @@ #define CPUID_AMDEXT2_FSRC __BIT(11) /* Fast Short Rep Cmpsb */ #define CPUID_AMDEXT2_PMCPRECISERETIRE __BIT(12) /* PMC Presize Retire */ #define CPUID_AMDEXT2_PREFETCHCTL __BIT(13) /* Prefetch control MSR */ - #define CPUID_AMDEXT2_L2TLBSIZEX32 __BIT(14) /* L2TLB size encoded as x32 */ #define CPUID_AMDEXT2_ERMSB __BIT(15) /* AMD implementation of ERMSB */ -#define CPUID_AMDEXT2_ __BIT(16) /* */ - - +#define CPUID_AMDEXT2_OPF17RECLAIM __BIT(16) /* Reserve opcode 0f 01/7 */ #define CPUID_AMDEXT2_CPUIDUSRDIS __BIT(17) /* CPUID dis. for non-priv. soft */ #define CPUID_AMDEXT2_EPSF __BIT(18) /* Enhanced Predictive Store Fwd */ - #define CPUID_AMDEXT2_0F017_RECLAIM __BIT(19) /* Opecode 0f 01/7 reserved */ #define CPUID_AMDEXT2_PREFETCHI __BIT(20) /* IC prefetch support */ #define CPUID_AMDEXT2_FP512_DOWNGRADE __BIT(21) /* FP512 dpath down to 256 */ @@ -1134,7 +1133,16 @@ #define CPUID_AXPERF_NCPC __BITS(3, 0) /* Num of Core PMC counters */ #define CPUID_AXPERF_NLBRSTACK __BITS(9, 4) /* Num of LBR Stack entries */ #define CPUID_AXPERF_NNBPC __BITS(15, 10) /* Num of NorthBridge PMCs */ -#define CPUID_AXPERF_NUMCPC __BITS(21, 16) /* Num of UMC PMCs */ +#define CPUID_AXPERF_NUMCPC __BITS(23, 16) /* Num of UMC PMCs */ + +/* + * AMD Hetero Workload Classification + * CPUID Fn8000_0027 + */ + +/* %eax */ + +#define CPUID_HWC_NWC __BITS(3, 0) /* Number of Workload Class IDs */ /* * Centaur Extended Feature flags.