util/ifdtool: Use ICH Strap Length (ISL) to identify APL chipset

Use offset FLMAP1 bit 24:31, called ISL (ICH Strap Lenth) to uniquely
identify the chipsets without any additional logic.

+---------+-----------+
| Chipset | PSL Value |
+---------+-----------+
| APL     | 0x13      |
+---------+-----------+

BUG=b:153888802
TEST=Able to dump FD contains correctly without specifying platform
quirks on APL (IFDv1) Platform.
> ifdtool -d coreboot.rom
PCH Revision: Apollo Lake: N3xxx, J3xxx

Change-Id: I02bcc6b1ca61c4ee59582f1b310ed0fba0ef1d9a
Signed-off-by: Subrata Banik <subrata.banik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/55617
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
Subrata Banik 2021-06-17 21:13:22 +05:30
parent 8c082e5fef
commit 621ed4c06c
1 changed files with 2 additions and 0 deletions

View File

@ -190,6 +190,8 @@ static enum ich_chipset ifd1_guess_chipset(char *image, int size)
return CHIPSET_ICH10; return CHIPSET_ICH10;
else if (isl <= 16) else if (isl <= 16)
return CHIPSET_5_SERIES_IBEX_PEAK; return CHIPSET_5_SERIES_IBEX_PEAK;
else if (isl == 0x13)
return CHIPSET_N_J_SERIES_APOLLO_LAKE;
printf("Peculiar firmware descriptor, assuming Ibex Peak compatibility.\n"); printf("Peculiar firmware descriptor, assuming Ibex Peak compatibility.\n");
return CHIPSET_5_SERIES_IBEX_PEAK; return CHIPSET_5_SERIES_IBEX_PEAK;
} else if (iccriba < 0x31 && (fdb->flmap2 & 0xff) < 0x30) { } else if (iccriba < 0x31 && (fdb->flmap2 & 0xff) < 0x30) {