aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFelix Held <felix-coreboot@felixheld.de>2021-07-09 22:59:01 +0200
committerFelix Held <felix-coreboot@felixheld.de>2021-07-12 13:32:46 +0000
commit3f1b70640a409458053775f8d56602dda1312f50 (patch)
treed2d0c179101dc1f28c05fd650d07c85ef3a81a19 /src
parent3acc515bef73c0dfa187a1397135aa9fb36bf2a5 (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')
-rw-r--r--src/include/cpu/x86/msr.h7
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)