1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-10-17 15:51:53 +02:00
Michał Żygowski 3461f65b23 sb600spi: Fix Promontory flash read of chips larger than 16MiB
If the flash chip is larger than 16MiB, the memory mapped read from
top of 4G address will not work properly, resulting in accesses
to addresses below 0xff000000. In such cases flashrom fails with
"Bus error".

Fallback to default_spi_read for flashes larger than 16 MiB. Using
memory mapped access with ROM3 register could be implemented, however
it introduces the complexity of ROM page remapping. I.e. the PSP may
remap 16MiB pages of 32MiB or larger flashes by XORing the host
memory mapped address bits [31:24]. It results in non-linear memory
mapped flash space.

Fixes the issue: https://ticket.coreboot.org/issues/370

TEST=Read complete flash content on Gigabyte MZ33-AR1 running coreboot.

Change-Id: I218a4c2dbf7cd7e8fa25b3ecb5aeac03f54f9dc6
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/89446
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Peter Marheine <pmarheine@chromium.org>
Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
2025-10-16 02:10:04 +00:00
2025-10-14 10:40:26 +00:00
2025-10-14 10:40:26 +00:00
2025-10-11 06:02:44 +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-07-03 05:45:38 +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-14 10:39:40 +00:00
2025-07-03 05:45:38 +00:00
2023-03-28 00:36:36 +00:00
2025-09-28 08:25:39 +00:00
2025-07-03 05:45:38 +00:00
2025-07-03 05:45:38 +00:00
2024-08-22 01:22:27 +00:00
2025-07-03 05:45:38 +00:00
2025-02-24 06:50:19 +00:00
2025-01-08 11:35:47 +00:00
2025-07-03 05:45:38 +00:00
2025-07-03 05:45:38 +00:00
2025-07-03 05:45:38 +00:00
2019-07-31 08:26:59 +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 71 MiB
Languages
C 90.2%
Rust 5%
Shell 2%
Makefile 1.6%
Meson 1.2%