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>
This commit is contained in:
Felix Held 2021-07-09 22:59:01 +02:00
parent 3acc515bef
commit 3f1b70640a
1 changed files with 7 additions and 0 deletions

View File

@ -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)