1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-10-27 11:22:10 +01:00
Michał Iwanicki 3a6d88f438 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: I624d2b6427e7d5e25d11c16035c7c7ce040e5163
Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/89689
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
2025-10-26 21:33:46 +00:00
2025-10-26 21:25:17 +00:00
2025-10-14 10:40:26 +00:00
2025-10-12 05:07:45 +00:00
2024-08-12 00:09:12 +00:00
2025-07-03 05:45:38 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-14 10:39:40 +00:00
2025-10-14 10:39:40 +00:00
2025-10-14 10:39:40 +00:00
2025-10-18 07:10:08 +00:00
2023-03-28 00:36:36 +00:00
2025-10-18 07:10:08 +00:00
2025-09-28 08:25:39 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-07-03 05:45:38 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2024-08-22 01:22:27 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-02-24 06:50:19 +00:00
2025-01-08 11:35:47 +00:00
2025-10-18 07:10:08 +00:00
2025-10-18 07:10:08 +00:00
2025-07-03 05:45:38 +00:00

flashrom README
===============

flashrom is a utility for detecting, reading, writing, verifying and erasing
flash chips. It is often used to flash BIOS/EFI/coreboot/firmware images
in-system using a supported mainboard, but it also supports flashing of network
cards (NICs), SATA controller cards, and other external devices which can
program flash chips.

It supports a wide range of flash chips (most commonly found in SOIC8, DIP8,
SOIC16, WSON8, PLCC32, DIP32, TSOP32, and TSOP40 packages), which use various
protocols such as LPC, FWH, parallel flash, or SPI.

Do not use flashrom on laptops (yet)! The embedded controller (EC) present in
many laptops might interact badly with any attempts to communicate with the
flash chip and may brick your laptop.

Please make a backup of your flash chip before writing to it.

Please see the flashrom(8) manpage :doc:`classic_cli_manpage`.

The list of platforms that package flashrom can be found on `repology.org <https://repology.org/project/flashrom/versions>`_.

Information about recent releases can be found in :doc:`/release_notes/index`.

Building / installing / packaging
---------------------------------

flashrom is built with **meson**. TLDR:

::

    meson setup builddir
    meson compile -C builddir
    meson test -C builddir
    meson install -C builddir

For full detailed instructions, follow the information in
:doc:`dev_guide/building_from_source`.

If you are interested in development, have a look at :doc:`dev_guide/development_guide`.

Contact
-------

The official flashrom website is:

  https://www.flashrom.org/

For available contact methods see :doc:`contact`
Description
No description provided
Readme 72 MiB
Languages
C 90.2%
Rust 5%
Shell 2%
Makefile 1.6%
Meson 1.2%