mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 07:02:34 +02:00

get_flash_region() emits a struct flash_region, which uses chipoff_t for the start and end addresses of a region. chipoff_t is defined as a valid flash address, so it was wrong to be setting the end address to start + len; this is clearly wrong in the case where there is a single region because setting end to the flash size generates an address that is beyond the end of the chip (due to zero-indexing). This changes the one actual implementation of .get_region in ichspi.c to use inclusive upper bounds, and corrects all callers of get_flash_region() to treat the upper bounds as inclusive. Overall this reduces complexity slightly by removing more downward adjustments by 1 than it needs to add upward adjustments. TEST=on yaviks, `flashrom -V -x` prints equivalent messages about "x region (0xZZZZ..0xZZZZ) is readable" before and after this patch. Change-Id: Ia0ca867aef33b598c2697fc264807fa5e29683ec Signed-off-by: Peter Marheine <pmarheine@chromium.org> Reviewed-on: https://review.coreboot.org/c/flashrom/+/82496 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Hsuan-ting Chen <roccochen@google.com> Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
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`. Building / installing / packaging --------------------------------- flashrom supports building with **make** and **meson**. TLDR, building with meson """"""""""""""""""""""""" :: 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` TLDR, building with make """""""""""""""""""""""" :: make make install For full detailed instructions, follow the information in :doc:`dev_guide/building_with_make` Contact ------- The official flashrom website is: https://www.flashrom.org/ For available contact methods see :doc:`contact`
Description
Languages
C
90.2%
Rust
5%
Shell
2%
Makefile
1.6%
Meson
1.2%