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

Flashrom has several magic programmer_delay() calls scattered throughout its codebase (see cli_classic.s/main() and flashrom.c/flashrom_image_write(), at least). These delays are superfluous for the linux_mtd programmer, because it's an opaque programmer in which all protocol details are handled by the kernel driver. Stub out the delay function, so we don't waste up to 1.1 seconds of needless delay time, depending on the operation and CLI vs libflashrom usage. BUG=b:325539928 TEST=`elogtool add 0xa7` on a linux_mtd system (such as a Mediatek Chromebook): Time improvement - reduces from ~1.5s wall clock to about 0.4s CPU usage: -90%, as most of the CPU cycles (before this change) are spent in needless magic-delay busy loops Change-Id: I3ac69d3fd7cfc689c5b32c130d044516ed846c29 Signed-off-by: Brian Norris <briannorris@chromium.org> Reviewed-on: https://review.coreboot.org/c/flashrom/+/80771 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> 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%