Michał Żygowski has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/55577 )
Change subject: ich_descriptors.c: Fix PCH detection for Tiger Lake ......................................................................
ich_descriptors.c: Fix PCH detection for Tiger Lake
Comet Lake and Tiger Lake have different FLMAP2 register layout than their predecessors: ICCRIBA became CPU Soft Strap Length (previous MSL) without any bit position change and FSMBA became CPU Soft Strap Offset from PMC base with length of 10 bits on position 11:2. Because of that the PCH detection may fail on such chipsets. Unlike Comet Lake, the Tiger Lake has very low ICCRIBA (TGL=0x11, CNL=0x34 and CML=0x34). So because of that flashrom was reporting 100 Series Sunrise Point PCH and trying to use FLCOMP freq_read field which does not exists anymore on Tiger Lake PCH. It caused flashrom to think that SPI read frequency is not correct.
Check if ICCRIBA greater than 0x11 for Sunrise Point else report as Cannon Point compatible PCH series to avoid using freq_read as indicator.
TEST=Flash BIOS region on Intel i5-1135G7 with the patch adding Tiger Lake support
Signed-off-by: Michał Żygowski michal.zygowski@3mdeb.com Change-Id: Ib61d432ab4eaf00aa4eef50d2844940e73b5cad6 --- M ich_descriptors.c 1 file changed, 7 insertions(+), 3 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/77/55577/1
diff --git a/ich_descriptors.c b/ich_descriptors.c index a6ac881..88be2b5 100644 --- a/ich_descriptors.c +++ b/ich_descriptors.c @@ -946,10 +946,14 @@ msg_pwarn("Peculiar firmware descriptor, assuming Wildcat Point compatibility.\n"); return CHIPSET_9_SERIES_WILDCAT_POINT; } else if (content->ICCRIBA < 0x34) { - if (content->NM == 6) + if (content->NM == 6) { return CHIPSET_C620_SERIES_LEWISBURG; - else - return CHIPSET_100_SERIES_SUNRISE_POINT; + } else { + if (content->ICCRIBA > 0x11) + return CHIPSET_100_SERIES_SUNRISE_POINT; + else + return CHIPSET_300_SERIES_CANNON_POINT; + } } else if (content->ICCRIBA == 0x34) { if (content->NM == 6) return CHIPSET_C620_SERIES_LEWISBURG;