diff options
author | Felix Held <felix-coreboot@felixheld.de> | 2021-07-09 22:59:01 +0200 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2021-07-12 13:32:46 +0000 |
commit | 3f1b70640a409458053775f8d56602dda1312f50 (patch) | |
tree | d2d0c179101dc1f28c05fd650d07c85ef3a81a19 /src/include/cpu | |
parent | 3acc515bef73c0dfa187a1397135aa9fb36bf2a5 (diff) |
include/cpu/x86/msr: add mca_get_bank_count function
In multiple locations within the coreboot tree the IA32_MCG_CAP MSR gets
read and masked with MCA_BANKS_MASK to get the number of available MCA
banks on the CPU, so add this to the common code to avoid duplication
of code.
Change-Id: Id118a900edbe1f67aabcd109d2654c167b6345ea
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/56183
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Diffstat (limited to 'src/include/cpu')
-rw-r--r-- | src/include/cpu/x86/msr.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/include/cpu/x86/msr.h b/src/include/cpu/x86/msr.h index bc367d72ec..ac48ca2de6 100644 --- a/src/include/cpu/x86/msr.h +++ b/src/include/cpu/x86/msr.h @@ -155,6 +155,13 @@ static __always_inline void wrmsr(unsigned int index, msr_t msr) #endif /* CONFIG_SOC_SETS_MSRS */ +/* Get MCA bank count from MSR */ +static inline unsigned int mca_get_bank_count(void) +{ + msr_t msr = rdmsr(IA32_MCG_CAP); + return msr.lo & MCA_BANKS_MASK; +} + /* Helpers for interpreting MC[i]_STATUS */ static inline int mca_valid(msr_t msr) |