Packages and Binaries:
flashrom
flashrom is a tool for identifying, reading, writing, verifying and erasing flash chips. It’s often used to flash BIOS/EFI/coreboot/firmware/optionROM 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 DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32/40/48, and BGA chips, which use various protocols such as LPC, FWH, parallel flash, or SPI.
The tool can be used to flash BIOS/firmware images for example – be it proprietary BIOS images or coreboot (previously known as LinuxBIOS) images.
It can also be used to read the current existing BIOS/firmware from a flash chip.
Currently supported programmers include:
- internal (for in-system flashing in the mainboard)
- dummy (virtual programmer for testing flashrom)
- nic3com (for flash ROMs on 3COM network cards)
- nicrealtek (for flash ROMs on Realtek and SMC 1211 network cards)
- nicnatsemi (for flash ROMs on National Semiconductor DP838* network cards)
- nicintel (for parallel flash ROMs on Intel 10/100Mbit network cards)
- gfxnvidia (for flash ROMs on NVIDIA graphics cards)
- drkaiser (for flash ROMs on Dr. Kaiser PC-Waechter PCI cards)
- satasii (for flash ROMs on Silicon Image SATA/IDE controllers)
- satamv (for flash ROMs on Marvell SATA controllers)
- atahpt (for flash ROMs on Highpoint ATA/RAID controllers)
- atavia (for flash ROMs on VIA VT6421A SATA controllers)
- atapromise (for flash ROMs on Promise PDC2026x ATA/RAID controllers)
- it8212 (for flash ROMs on ITE IT8212F ATA/RAID controller)
- ft2232_spi (for SPI flash ROMs attached to an FT2232/FT4232H/FT232H family based USB SPI programmer), including the DLP Design DLP-USB1232H, FTDI FT2232H Mini-Module, FTDI FT4232H Mini-Module, openbiosprog-spi, Amontec JTAGkey/JTAGkey-tiny/JTAGkey-2, Dangerous Prototypes Bus Blaster, Olimex ARM-USB-TINY/-H, Olimex ARM-USB-OCD/-H, TIAO/DIYGADGET USB Multi-Protocol Adapter (TUMPA), TUMPA Lite, GOEPEL PicoTAP, Google Servo v1/v2, and FIC OpenMoko Neo1973 Debug board.
- serprog (for flash ROMs attached to a programmer speaking serprog), including AVR flasher by Urja Rannikko, AVR flasher by eightdot, Arduino Mega flasher by fritz, InSystemFlasher by Juhana Helovuo, and atmegaXXu2-flasher by Stefan Tauner.
- buspirate_spi (for SPI flash ROMs attached to a Bus Pirate)
- dediprog (for SPI flash ROMs attached to a Dediprog SF100)
- rayer_spi (for SPI flash ROMs attached to a RayeR parport based programmer)
- pony_spi (for SPI flash ROMs attached to a SI-Prog serial port bitbanging adapter)
- nicintel_spi (for SPI flash ROMs on Intel Gigabit network cards)
- ogp_spi (for SPI flash ROMs on Open Graphics Project graphics card)
- linux_spi (for SPI flash ROMs accessible via /dev/spidevX.Y on Linux)
- usbblaster_spi (for SPI flash ROMs attached to an Altera USB-Blaster)
- nicintel_eeprom (for SPI EEPROMs on Intel Gigabit network cards)
- mstarddc_spi (for SPI flash ROMs accessible through DDC in MSTAR-equipped displays)
- pickit2_spi (for SPI flash ROMs accessible via Microchip PICkit2)
- ch341a_spi (for SPI flash ROMs attached to WCH CH341A)
Installed size: 1.17 MB
How to install: sudo apt install flashrom
Dependencies:
- libc6
- libftdi1-2
- libjaylink0
- libpci3
- libusb-1.0-0
flashrom
Detect, read, write, verify and erase flash chips
root@kali:~# flashrom -h
flashrom v1.6.0 on Linux 6.12.38+kali-amd64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Usage: flashrom [-h|-R|-L|
-p <programmername>[:<parameters>] [-c <chipname>]
(--flash-name|--flash-size|
[-E|-x|(-r|-w|-v) [<file>]]
[(-l <layoutfile>|--ifd| --fmap|--fmap-file <file>) [-i <region>[:<file>]]...]
[-n] [-N] [-f])]
[-V[V[V]]] [-o <logfile>]
-h | --help print this help text
-R | --version print version (release)
-r | --read [<file>] read flash and save to <file>
-w | --write [<file>|-] write <file> or the content provided
on the standard input to flash
-v | --verify [<file>|-] verify flash against <file>
or the content provided on the standard input
-E | --erase erase flash memory
-V | --verbose more verbose output
-c | --chip <chipname> probe only for specified flash chip
-f | --force force specific operations (see man page)
-n | --noverify don't auto-verify
-N | --noverify-all verify included regions only (cf. -i)
-x | --extract extract regions to files
-l | --layout <layoutfile> read ROM layout from <layoutfile>
--wp-disable disable write protection
--wp-enable enable write protection
--wp-list list supported write protection ranges
--wp-status show write protection status
--wp-range=<start>,<len> set write protection range (use --wp-range=0,0
to unprotect the entire flash)
--wp-region <region> set write protection region
--flash-name read out the detected flash name
--flash-size read out the detected flash size
--fmap read ROM layout from fmap embedded in ROM
--fmap-file <fmapfile> read ROM layout from fmap in <fmapfile>
--ifd read layout from an Intel Firmware Descriptor
-i | --include <region>[:<file>] only read/write image <region> from layout
(optionally with data from <file>)
--image <region>[:<file>] deprecated, please use --include
-o | --output <logfile> log output to <logfile>
--flash-contents <ref-file> assume flash contents to be <ref-file>
-L | --list-supported print supported devices
--progress show progress percentage on the standard output
--sacrifice-ratio <ratio> Fraction (as a percentage, 0-50) of an erase block
that may be erased even if unmodified. Larger values
may complete programming faster, but may also hurt
chip longevity by erasing cells unnecessarily.
Default is 0, tradeoff is the speed of programming
operation VS the longevity of the chip. Default is
longevity.
DANGEROUS! It wears your chip faster!
PROGRAMMER SELECTION OPTIONS
-p | --programmer <name>[:<param>] specify the programmer device. One of
internal, dummy, nic3com, nicrealtek, gfxnvidia, raiden_debug_spi, drkaiser,
satasii, asm106x, atavia, it8212, ft2232_spi, serprog, buspirate_spi,
dediprog, developerbox, rayer_spi, pony_spi, nicintel, nicintel_spi,
nicintel_eeprom, ogp_spi, satamv, linux_mtd, linux_spi, usbblaster_spi,
pickit2_spi, ch341a_spi, ch347_spi, digilent_spi, jlink_spi, stlinkv3_spi,
dirtyjtag_spi, spidriver.
You can specify one of -h, -R, -L, -E, -r, -w, -v or no operation.
If no operation is specified, flashrom will only probe for flash chips.
libflashrom-dev
flashrom is a tool for identifying, reading, writing, verifying and erasing flash chips. It’s often used to flash BIOS/EFI/coreboot/firmware/optionROM 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 DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32/40/48, and BGA chips, which use various protocols such as LPC, FWH, parallel flash, or SPI.
The tool can be used to flash BIOS/firmware images for example – be it proprietary BIOS images or coreboot (previously known as LinuxBIOS) images.
It can also be used to read the current existing BIOS/firmware from a flash chip.
This package provides flashrom header development files.
Installed size: 48 KB
How to install: sudo apt install libflashrom-dev
Dependencies:
- libflashrom1
libflashrom1
flashrom is a tool for identifying, reading, writing, verifying and erasing flash chips. It’s often used to flash BIOS/EFI/coreboot/firmware/optionROM 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 DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32/40/48, and BGA chips, which use various protocols such as LPC, FWH, parallel flash, or SPI.
The tool can be used to flash BIOS/firmware images for example – be it proprietary BIOS images or coreboot (previously known as LinuxBIOS) images.
It can also be used to read the current existing BIOS/firmware from a flash chip.
This package provides flashrom library development files.
Installed size: 1.11 MB
How to install: sudo apt install libflashrom1
Dependencies:
- libc6
- libftdi1-2
- libjaylink0
- libpci3
- libusb-1.0-0
Learn more with OffSec
Want to learn more about flashrom? get access to in-depth training and hands-on labs:
Updated on: 2025-Sep-08