FLASHROM(8) flashrom FLASHROM(8) (NAME) flashrom - (SYNOPSIS) flashrom [-h|-R|-L| -p [:] [-c ] (--flash-name|--flash-size| [-E|-x|-r []|-w []|-v []] [(-l |--ifd|--fmap|--fmap-file |--fmap-verify) [-i [:]]] [--wp-status] [--wp-list] [--wp-enable|--wp-disable] [--wp-range ,|--wp-region ] [-n] [-N] [-f] [--rpmc-root-key ] [--key-data ] [--counter-address
] [--get-rpmc-status] [--write-root-key] [--update-hmac-key] [--increment-counter ] [--get-counter])] [-V[V[V]]] [-o ] [--progress] [--sacrifice-ratio ] [--read-repeated[=] []] (DESCRIPTION) flashrom . BIOS/EFI/coreboot/firmware (in-system) . PCI/USB/ / (NIC) SATA/IDE Bus Pirate USB FTDI FT2232/FT4232H/FT4233H/FT232H . DIP32 PLCC32 DIP8 SO8/SOIC8 TSOP32 TSOP40 TSOP48 BGA LPC FWH SPI . (OPTIONS) -h -R -L -E -r -w -v RPMC . flashrom . flashrom (probe-only) . -r . (///...) -p/--programmer ( ). -r, --read [] . . -i/--include . --include . -w, --write (|-) . - (stdin) . . . . . . . -i/--include . --include . -n, --noverify . . : flashrom -p prog -n -w --write --erase . -N, --noverify-all ( -l -i). ( internal). flashrom ( ). ME internal . . -v, --verify (|-) . - . -i/--include . --include . -E, --erase . -x, --extract ( ) . -V, --verbose . ( -VVV) . -c, --chip . flashrom -L . . -f, --force : o . o . o . o . -l, --layout . flashrom . . : startaddr:endaddr imagename startaddr endaddr . 0x / . imagename / startaddr endaddr ( ) . : 00000000:00008fff gfxrom 00009000:0003ffff normal 00040000:0007ffff fallback normal : flashrom -p prog --layout rom.layout --image normal -w some.rom normal fallback : flashrom -p prog -l rom.layout -i normal -i fallback -w some.rom . --fmap fmap . flashrom fmap coreboot . fmap . COREBOOT fmap : flashrom -p prog --fmap --image COREBOOT -w some.rom --fmap-file fmap ( coreboot) . flashrom fmap coreboot . fmap . COREBOOT fmap : flashrom -p prog --fmap-file some.rom --image COREBOOT -w some.rom --fmap-verify fmap fmap . --fmap --fmap-file --layout --ifd () . . flashrom fmap . fmap . . COREBOOT fmap fmap : flashrom -p prog --fmap-verify -w new.rom --image COREBOOT --ifd (Intel Firmware Descriptor IFD) . flashrom (IFD) . . IFD . IFD : fd - IFD bios - BIOS me - Intel Management Engine gbe - pd - -i, --include [:] . -i . . . () () . // . -r/-w/-v: o . o -r/-w/-v -i ( -i ) // . o -r/-w/-v -i -i -i . : o -i -r -i . -i . o -r -i : o -i (-i region:filename). o . -i . : o -w/-v -i -i ( -w/-v ). o -i -w -i . -v -i. -i . . o . . : /fmap . : foo bar foo.bin bar.bin : flashrom -p prog -r -l -i foo:foo.bin -i bar:bar.bin foo.bin bar.bin foo bar : flashrom -p prog -w -l -i foo:foo.bin -i bar:bar.bin foo bar foo.bin bar.bin : flashrom -p prog -v -l -i foo:foo.bin -i bar:bar.bin --wp-status (status register) . --wp-list . --wp-enable (SRP) . SRP ( --wp-disable --wp-range) #WP . --wp-disable . --wp-range , ( + - 1) ( ) . --wp-list . --wp-region --wp-range . --layout . --wp-list . --flash-name . --flash-size . --flash-contents . . . -L, --list-supported ( PCI USB ) flashrom . flashrom . . : (ERASE) / (WRITE) ! -p, --programmer [:parameter[,parameter[,parameter]]] . (///...) . : o internal ( ) o dummy ( flashrom) o fault ( ) o nic3com ( 3COM) o nicrealtek ( Realtek SMC 1211) o nicnatsemi ( National Semiconductor DP838*) o nicintel ( Intel 10/100Mbit) o gfxnvidia ( NVIDIA) o drkaiser ( PCI Dr. Kaiser PC-Waechter) o satasii ( Silicon Image SATA/IDE) o satamv ( Marvell SATA) o atahpt ( Highpoint ATA/RAID) o atavia ( VIA VT6421A SATA) o atapromise ( Promise PDC2026x ATA/RAID) o it8212 ( ITE IT8212F ATA/RAID) o ft2232_spi ( SPI USB SPI FT2232/FT4232H/FT232H) o serprog ( serprog ) o buspirate_spi ( SPI Bus Pirate) o dediprog ( SPI Dediprog SF100) o rayer_spi ( SPI ) o raiden_debug_spi ( Chrome EC SuzyQable Servo V4 C2D2 uServo) o pony_spi ( SPI SI-Prog) o nicintel_spi ( SPI ) o ogp_spi ( SPI Open Graphics Project) o linux_mtd ( SPI dev/mtdX/ ) o linux_spi ( SPI dev/spidevX.Y/ ) o usbblaster_spi ( SPI Altera USB-Blaster) o nicintel_eeprom ( EEPROM SPI ) o mstarddc_spi ( SPI DDC MSTAR) o pickit2_spi ( SPI Microchip PICkit2) o ch341a_spi ( SPI WCH CH341A) o ch347_api ( SPI WHC CH347) o digilent_spi ( SPI iCEblink40) o jlink_spi ( SPI SEGGER J-Link ) o ni845x_spi ( SPI National Instruments USB-8451 USB-8452) o stlinkv3_spi ( SPI STMicroelectronics STLINK V3) o realtek_mst_i2c_spi ( SPI Realtek DisplayPort I2C) o parade_lspcon ( SPI Parade Technologies LSPCON (PS175)) o mediatek_i2c_spi ( SPI I2C) o dirtyjtag_spi ( SPI DirtyJTAG) o asm106x ( SPI asm106x PCI SATA) o spidriver ( SPI Excamera Labs SPIDriver) o nv_sma_spi ( SPI Nvidia System Management Agent) (PROGRAMMER-SPECIFIC INFORMATION) . . flashrom -h . -h, --help . -o, --output . . flashrom . --progress . --sacrifice-ratio ( ) . . 0 S+1 S . 50 S+1 . . . ! ! --read-repeated [=] [] (: : : ) . ( ) . . X/N reads matched . (flakiness) . . . . -r -w -E -v . ( ) . . . : flashrom -p --read-repeated flashrom -p --read-repeated=5 flashrom -p --read-repeated=5 dump.bin -R, --version . RPMC (RPMC commands) JESD260 . . Error: RPMC commands are not supported on this device -c "SFDP-capable chip" . --get-rpmc-status RPMC OP2 . : flashrom -p prog --get-rpmc-status --write-root-key (root key) --rpmc-root-key --counter-address . : flashrom -p prog --rpmc-root-key --counter-address
--write-root-key --update-hmac-key hmac --counter-address --key-data . --rpmc-root-key . : flashrom -p prog --rpmc-root-key --counter-address
--key-data --update-hmac-key --increment-counter --counter-address . --key-data --rpmc-root-key . : flashrom -p prog --rpmc-root-key --counter-address
--key-data --increment-counter 12 flashrom -p prog --rpmc-root-key --counter-address
--key-data -w rom.bin --update-hmac-key --increment-counter 25 --get-counter --counter-address . --key-data --rpmc-root-key . : flashrom -p prog --rpmc-root-key --counter-address
--key-data --get-counter flashrom -p prog --rpmc-root-key --counter-address
--key-data --update-hmac-key --get-counter RPMC (RPMC options) --counter-address
RPMC . 0 . 0 . : flashrom --counter-address 2 --rpmc-root-key . : flashrom --rpmc-root-key /home/user/some_key.bin --key-data RPMC . 0 . : flashrom --key-data 12abc (PROGRAMMER-SPECIFIC INFORMATION) . (:) . / (=) . (internal programmer) (Board Enables) ( ) . ( ) : coreboot coreboot . PCI DMI . PCI DMI ( ) : flashrom -p internal:mainboard=: . coreboot Known boards Known laptops flashrom -L . ( board enables ) flashrom . . ( ) . ( ) flashrom ( ) . ROM ( flashrom ) . . : flashrom -p internal:boardenable=force . . ROM ( -r) USB . . . / . ( ) flashrom ( ). Linux MTD spi-intel PCH MTD . . . (flash descriptor) linux_mtd:ignore_read_errors=yes . (unbind) 00:1f.5 : echo 0000:00:1f.5 > /sys/bus/pci/drivers/intel-spi/unbind . Coreboot coreboot flashrom . (board ID) . flashrom : flashrom -p internal:boardmismatch=force ITE IT87 Super I/O (GIGABYTE) DualBIOS Super I/O ITE IT87 . : flashrom -p internal:dualbiosindex=chip chip (0 = main 1 = backup). chip . Super I/O ITE IT87 LPC<->SPI flashrom . / (I/O base port) SPI IT87 BIOS : flashrom -p internal:it87spiport=portnum portnum / ( 8 ). flashrom IT87 LPC<->SPI . AMD (AMD chipsets) SB700 (IMC) 8051 (southbridge) AMD . IMC . Flashrom IMC : IMC ( ) . IMC . flashrom IMC : flashrom -p internal:amd_imc_force=yes . IMC (layout file) . . . spispeed SPI ( SB600 SPI ). : flashrom -p internal:spispeed=frequency frequency '16.5 MHz' '22 MHz' '33 MHz' '66 MHz' '100 MHZ' '800 kHz' . : o SB6xx SB7xx SP5xxx: 16.5 33 . 16.5 (Fast Reads) . o SB8xx SB9xx Hudson: 16.5 66 . 16.5 (Fast Reads) . o Yangtze ( SPI 100 Kabini Tamesh ): . . spireadmode SPI (Bolton ). : flashrom -p internal:spireadmode=mode mode 'Normal (up to 33 MHz)' 'Normal (up to 66 MHz)' 'Dual IO (1-1-2)' 'Quad IO (1-1-4)' 'Dual IO (1-2-2)' 'Quad IO (1-4-4)' 'Fast Read' . . (Intel chipsets) ICH8 SPI (descriptor) ( ) () (Hardware Sequencing) . ( (Software Sequencing)) SPI . : flashrom -p internal:ich_spi_mode=value value auto swseq hwseq . ( ich_spi_mode=auto) swseq hwseq ( (opcodes) ). (swseq hwseq) . ICH8 . << >> (Flash Regions) ME . (Protected Regions) << >> . / . ICH2 IDSEL (EC) : flashrom -p internal:fwh_idsel=value value IDSEL . 0xffc00000 0xffffffff 0xff400000 0xff7fffff . . IDSEL . ICH7 . : flashrom -p internal:fwh_idsel=0x001122334567 laptop (Laptops) flashrom SPI ( ) ( BUGS ). (EC) . EC <> . BIOS EC EC flashrom . flashrom EC . EC . flashrom SPI . LPC : flashrom -p internal:laptop=force_I_want_a_brick . . . (chassis type) DMI/SMBIOS . / . flashrom . : flashrom -p internal:laptop=this_is_not_a_laptop ( ) flashrom . (dummy programmer) . flashrom . ( /// ). . : flashrom -p dummy:bus=[type[+type[+type]]] type parallel lpc fwh spi . bus type . bus . : flashrom -p dummy:bus=lpc+fwh . : flashrom -p dummy:emulate=chip chip ( ): o ST M25P10.RES SPI ( RES ) o SST SST25VF040.REMS SPI ( REMS ) o SST SST25VF032B SPI ( RDID AAI) o Macronix MX25L6436 SPI ( RDID SFDP) o Winbond W25Q128FV SPI ( RDID) o Spansion S25FL128L SPI ( RDID) o VARIABLE_SIZE SPI ( ) : flashrom -p dummy:emulate=SST25VF040.REMS VARIABLE_SIZE size . : flashrom -p dummy:emulate=VARIABLE_SIZE,size=16777216,image=dummy.bin (Persistent images) : flashrom -p dummy:emulate=chip,image=image.rom image.rom flashrom flashrom . : flashrom -p dummy:emulate=M25P10.RES,image=dummy.bin SPI (SPI write chunk size) SPI SPI : flashrom -p dummy:emulate=chip,spi_write_256_chunksize=size size ( ). : flashrom -p dummy:emulate=M25P10.RES,spi_write_256_chunksize=5 SPI (SPI blacklist) SPI SPI : flashrom -p dummy:spi_blacklist=commandlist commandlist SPI . commandlist 0302 flashrom SPI 0x03 ( READ) 0x02 ( WRITE) . commandlist ( ) . : flashrom . SPI (SPI ignorelist) SPI ( ) SPI : flashrom -p dummy:spi_ignorelist=commandlist commandlist SPI . commandlist 0302 0x03 ( READ) 0x02 ( WRITE) . commandlist ( ) . : flashrom . SPI (SPI status register) : flashrom -p dummy:spi_status=content" content . 0x332211 0x11 SR1 0x22 SR2 0x33 SR3 . (padding). . (Write protection) WP ( ): W25Q128FV S25FL128L. (WP) : flashrom -p dummy:hwwp=state state yes no ( ) . yes ( / ). (Frequency) Hz () KHz MHz ( ). freq . [1Hz, 8000Mhz] . SPI SPI : flashrom -p dummy:emulate=W25Q128FV,freq=64mhz (fault programmer) (fault programmer) . (verification) (retry) . dummy (happy path) fault . backend : flashrom -p fault:backend=dummy,bus=spi,emulate=W25Q128FV,seed=42 (backend) . SPI . (Determinism) seed (PRNG) (: 0). seed + = : flashrom -p fault:backend=dummy,...,seed=42 (Bit corruption) flip_prob : flashrom -p fault:backend=dummy,...,flip_prob=0.001 (Short reads) short_read_prob () . min_read_ratio (: 0.5) : flashrom -p fault:backend=dummy,...,short_read_prob=0.1,min_read_ratio=0.8 (Write faults) write_fail_prob . write_lie_prob . partial_write_prob : flashrom -p fault:backend=dummy,...,write_lie_prob=0.2 (Logging) (-V) . . : flashrom -p fault:backend=dummy,...,flip_prob=0.001,seed=1 -r a.bin flashrom -p fault:backend=dummy,...,flip_prob=0.001,seed=2 -r b.bin cmp a.bin b.bin : flashrom -p fault:backend=dummy,...,write_lie_prob=0.2 -w image.bin nic3com nicrealtek nicnatsemi nicintel nicintel_eeprom nicintel_spi gfxnvidia ogp_spi drkaiser satasii satamv atahpt atavia atapromise it8212 (programmers) PCI . : flashrom -p xxxx:pci=bb:dd.f xxxx bb PCI dd PCI b PCI . : flashrom -p nic3com:pci=05:04.0 . atavia (atavia programmer) VT6421A PATA/SATA PCI PCI . (datasheet) . flashrom . . VIA VT6421A : flashrom -p atavia:offset=addr addr ( 0x 0 (octal) ). : +-------------------+-----------+--------------+--------------+--------------+-----------------+--------------------+------------------+-------+ | | | | | | | | | lspci | | | | (rev.) | | | | [] | | | | | | | | (lot) | | | | | +-------------------+-----------+--------------+--------------+--------------+-----------------+--------------------+------------------+-------+ | | | | | | W39V040BPZ | 512k | | | +-------------------+-----------+--------------+--------------+--------------+-----------------+--------------------+------------------+-------+ |Eminent | EM2001 | 0910CD | Taiwan | 2IA0022481 | SST49LF020A | 256k | 0xfff00000 | [2] | +-------------------+-----------+--------------+--------------+--------------+-----------------+--------------------+------------------+-------+ |"SATA CONNECT" | "High | 0901CD | Taiwan | 2IA0022471 | Pm49FL004 | 512k | 0xfff80000 = | [3] | | | speed | | | | | | 0xffffffff - | | | | 2/4-port | | | | | | size + 1 | | | | Serial | | | | | | ( | | | | ATA card" | | | | | | | | | | | | | | | | phys_addr) | | +-------------------+-----------+--------------+--------------+--------------+-----------------+--------------------+------------------+-------+ |Gembird | SATA-3 | | | | W39V040C | 512k | | | +-------------------+-----------+--------------+--------------+--------------+-----------------+--------------------+------------------+-------+ | | HZ-006 | | | | Pm39LV512 | 64k | | [4] | +-------------------+-----------+--------------+--------------+--------------+-----------------+--------------------+------------------+-------+ o [2] o [3] o [4] (revision) "VT6421A" . . atapromise (atapromise programmer) . ( Promise Ultra100) . ( ). nic3com (nic3com programmer) flashrom 3Com () . . . nicintel_spi (nicintel_spi programmer) ROM SPI . /PCI - . nicintel_eeprom (nicintel_eeprom programmer) flashrom NOR EEPROM 82580 NIC . EEPROM . Flashrom EEPROM/ ( ) . EEPROM : Atmel AT25128 AT25256 Micron (ST) M95128 M95256 OnSemi (Catalyst) CAT25CS128. gfxnvidia (gfxnvidia programmer) Flashrom Nvidia () . satasii (satasii programmer) Flashrom SiI ATA/SATA . . ft2232_spi (ft2232_spi programmer) FTDI FT2232/FT4232H/FT232H DLP Design DLP-USB1232H openbiosprog-spi Amontec JTAGkey/JTAGkey-tiny/JTAGkey-2 Dangerous Prototypes Bus Blaster Olimex ARM-USB-TINY/-H Olimex ARM-USB-OCD/-H OpenMoko Neo1973 ( V2+) TIAO/DIYGADGET USB Multi-Protocol Adapter (TUMPA) TUMPA Lite GOEPEL PicoTAP Google Servo v1/v2 Tin Can Tools Flyswatter/Flyswatter 2 Kristech KT-LINK. // . : flashrom \-p ft2232_spi:type=model,port=interface model 2232H 4232H 232H jtagkey busblaster openmoko arm-usb-tiny arm-usb-tiny-h arm-usb-ocd arm-usb-ocd-h tumpa tumpalite picotap google-servo ``google-servo-v2 google-servo-v2-legacy kt-link . interface A B C D . 4232H A GPIO . ft2232_spi : flashrom -p ft2232_spi:serial=number number ( lsusb -v ). ft2232_spi SPI (divisor) . 2^17 (=131072) SPI ( H) ( 'H') . divisor : flashrom -p ft2232_spi:divisor=div csgpiol ( - gpiol ) CS# 0 3 GPIOL0 GPIOL3 . : flashrom -p ft2232_spi:csgpiol=3 gpiolX=[HLC] GPIOL gpio CS# X 0 3 GPIOL0 GPIOL3 . ( GPIOL). H L C: o H - GPIOL (high) o L - GPIOL (low) o C - GPIOL CS# : flashrom -p ft2232_spi:gpiol0=H GPIOL . serprog (serprog programmer) serprog . Urja Rannikko Juhana Helovuo Stefan Tauner Chi Zhang . ( ) IP/ . / dev= (:) . : flashrom -p serprog:dev=/dev/ttyS0:115200 / . IP : flashrom -p serprog:ip=ipaddr:port SPI spispeed . M k . : flashrom -p serprog:dev=/dev/device:baud,spispeed=2M cs chip select . ( ) : flashrom -p serprog:dev=/dev/device:baud,cs=0 . chip select flashrom . serprog : Serial Flasher Protocol Specification <>. buspirate_spi (buspirate_spi programmer) dev Bus Pirate spispeed SPI . (,) . : flashrom -p buspirate_spi:dev=/dev/device,spispeed=frequency frequency 30k 125k 250k 1M 2M 2.6M 4M 8M ( ) . . Bus Pirate serialspeed . : flashrom -p buspirate_spi:serialspeed=baud baud 115200 230400 250000 2000000 (2M) . Bus Pirate . 2M . pullups pull-up Bus Pirate . ROM . : flashrom -p buspirate_spi:pullups=state state on off . pull-up Bus Pirate dangerousprototypes : . pull-up Bus Pirate . pull-up . hiz . Bus Pirate (open drain) . : flashrom -p buspirate_spi:hiz=state state on off . Bus Pirate psus . : flashrom -p buspirate_spi:psus=state state on off . Bus Pirate ROM . Vpu Bus Pirate Vcc pullup ( pullups). aux (auxiliary pin) Bus Pirate . . : flashrom -p buspirate_spi:aux=state state high low . state high . pickit2_spi (pickit2_spi programmer) voltage PICkit2 . . mV millivolt V Volt . : flashrom \-p pickit2_spi:voltage=value value 0V 1.8V 2.5V 3.5V . spispeed SPI . : flashrom -p pickit2_spi:spispeed=frequency frequency 250k 333k 500k 1M ( ) . . dediprog (dediprog programmer) voltage Dediprog . . mV milliVolt V Volt . : flashrom -p dediprog:voltage=value value 0V 1.8V 2.5V 3.5V . device Dediprog . usb_get_busses() libusb 0 . : flashrom -p dediprog:device=1 spispeed SPI . 5.0.0 . : flashrom -p dediprog:spispeed=frequency frequency 375k 750k 1.5M 2.18M 3M 8M 12M 24M ( ) . . target . : flashrom -p dediprog:target=value value 1 2 3 1 2 (3) . 1 . rayer_spi (rayer_spi programmer) I/O 0x378 iobase I/O : flashrom -p rayer_spi:iobase=baseaddr baseaddr I/O . "0x" . RayeR . type : flashrom -p rayer_spi:type=model model rayer RayeR byteblastermv Altera ByteBlasterMV stk200 Atmel STK200/300 wiggler Macraigor Wiggler xilinx Xilinx Parallel Cable III (DLC 5) spi_tt SPI Tiny Tools . RayeR RayeR . Altera ByteBlasterMV Altera . Macraigor Wiggler . Xilinx DLC 5 Xilinx . raiden_debug_spi (raiden_debug_spi programmer) GSC AP EC target : flashrom -p raiden_debug_spi:target={ap,ec} Servo Micro HyperDebug (MUX) (Servo Micro SPI HyperDebug ): flashrom -p raiden_debug_spi:target=N N ( 0) . servo . serial USB : flashrom -p raiden_debug_spi:serial=XXX servo lsusb . Raiden ap (poll) AP EC . custom_rst=true : flashrom -p raiden_debug_spi:custom_rst= : custom_rst=false custom_rst=true RAIDEN_DEBUG_SPI_REQ_ENABLE_AP RAIDEN_DEBUG_SPI_REQ_ENABLE_AP_CUSTOM . EC_RST_L EC AP . GPIO . . servo ChromiumOS servo . pony_spi (pony_spi programmer) ( /dev/ttyS0 /dev/ttyUSB0 COM3 ) dev . SI-Prog ( SPI PonyProg 2000) "serbang" . type si_prog () serbang . SI-Prog . flashrom : flashrom -p pony_spi:dev=/dev/ttyS0,type=serbang USB . ogp_spi (ogp_spi programmer) (flash ROM) rom : flashrom -p ogp_spi:rom=name name cprom s3 bprom bios . ogp_spi PCI pci= nic3com . linux_mtd (linux_mtd programmer) MTD : flashrom -p linux_mtd:dev=N N (/dev/mtdN) MTD . MTD ( /dev/mtd0) . ( Intel PCH) . ignore_read_errors=yes ( 0xff) (dump) : flashrom -p linux_mtd:dev=N,ignore_read_errors=yes -r dump.bin . . linux_mtd . linux_spi (linux_spi programmer) SPI : flashrom -p linux_spi:dev=/dev/spidevX.Y /dev/spidevX.Y SPI . SPI spispeed . . : flashrom -p linux_spi:dev=/dev/spidevX.Y,spispeed=8000 linux_spi . mstarddc_spi (mstarddc_spi programmer) (DDC) I2C VGA DVI . EDID ( 0x50 I2C) DDC/CI ( 0x37) . SoC MSTAR SoC ( SPI SoC ) (ISP) 0x49 . flashrom I2C . : (standby) VGA VGA flashrom . ! DDC/I2C I2C : flashrom -p mstarddc_spi:dev=/dev/i2c-X:YY /dev/i2c-X I2C DDC YY () ISP MSTAR ( 0x49 ). I2C /dev/i2c-1 0x49 : flashrom -p mstarddc_spi:dev=/dev/i2c-1:49 noreset flashrom . flashrom . : flashrom -p mstarddc_spi:dev=/dev/i2c-1:49,noreset=1 . / flashrom ( ) noreset . mstarddc_spi . ch341a_spi (ch341a_spi programmer) WCH CH341A . SPI CS0 . ch347_spi (ch347_spi programmer) spispeed SPI . CH347T CH347F . SPI 15MHz . : flashrom -p ch347_spi:spispeed=value value 60M 30M 15M 7.5M 3.75M 1.875M 937.5K 468.75K . ni845x_spi (ni845x_spi programmer) voltage / (IO) . NI USB-8452 . (Volt) . mV milliVolt V Volt . : flashrom -p ni845x_spi:voltage=value value 1.2V 1.5V 1.8V 2.5V 3.3V . IO flashrom ( ). yes ignore_io_voltage_limits ( ). : flashrom -p ni845x_spi:ignore_io_voltage_limits=yes serial NI USB-845x . . 1230A12: flashrom -p ni845x_spi:serial=1230A12 spispeed SPI . : flashrom -p ni845x_spi:spispeed=frequency frequency (kHz) . frequency USB-8451 (12000 kHz) USB-8452 (50000 kHz) . (1000 kHz) . cs (Chip Select) . : flashrom -p ni845x_spi:csnumber=value value 0 7 . CS0 . digilent_spi (digilent_spi programmer) spispeed SPI . : flashrom -p digilent_spi:spispeed=frequency frequency 62.5k 125k 250k 500k 1M 2M 4M ( ) . . dirtyjtag_spi (dirtyjtag_spi programmer) freq SPI . : flashrom -p dirtyjtag_spi:spispeed=frequency spispeed . (100 KHz) . jlink_spi (jlink_spi programmer) SEGGER J-Link . MOSI TDI MISO TDO SCK TCK . (CS) : flashrom -p jlink_spi:cs=pin pin TRST RESET TMS . RESET . RESET LED . Tref . . (Pinout) JTAG: +-------+ | 1 2 | 1: VTref 2: | 3 4 | 3: TRST 4: GND | 5 6 | 5: TDI 6: GND +-+ 7 8 | 7: TMS 8: GND | 9 10 | 9: TCK 10: GND | 11 12 | 11: 12: GND +-+ 13 14 | 13: TDO 14: | 15 16 | 15: RESET 16: | 17 18 | 17: 18: | 19 20 | 19: PWR_5V 20: +-------+ : flashrom -p jlink_spi:serial=number number ( lsusb -v ). SPI : flashrom -p jlink_spi:spispeed=frequency frequency SPI (kHz) . . power=on (PWR_5V) J-Link . stlinkv3_spi (stlinkv3_spi programmer) SPI SPI / STMicroelectronics STLINK V3 : flashrom -p stlinkv3_spi : flashrom -p stlinkv3_spi:serial=number number ( lsusb -v ). SPI : flashrom -p stlinkv3_spi:spispeed=frequency frequency SPI . . realtek_mst_i2c_spi parade_lspcon mediatek_i2c_spi (realtek_mst_i2c_spi, parade_lspcon and mediatek_i2c_spi programmers) SPI I2C . I2C devpath : flashrom -p realtek_mst_i2c_spi:devpath=/dev/i2c-8 bus /dev/i2c-N N : flashrom -p parade_lspcon:bus=8 realtek_mst_i2c_spi (realtek_mst_i2c_spi programmer) SPI Realtek DisplayPort MST I2C ( SPI I2C MST ). (In-system programming (ISP) mode) reset_mcu enter_isp 0 1 . enter_isp 1 MST ISP . reset_mcu 0 MST ISP . allow_brick no MST yes . SPI ISP enter_isp . ( ): flashrom -p realtek_mst_i2c_spi:bus=0,enter_isp=1,reset_mcu=0 -E flashrom -p realtek_mst_i2c_spi:bus=0,enter_isp=0,reset_mcu=1 -w new.bin parade_lspcon (parade_lspcon programmer) SPI / DisplayPort HDMI Parade Technologies ( LSPCON) PS175 . SPI LSPCON I2C . mediatek_i2c_spi (mediatek_i2c_spi programmer) SPI (Mediatek) I2C ( SPI I2C ). TSUMOP82JUQ Google Meet Series One Desk 27 ( ChromeOS flashrom tsum-scaler-updater ). / (IO) flashrom . devpath bus I2C . allow_brick no yes . I2C . spidriver (spidriver programmer) SPI () USB FT230X . : dev Excamera Labs SPIDriver mode SPI . (,) . : flashrom -p spidriver:dev=/dev/device,mode=0 mode 0 1 2 3 . mode 0 . SPI . A / B A B SPIDriver . A B (high) (low) . : flashrom -p spidriver:a=state,b=state state high low . state high . nv_sma_spi (nv_sma_spi programmer) (SMA - System Management Agent) SoC (side band management) Nvidia . . cs (chip select) . : flashrom -p nv_sma_spi:cs=0 bus devnum SMA Nvidia . : flashrom -p nv_sma_spi:bus=0,devnum=1 spispeed . Nvidia . spispeed . 15MHz: flashrom -p nv_sma_spi:spispeed=15000000 (EXAMPLES) BIOS : flashrom -p internal -r backup.rom -o backuplog.txt flashrom -p internal -w newbios.rom -o writelog.txt backup.rom . . flashrom : flashrom -p internal -w backup.rom -o restorelog.txt backuplog.txt writelog.txt restorelog.txt . (BUGS) . (EXIT STATUS) flashrom 0 1 mmap() 3 . (REQUIREMENTS) flashrom . o internal o o PCI o I/O ( x86) o MSR ( x86) o atavia o PCI o nic3com, nicrealtek, nicnatsemi o PCI o I/O o atahpt o PCI o I/O o gfxnvidia, drkaiser, it8212 o PCI o o rayer_spi o I/O o raiden_debug_spi o USB libusb API 1.0 o satasii, nicintel, nicintel_eeprom, nicintel_spi o PCI o o satamv, atapromise o PCI o I/O o o serprog o TCP o buspirate_spi, spidriver o o ft2232_spi, usbblaster_spi, pickit2_spi o USB libusb API 1.0 o ch341a_spi, dediprog, nv_sma_spi o USB libusb API 1.0 o dummy o o internal, nic3com, nicrealtek, nicnatsemi, gfxnvidia, drkaiser, satasii, satamv, atahpt, atavia, atapromise, asm106x o (superuser/root) o (raw access) o serprog, buspirate_spi, dediprog, usbblaster_spi, ft2232_spi, pickit2_spi, ch341a_spi, digilent_spi, dirtyjtag_spi, spidriver o o ogp o PCI o realtek_mst_i2c_spi, parade_lspcon o I2C OpenBSD : securelevel=-1 /etc/rc.securelevel . (BUGS) : : pastebin (logs) . (LAPTOPS) flashrom . flashrom . flashrom Laptops internal programmer PROGRAMMER-SPECIFIC INFORMATION Info on laptops and EC <> . (OTP) OTP (security registers) . . flashrom . OTP . OTP . . (LICENSE) flashrom (GPL) 2 . GPL . (COPYRIGHT) . (AUTHORS) Flashrom . git . . Uwe Hermann Carl-Daniel Hailfinger Stefan Tauner . GNU GPL ( 2 ) . August 27, 2026 FLASHROM(8)