summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubrata Banik <subratabanik@google.com>2024-01-12 01:30:13 +0530
committerSubrata Banik <subratabanik@google.com>2024-01-12 06:54:23 +0000
commite8cfb88d0c2e38671d41278eea7f3e27a45aea26 (patch)
tree73efdab5ffc22891f4919575fd5e8364ccdeb0c9
parentda7d5fb3ff49f5ccc8debb96f3defa12f8b15464 (diff)
util/ifdtool: Enable Read Access for SPI device expansion 2 region
As per Intel Meteor Lake SPI programming doc, the BIOS region should have a read access enabled for device expansion 2 region (aka region 9). This patch ensures that BIOS region is able to read the device expansion 2 region for Intel Meteor Lake platform as known as SPI padding region. BUG=b:274356894 BRANCH=firmware-rex-15709.B TEST=Able to flash screebo AP FW image using flashrom on DUT. Without this patch: > flashrom -p internal -r /tmp/bios.rom flashrom 1.4.0-devel on Linux 6.1.67-09255-ge8ae3115f8b0 (x86_64) ... ... Found Winbond flash chip "W25Q256JW_DTR" (32768 kB, Programmer-specific) on internal. Reading flash... Transaction error between offset 0x0072f000 and 0x0072f03f (= 0x0072f000 + 63)! read_flash: failed to read (0x72f000..0x7fffff). Read operation failed! FAILED. FAILED With this patch: > flashrom -p internal -r /tmp/bios.rom flashrom 1.4.0-devel on Linux 6.1.68-09294-g001fdda5287d (x86_64) ... ... Found Winbond flash chip "W25Q256JW_DTR" (32768 kB, Programmer-specific) on internal. Reading flash... done. SUCCESS Change-Id: I18c44aa9a0f890f01a889247da118b69a58936e8 Signed-off-by: Subrata Banik <subratabanik@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/79902 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Kapil Porwal <kapilporwal@google.com> Reviewed-by: Reka Norman <rekanorman@chromium.org> Reviewed-by: Eric Lai <ericllai@google.com>
-rw-r--r--util/ifdtool/ifdtool.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/util/ifdtool/ifdtool.c b/util/ifdtool/ifdtool.c
index 99a83e5d12..191b3216de 100644
--- a/util/ifdtool/ifdtool.c
+++ b/util/ifdtool/ifdtool.c
@@ -1451,6 +1451,10 @@ static void lock_descriptor(const char *filename, char *image, int size)
fmba->flmstr5 |= (1 << REGION_EC) << rd_shift;
fmba->flmstr5 |= (1 << REGION_EC) << wr_shift;
}
+ if (check_region(frba, REGION_DEV_EXP2)) {
+ /* BIOS can read SPI device expansion 2 region. */
+ fmba->flmstr1 |= (1 << REGION_DEV_EXP2) << rd_shift;
+ }
break;
case PLATFORM_DNV:
case PLATFORM_WBG: