diff options
-rw-r--r-- | src/soc/intel/common/block/cpu/cpulib.c | 9 | ||||
-rw-r--r-- | src/soc/intel/common/block/include/intelblocks/cpulib.h | 8 | ||||
-rw-r--r-- | src/soc/intel/common/block/include/intelblocks/msr.h | 2 |
3 files changed, 19 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/cpu/cpulib.c b/src/soc/intel/common/block/cpu/cpulib.c index bf361a4791..1cefc1277e 100644 --- a/src/soc/intel/common/block/cpu/cpulib.c +++ b/src/soc/intel/common/block/cpu/cpulib.c @@ -505,3 +505,12 @@ void disable_three_strike_error(void) msr.lo = msr.lo | DISABLE_CPU_ERROR; wrmsr(MSR_PREFETCH_CTL, msr); } + +void disable_signaling_three_strike_event(void) +{ + msr_t msr; + + msr = rdmsr(MSR_DISABLE_SIGNALING_THREE_STRIKE_EVENT); + msr.lo = msr.lo | THREE_STRIKE_COUNT; + wrmsr(MSR_DISABLE_SIGNALING_THREE_STRIKE_EVENT, msr); +} diff --git a/src/soc/intel/common/block/include/intelblocks/cpulib.h b/src/soc/intel/common/block/include/intelblocks/cpulib.h index 5601d5d067..91c76e393c 100644 --- a/src/soc/intel/common/block/include/intelblocks/cpulib.h +++ b/src/soc/intel/common/block/include/intelblocks/cpulib.h @@ -217,4 +217,12 @@ bool is_keylocker_supported(void); */ void disable_three_strike_error(void); +/* + * This function stops the Three Strike event from signaling and prevent + * the Three Strike Counter from incrementing. + * This is the new MSR introduces starting from Intel Meteor Lake-C0 (QS) stepping SoC + * It helps to collect more useful CPU traces for debugging. + */ +void disable_signaling_three_strike_event(void); + #endif /* SOC_INTEL_COMMON_BLOCK_CPULIB_H */ diff --git a/src/soc/intel/common/block/include/intelblocks/msr.h b/src/soc/intel/common/block/include/intelblocks/msr.h index 9f95e9f7e6..158cc9e3fe 100644 --- a/src/soc/intel/common/block/include/intelblocks/msr.h +++ b/src/soc/intel/common/block/include/intelblocks/msr.h @@ -41,6 +41,8 @@ #define MISC_PWR_MGMT_ISST_EN (1 << 6) #define MISC_PWR_MGMT_ISST_EN_INT (1 << 7) #define MISC_PWR_MGMT_ISST_EN_EPP (1 << 12) +#define MSR_DISABLE_SIGNALING_THREE_STRIKE_EVENT 0x1ab +#define THREE_STRIKE_COUNT (1 << 0) #define MSR_TURBO_RATIO_LIMIT 0x1ad #define MSR_PRMRR_PHYS_BASE 0x1f4 #define MSR_PRMRR_PHYS_MASK 0x1f5 |