1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-11-14 03:30:41 +01:00
Files
flashrom/flashrom.c
Michał Iwanicki ce2148d90d flashrom.c: move can_change_target_regions check below wp unlock
We should check if target regions are writable after trying to unlock
them, not before.

Tested on PC Engines APU4A:

```
$ ./flashrom -p internal -c W25Q64BV/W25Q64CV/W25Q64FV --wp-status
(...)
Protection range: start=0x00400000 length=0x00400000 (upper 1/2)
Protection mode: hardware
```

Before this PR trying to write wp protected region:

```
$ ./flashrom -p internal -c W25Q64BV/W25Q64CV/W25Q64FV -l \
    <(echo -e '00300000:00500000 wp\n') -i wp -w image.bin
```

Failed with:

```
cannot fully update wp region (0x300000..0x500000) due to chip's
write-protection
```

With this change:

```
Using region: "wp".
coreboot table found at 0x7ecc2000.
Found chipset "AMD FCH".
Enabling flash write... OK.
Found Winbond flash chip "W25Q64BV/W25Q64CV/W25Q64FV" (8192 kB, SPI)
mapped at physical address 0x00000000ff800000.
Reading old flash chip contents... done.
Updating flash chip contents... Region [0x00300000 - 0x00500000] is not
sector aligned! Extending end boundaries by 0x00000fff bytes,
from 0x00500000 -> 0x00500fff
Erase/write done from 300000 to 500fff
```

Change-Id: I403d0a715d8efc03bb3f34ee73d718cc9e2aad59
Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/89852
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
2025-11-10 11:04:27 +00:00

68 KiB