src: use mca_clear_status function instead of open coding

Change-Id: I53413b4051b79d7c2f24b1191ce877155e654400
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/56259
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Felix Held 2021-07-13 16:44:18 +02:00
commit acbf1541ee
9 changed files with 11 additions and 72 deletions

View file

@ -186,18 +186,8 @@ static void mca_check_all_banks(void)
}
}
static void mca_clear_errors(void)
{
const unsigned int num_banks = mca_get_bank_count();
const msr_t msr = {.lo = 0, .hi = 0};
/* Zero all machine check error status registers */
for (unsigned int i = 0 ; i < num_banks ; i++)
wrmsr(IA32_MC_STATUS(i), msr);
}
void check_mca(void)
{
mca_check_all_banks();
mca_clear_errors();
mca_clear_status();
}

View file

@ -336,17 +336,14 @@ uint32_t cpu_get_max_turbo_ratio(void)
void mca_configure(void)
{
msr_t msr;
int i;
const unsigned int num_banks = mca_get_bank_count();
printk(BIOS_DEBUG, "Clearing out pending MCEs\n");
msr.lo = msr.hi = 0;
mca_clear_status();
for (i = 0; i < num_banks; i++) {
/* Clear the machine check status */
wrmsr(IA32_MC_STATUS(i), msr);
/* Initialize machine checks */
wrmsr(IA32_MC_CTL(i),
(msr_t) {.lo = 0xffffffff, .hi = 0xffffffff});