diff options
author | Subrata Banik <subratabanik@google.com> | 2024-01-12 01:30:13 +0530 |
---|---|---|
committer | Subrata Banik <subratabanik@google.com> | 2024-01-12 06:54:23 +0000 |
commit | e8cfb88d0c2e38671d41278eea7f3e27a45aea26 (patch) | |
tree | 73efdab5ffc22891f4919575fd5e8364ccdeb0c9 | |
parent | da7d5fb3ff49f5ccc8debb96f3defa12f8b15464 (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.c | 4 |
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: |