cpu/intel/microcode: Have provision to re-load microcode patch

This patch provides an option to reload the microcode patch a.k.a
second microcode patch if SoC selects the required
RELOAD_MICROCODE_PATCH config.

There is a new feature requirement starting with ADL to re-load the
microcode patch as per new Mcheck initialization flow.

BUG=b:233199592
TEST=Build and boot google/taeko to ChromeOS. Able to re-load
microcode patch as below:

[INFO ]  microcode: Re-load microcode patch
[INFO ]  microcode: updated to revision 0x41b date=2022-03-08

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: I0a3c29b3c25fccd31280a2a5a8d4fb22a6cf53bf
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64833
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Tarun Tuli <taruntuli@google.com>
This commit is contained in:
Subrata Banik
2022-05-31 21:34:53 +05:30
committed by Felix Held
parent bdea3524b0
commit 0310d34c2f
2 changed files with 17 additions and 2 deletions

View File

@@ -79,10 +79,15 @@ void intel_microcode_load_unlocked(const void *microcode_patch)
current_rev = read_microcode_rev();
/* No use loading the same revision. */
if (current_rev == m->rev) {
/*
* No use loading the same revision unless RELOAD_MICROCODE_PATCH
* config is selected.
*/
if (!CONFIG(RELOAD_MICROCODE_PATCH) && (current_rev == m->rev)) {
printk(BIOS_INFO, "microcode: Update skipped, already up-to-date\n");
return;
} else {
printk(BIOS_INFO, "microcode: Re-load microcode patch\n");
}
#if ENV_RAMSTAGE