1FLASHROM(8)                 System Manager's Manual                FLASHROM(8)
2
3
4

NAME

6       flashrom - detect, read, write, verify and erase flash chips
7

SYNOPSIS

9       flashrom [-h|-R|-L|-z|
10                 -p <programmername>[:<parameters>] [-c <chipname>]
11                   (--flash-name|--flash-size|
12                    [-E|-r <file>|-w <file>|-v <file>]
13                    [(-l    <file>|--ifd|   --fmap|--fmap-file   <file>)   [-i
14       <image>]]
15                    [-n] [-N] [-f])]
16                [-V[V[V]]] [-o <logfile>]
17

DESCRIPTION

19       flashrom is a utility for detecting, reading,  writing,  verifying  and
20       erasing   flash   chips.   It's  often  used  to  flash  BIOS/EFI/core‐
21       boot/firmware images in-system using a supported mainboard. However, it
22       also  supports various external PCI/USB/parallel-port/serial-port based
23       devices which can program flash chips,  including  some  network  cards
24       (NICs),  SATA/IDE  controller  cards,  graphics  cards,  the Bus Pirate
25       device, various FTDI FT2232/FT4232H/FT232H based USB devices, and more.
26
27       It supports a wide range of DIP32,  PLCC32,  DIP8,  SO8/SOIC8,  TSOP32,
28       TSOP40, TSOP48, and BGA chips, which use various protocols such as LPC,
29       FWH, parallel flash, or SPI.
30

OPTIONS

32       IMPORTANT: Please note that the command  line  interface  for  flashrom
33       will  change  before  flashrom  1.0.  Do not use flashrom in scripts or
34       other automated tools without checking that your flashrom version won't
35       interpret options in a different way.
36
37       You  can specify one of -h, -R, -L, -z, -E, -r, -w, -v or no operation.
38       If no operation is specified, flashrom will only probe for flash chips.
39       It  is recommended that if you try flashrom the first time on a system,
40       you run it in probe-only mode  and  check  the  output.  Also  you  are
41       advised  to  make  a backup of your current ROM contents with -r before
42       you try to write a new image. All operations involving any chip  access
43       (probe/read/write/...)  require  the  -p/--programmer option to be used
44       (please see below).
45
46       -r, --read <file>
47              Read flash ROM contents and save them into the given <file>.  If
48              the file already exists, it will be overwritten.
49
50       -w, --write <file>
51              Write <file> into flash ROM. This will first automatically erase
52              the chip, then write to it.
53
54              In the process the chip is also read several times. First an in-
55              memory  backup  is  made for disaster recovery and to be able to
56              skip regions that are already equal to the image file. This copy
57              is  updated  along  with  the  write operation. In case of erase
58              errors it is even re-read completely. After writing has finished
59              and if verification is enabled, the whole flash chip is read out
60              and compared with the input image.
61
62       -n, --noverify
63              Skip the automatic verification  of  flash  ROM  contents  after
64              writing.  Using  this option is not recommended, you should only
65              use it if you know what you are doing and if you feel  that  the
66              time for verification takes too long.
67
68              Typical usage is: flashrom -p prog -n -w <file>
69
70              This option is only useful in combination with --write.
71
72       -N, --noverify-all
73              Skip  not  included  regions during automatic verification after
74              writing (cf.  -l and -i).  You should only use  this  option  if
75              you  are sure that communication with the flash chip is reliable
76              (e.g. when using the internal programmer). Even if  flashrom  is
77              instructed  not to touch parts of the flash chip, their contents
78              could be damaged (e.g. due to misunderstood erase commands).
79
80              This option is required to flash an Intel system with locked  ME
81              flash region using the internal programmer. It may be enabled by
82              default in this case in the future.
83
84       -v, --verify <file>
85              Verify the flash ROM contents against the given <file>.
86
87       -E, --erase
88              Erase the flash ROM chip.
89
90       -V, --verbose
91              More verbose output. This option can be supplied multiple  times
92              (max. 3 times, i.e.  -VVV) for even more debug output.
93
94       -c, --chip <chipname>
95              Probe  only  for the specified flash ROM chip. This option takes
96              the chip name as printed by flashrom -L without the vendor  name
97              as parameter. Please note that the chip name is case sensitive.
98
99       -f, --force
100              Force one or more of the following actions:
101
102              * Force chip read and pretend the chip is there.
103
104              *  Force chip access even if the chip is bigger than the maximum
105              supported size for the flash bus.
106
107              * Force erase even if erase is known bad.
108
109              * Force write even if write is known bad.
110
111       -l, --layout <file>
112              Read ROM layout from <file>.
113
114              flashrom supports ROM layouts. This allows you to flash  certain
115              parts  of the flash chip only. A ROM layout file contains multi‐
116              ple lines with the following syntax:
117
118                startaddr:endaddr imagename
119
120              startaddr and endaddr are hexadecimal addresses within  the  ROM
121              file  and do not refer to any physical address. Please note that
122              using a 0x prefix for those hexadecimal numbers  is  not  neces‐
123              sary, but you can't specify decimal/octal numbers.  imagename is
124              an arbitrary name  for  the  region/image  from    startaddr  to
125              endaddr (both addresses included).
126
127              Example:
128
129                00000000:00008fff gfxrom
130                00009000:0003ffff normal
131                00040000:0007ffff fallback
132
133              If you only want to update the image named normal in a ROM based
134              on the layout above, run
135
136                 flashrom  -p  prog  --layout  rom.layout  --image  normal  -w
137              some.rom
138
139              To update only the images named normal and fallback, run:
140
141                 flashrom  -p  prog  -l  rom.layout  -i  normal -i fallback -w
142              some.rom
143
144              Overlapping sections are not supported.
145
146       --fmap Read layout from fmap in flash chip.
147
148              flashrom supports the fmap binary format which is commonly  used
149              by coreboot for partitioning a flash chip. The on-chip fmap will
150              be read and used to generate the layout.
151
152              If you only want to update the COREBOOT region  defined  in  the
153              fmap, run
154
155               flashrom -p prog --fmap --image COREBOOT -w some.rom
156
157       --fmap-file <file>
158              Read  layout from a <file> containing binary fmap (e.g. coreboot
159              roms).
160
161              flashrom supports the fmap binary format which is commonly  used
162              by coreboot for partitioning a flash chip. The fmap in the spec‐
163              ified file will be read and used to generate the layout.
164
165              If you only want to update the COREBOOT region  defined  in  the
166              binary fmap file, run
167
168                 flashrom  -p  prog  --fmap-file  some.rom --image COREBOOT -w
169              some.rom
170
171       --ifd  Read ROM layout from Intel Firmware Descriptor.
172
173              flashrom  supports  ROM  layouts  given  by  an  Intel  Firmware
174              Descriptor  (IFD).  The on-chip descriptor will be read and used
175              to generate the layout. If you need to change  the  layout,  you
176              have to update the IFD only first.
177
178              The following ROM images may be present in an IFD:
179
180                fd    the IFD itself
181                bios  the host firmware aka. BIOS
182                me    Intel Management Engine firmware
183                gbe   gigabit ethernet firmware
184                pd    platform specific data
185
186       -i, --image <imagename>
187              Only flash region/image <imagename> from flash layout.
188
189       --flash-name
190              Prints out the detected flash chips name.
191
192       --flash-size
193              Prints out the detected flash chips size.
194
195       -L, --list-supported
196              List  the  flash  chips, chipsets, mainboards, and external pro‐
197              grammers (including PCI, USB, parallel  port,  and  serial  port
198              based devices) supported by flashrom.
199
200              There  are  many unlisted boards which will work out of the box,
201              without special support in flashrom. Please let us know  if  you
202              can verify that other boards work or do not work out of the box.
203
204              IMPORTANT:  For  verification  you  have to test an ERASE and/or
205              WRITE operation, so make sure you  only  do  that  if  you  have
206              proper means to recover from failure!
207
208       -z, --list-supported-wiki
209              Same  as --list-supported, but outputs the supported hardware in
210              MediaWiki syntax, so that it can be easily pasted into the  sup‐
211              ported  hardware wiki page ⟨https://flashrom.org/Supported_hard
212              ware⟩.  Please note that MediaWiki output is not compiled in  by
213              default.
214
215       -p, --programmer <name>[:parameter[,parameter[,parameter]]]
216              Specify  the programmer device. This is mandatory for all opera‐
217              tions involving any  chip  access  (probe/read/write/...).  Cur‐
218              rently supported are:
219
220              * internal (for in-system flashing in the mainboard)
221
222              * dummy (virtual programmer for testing flashrom)
223
224              * nic3com (for flash ROMs on 3COM network cards)
225
226              *  nicrealtek  (for  flash  ROMs on Realtek and SMC 1211 network
227              cards)
228
229              * nicnatsemi (for flash ROMs on  National  Semiconductor  DP838*
230              network cards)
231
232              *  nicintel (for parallel flash ROMs on Intel 10/100Mbit network
233              cards)
234
235              * gfxnvidia (for flash ROMs on NVIDIA graphics cards)
236
237              * drkaiser (for flash ROMs on Dr. Kaiser PC-Waechter PCI cards)
238
239              * satasii (for flash ROMs on Silicon Image SATA/IDE controllers)
240
241              * satamv (for flash ROMs on Marvell SATA controllers)
242
243              * atahpt (for flash ROMs on Highpoint ATA/RAID controllers)
244
245              * atavia (for flash ROMs on VIA VT6421A SATA controllers)
246
247              * atapromise (for flash ROMs on Promise PDC2026x  ATA/RAID  con‐
248              trollers)
249
250              * it8212 (for flash ROMs on ITE IT8212F ATA/RAID controller)
251
252              *    ft2232_spi   (for   SPI   flash   ROMs   attached   to   an
253              FT2232/FT4232H/FT232H family based USB SPI programmer).
254
255              * serprog (for flash ROMs attached to a programmer speaking ser‐
256              prog, including some Arduino-based devices).
257
258              * buspirate_spi (for SPI flash ROMs attached to a Bus Pirate)
259
260              * dediprog (for SPI flash ROMs attached to a Dediprog SF100)
261
262              *  rayer_spi  (for SPI flash ROMs attached to a parallel port by
263              one of various cable types)
264
265              * pony_spi (for SPI flash ROMs attached to a SI-Prog serial port
266              bitbanging adapter)
267
268              *  nicintel_spi  (for  SPI  flash  ROMs on Intel Gigabit network
269              cards)
270
271              * ogp_spi (for SPI flash ROMs on Open Graphics Project  graphics
272              card)
273
274              *  linux_mtd  (for  SPI  flash  ROMs accessible via /dev/mtdX on
275              Linux)
276
277              * linux_spi (for SPI flash ROMs accessible via /dev/spidevX.Y on
278              Linux)
279
280              *  usbblaster_spi (for SPI flash ROMs attached to an Altera USB-
281              Blaster compatible cable)
282
283              * nicintel_eeprom (for SPI  EEPROMs  on  Intel  Gigabit  network
284              cards)
285
286              *  mstarddc_spi  (for  SPI  flash ROMs accessible through DDC in
287              MSTAR-equipped displays)
288
289              * pickit2_spi (for  SPI  flash  ROMs  accessible  via  Microchip
290              PICkit2)
291
292              * ch341a_spi (for SPI flash ROMs attached to WCH CH341A)
293
294              * digilent_spi (for SPI flash ROMs attached to iCEblink40 devel‐
295              opment boards)
296
297              * jlink_spi (for SPI flash ROMs attached to  SEGGER  J-Link  and
298              compatible devices)
299
300              *  ni845x_spi  (for  SPI flash ROMs attached to National Instru‐
301              ments USB-8451 or USB-8452)
302
303              * stlinkv3_spi (for SPI flash ROMs attached to  STMicroelectron‐
304              ics STLINK V3 devices)
305
306              Some programmers have optional or mandatory parameters which are
307              described in detail in the PROGRAMMER-SPECIFIC INFORMATION  sec‐
308              tion.  Support  for  some programmers can be disabled at compile
309              time.  flashrom -h lists all supported programmers.
310
311       -h, --help
312              Show a help text and exit.
313
314       -o, --output <logfile>
315              Save the full debug log  to  <logfile>.   If  the  file  already
316              exists,  it  will be overwritten. This is the recommended way to
317              gather logs from flashrom because they will be verbose  even  if
318              the  on-screen messages are not verbose and don't require output
319              redirection.
320
321       -R, --version
322              Show version information and exit.
323

PROGRAMMER-SPECIFIC INFORMATION

325       Some programmer drivers accept further parameters  to  set  programmer-
326       specific parameters. These parameters are separated from the programmer
327       name by a colon. While some programmers take arguments at  fixed  posi‐
328       tions, other programmers use a key/value interface in which the key and
329       value is separated by an equal sign and different pairs  are  separated
330       by a comma or a colon.
331
332   internal programmer
333       Board Enables
334
335              Some mainboards require to run mainboard specific code to enable
336              flash erase and write support (and probe support on old  systems
337              with  parallel  flash).   The  mainboard  brand and model (if it
338              requires specific code) is usually autodetected using one of the
339              following  mechanisms:  If  your system is running coreboot, the
340              mainboard type is determined from the  coreboot  table.   Other‐
341              wise,  the  mainboard  is  detected by examining the onboard PCI
342              devices and possibly DMI info. If PCI and  DMI  do  not  contain
343              information  to  uniquely  identify  the mainboard (which is the
344              exception), or if you want to override  the  detected  mainboard
345              model, you can specify the mainboard using the
346
347                flashrom -p internal:mainboard=<vendor>:<board> syntax.
348
349              See  the 'Known boards' or 'Known laptops' section in the output
350              of 'flashrom -L' for a list of boards which require the specifi‐
351              cation of the board name, if no coreboot table is found.
352
353              Some  of  these  board-specific flash enabling functions (called
354              board enables) in flashrom have not yet  been  tested.  If  your
355              mainboard is detected needing an untested board enable function,
356              a warning message is printed and the board enable  is  not  exe‐
357              cuted,  because  a  wrong  board enable function might cause the
358              system to behave erratically, as board  enable  functions  touch
359              the  low-level  internals  of a mainboard. Not executing a board
360              enable function (if one is  needed)  might  cause  detection  or
361              erasing  failure.  If your board protects only part of the flash
362              (commonly the  top  end,  called  boot  block),  flashrom  might
363              encounter  an  error only after erasing the unprotected part, so
364              running without the board-enable function might be dangerous for
365              erase and write (which includes erase).
366
367              The suggested procedure for a mainboard with untested board spe‐
368              cific code is to  first  try  to  probe  the  ROM  (just  invoke
369              flashrom and check that it detects your flash chip type) without
370              running the board enable code (i.e.  without any parameters). If
371              it  finds  your  chip,  fine. Otherwise, retry probing your chip
372              with the board-enable code running, using
373
374                flashrom -p internal:boardenable=force
375
376              If your chip is still not detected, the board enable code  seems
377              to  be  broken  or the flash chip unsupported. Otherwise, make a
378              backup of your current ROM contents (using -r) and store it to a
379              medium  outside  of your computer, like a USB drive or a network
380              share. If you needed to run the board enable  code  already  for
381              probing,  use  it  for reading too.  If reading succeeds and the
382              contens of the read file look legit you can try to write the new
383              image.  You should enable the board enable code in any case now,
384              as it has been written because it is known that  writing/erasing
385              without  the board enable is going to fail. In any case (success
386              or failure), please report to the  flashrom  mailing  list,  see
387              below.
388
389
390       Coreboot
391
392              On systems running coreboot, flashrom checks whether the desired
393              image matches your mainboard. This needs some special  board  ID
394              to  be present in the image.  If flashrom detects that the image
395              you want to write and the current board do not  match,  it  will
396              refuse to write the image unless you specify
397
398                flashrom -p internal:boardmismatch=force
399
400       ITE IT87 Super I/O
401
402              If your mainboard is manufactured by GIGABYTE and supports Dual‐
403              BIOS it is very likely that it uses an ITE IT87 series Super I/O
404              to  switch  between the two flash chips. Only one of them can be
405              accessed at a time and you can manually select which one to  use
406              with the
407
408                flashrom -p internal:dualbiosindex=chip
409
410              syntax where chip is the index of the chip to use (0 = main, 1 =
411              backup). You can check which one is currently selected by  leav‐
412              ing out the chip parameter.
413
414              If  your  mainboard  uses  an  ITE  IT87  series  Super  I/O for
415              LPC<->SPI flash bus translation, flashrom should autodetect that
416              configuration.  If you want to set the I/O base port of the IT87
417              series SPI controller manually instead of using the  value  pro‐
418              vided by the BIOS, use the
419
420                flashrom -p internal:it87spiport=portnum
421
422              syntax  where portnum is the I/O port number (must be a multiple
423              of 8). In the unlikely case flashrom doesn't  detect  an  active
424              IT87  LPC<->SPI bridge, please send a bug report so we can diag‐
425              nose the problem.
426
427
428       AMD chipsets
429
430              Beginning with the SB700 chipset there is an  integrated  micro‐
431              controller  (IMC) based on the 8051 embedded in every AMD south‐
432              bridge. Its firmware resides in  the  same  flash  chip  as  the
433              host's  which  makes  writing  to  the flash risky if the IMC is
434              active. Flashrom tries to temporarily disable the IMC  but  even
435              then  changing  the  contents  of  the  flash  can have unwanted
436              effects: when the IMC continues (at the latest after  a  reboot)
437              it  will continue executing code from the flash. If the code was
438              removed or changed in an unfortunate  way  it  is  unpredictable
439              what  the  IMC will do. Therefore, if flashrom detects an active
440              IMC it will disable write support unless the user forces it with
441              the
442
443                flashrom -p internal:amd_imc_force=yes
444
445              syntax.  The  user is responsible for supplying a suitable image
446              or leaving out the IMC region with the help of  a  layout  file.
447              This  limitation  might  be removed in the future when we under‐
448              stand the details better and have received enough feedback  from
449              users.  Please  report the outcome if you had to use this option
450              to write a chip.
451
452              An optional spispeed parameter specifies the  frequency  of  the
453              SPI  bus where applicable (i.e. SB600 or later with an SPI flash
454              chip directly attached to the chipset).  Syntax is
455
456                flashrom -p internal:spispeed=frequency
457
458              where frequency can be '16.5 MHz', '22 MHz', '33 MHz', '66 MHz',
459              '100 MHZ',  or  '800 kHz'.   Support  of  individual frequencies
460              depends on the generation of the chipset:
461
462              * SB6xx, SB7xx, SP5xxx: from 16.5 MHz up to and including 33 MHz
463
464              * SB8xx, SB9xx, Hudson: from 16.5 MHz up to and including 66 MHz
465
466              * Yangtze (with SPI 100 engine as found in Kabini  and  Tamesh):
467              all of them
468
469              The default is to use 16.5 MHz and disable Fast Reads.
470
471       Intel chipsets
472
473              If  you  have an Intel chipset with an ICH8 or later southbridge
474              with SPI flash attached, and if a valid descriptor  was  written
475              to  it (e.g. by the vendor), the chipset provides an alternative
476              way to access the flash chip(s) named Hardware  Sequencing.   It
477              is  much  simpler than the normal access method (called Software
478              Sequencing), but does not allow the software to choose  the  SPI
479              commands to be sent.  You can use the
480
481                flashrom -p internal:ich_spi_mode=value
482
483              syntax  where value can be auto, swseq or hwseq.  By default (or
484              when setting ich_spi_mode=auto) the module tries  to  use  swseq
485              and  only  activates hwseq if need be (e.g. if important opcodes
486              are inaccessible due to lockdown; or if more than one flash chip
487              is  attached).  The  other  options  (swseq,  hwseq)  select the
488              respective mode (if possible).
489
490              ICH8 and later southbridges may also have locked address  ranges
491              of  different kinds if a valid descriptor was written to it. The
492              flash address space is then partitioned in  multiple  so  called
493              "Flash  Regions"  containing  the host firmware, the ME firmware
494              and so on respectively. The flash descriptor can also specify up
495              to  5  so  called  "Protected  Regions", which are freely chosen
496              address  ranges  independent  from  the  aforementioned   "Flash
497              Regions".  All  of them can be write and/or read protected indi‐
498              vidually.
499
500              If you have an Intel chipset with an ICH2 or  later  southbridge
501              and  if  you want to set specific IDSEL values for a non-default
502              flash chip or an embedded controller (EC), you can use the
503
504                flashrom -p internal:fwh_idsel=value
505
506              syntax where value is the 48-bit hexadecimal  raw  value  to  be
507              written  in  the  IDSEL  registers of the Intel southbridge. The
508              upper 32 bits use one hex digit each per 512  kB  range  between
509              0xffc00000  and  0xffffffff,  and  the lower 16 bits use one hex
510              digit each per 1024 kB range between 0xff400000 and  0xff7fffff.
511              The  rightmost  hex  digit  corresponds  with the lowest address
512              range. All address ranges have a corresponding sister range 4 MB
513              below  with identical IDSEL settings. The default value for ICH7
514              is given in the example below.
515
516              Example: flashrom -p internal:fwh_idsel=0x001122334567
517
518       Laptops
519
520              Using flashrom on older laptops that don't boot from the SPI bus
521              is  dangerous  and  may  easily make your hardware unusable (see
522              also the BUGS section). The embedded  controller  (EC)  in  some
523              machines  may interact badly with flashing.  More information is
524              in the wiki ⟨https://flashrom.org/Laptops⟩.  Problems occur when
525              the  flash  chip is shared between BIOS and EC firmware, and the
526              latter does not  expect  flashrom  to  access  the  chip.  While
527              flashrom  tries  to  change  the  contents of that memory the EC
528              might need to fetch new instructions or data from it  and  could
529              stop  working  correctly.  Probing for and reading from the chip
530              may also irritate your EC and cause fan failure, backlight fail‐
531              ure,  sudden  poweroff,  and  other nasty effects. flashrom will
532              attempt to detect if it is running on such a  laptop  and  limit
533              probing to SPI buses. If you want to probe the LPC bus anyway at
534              your own risk, use
535
536                flashrom -p internal:laptop=force_I_want_a_brick
537
538              We will not help you if you force flashing on a  laptop  because
539              this is a really dumb idea.
540
541              You have been warned.
542
543              Currently  we rely on the chassis type encoded in the DMI/SMBIOS
544              data to detect laptops. Some vendors  did  not  implement  those
545              bits  correctly  or  set  them  to  generic and/or dummy values.
546              flashrom will then issue  a  warning  and  restrict  buses  like
547              above. In this case you can use
548
549                flashrom -p internal:laptop=this_is_not_a_laptop
550
551              to  tell flashrom (at your own risk) that it is not running on a
552              laptop.
553
554   dummy programmer
555              The dummy programmer operates on a buffer  in  memory  only.  It
556              provides a safe and fast way to test various aspects of flashrom
557              and is mainly used in development and while  debugging.   It  is
558              able  to  emulate  some  chips  to a certain degree (basic iden‐
559              tify/read/erase/write operations work).
560
561              An optional parameter specifies the bus types it should support.
562              For that you have to use the
563
564                flashrom -p dummy:bus=[type[+type[+type]]]
565
566              syntax  where  type can be parallel, lpc, fwh, spi in any order.
567              If you specify bus without type, all buses will be disabled.  If
568              you do not specify bus, all buses will be enabled.
569
570              Example: flashrom -p dummy:bus=lpc+fwh
571
572              The dummy programmer supports flash chip emulation for automated
573              self-tests without hardware access. If you  want  to  emulate  a
574              flash chip, use the
575
576                flashrom -p dummy:emulate=chip
577
578              syntax  where chip is one of the following chips (please specify
579              only the chip name, not the vendor):
580
581              * ST M25P10.RES SPI flash chip (128 kB, RES, page write)
582
583              * SST SST25VF040.REMS SPI flash chip (512 kB, REMS, byte write)
584
585              * SST SST25VF032B SPI flash chip (4096 kB, RDID, AAI write)
586
587              * Macronix MX25L6436 SPI flash chip (8192 kB, RDID, SFDP)
588
589              Example: flashrom -p dummy:emulate=SST25VF040.REMS
590
591       Persistent images
592
593              If you use flash chip  emulation,  flash  image  persistence  is
594              available as well by using the
595
596                flashrom -p dummy:emulate=chip,image=image.rom
597
598              syntax where image.rom is the file where the simulated chip con‐
599              tents are read on flashrom startup and where the  chip  contents
600              on flashrom shutdown are written to.
601
602              Example: flashrom -p dummy:emulate=M25P10.RES,image=dummy.bin
603
604       SPI write chunk size
605
606              If  you  use  SPI flash chip emulation for a chip which supports
607              SPI page write with the default opcode, you can set the  maximum
608              allowed write chunk size with the
609
610                flashrom -p dummy:emulate=chip,spi_write_256_chunksize=size
611
612              syntax where size is the number of bytes (min. 1, max. 256).
613
614              Example:
615
616                flashrom -p dummy:emulate=M25P10.RES,spi_write_256_chunksize=5
617
618       SPI blacklist
619
620              To  simulate a programmer which refuses to send certain SPI com‐
621              mands to the flash chip, you can specify a blacklist of SPI com‐
622              mands with the
623
624                flashrom -p dummy:spi_blacklist=commandlist
625
626              syntax where commandlist is a list of two-digit hexadecimal rep‐
627              resentations of SPI  commands.  If  commandlist  is  e.g.  0302,
628              flashrom  will  behave  as  if the SPI controller refuses to run
629              command 0x03 (READ) and command 0x02 (WRITE).   commandlist  may
630              be  up  to  512  characters (256 commands) long.  Implementation
631              note: flashrom will detect an error during command execution.
632
633
634       SPI ignorelist
635
636              To simulate a flash chip which ignores (doesn't support) certain
637              SPI commands, you can specify an ignorelist of SPI commands with
638              the
639
640                flashrom -p dummy:spi_ignorelist=commandlist
641
642              syntax where commandlist is a list of two-digit hexadecimal rep‐
643              resentations  of  SPI commands. If commandlist is e.g. 0302, the
644              emulated flash chip will ignore command 0x03 (READ) and  command
645              0x02 (WRITE).  commandlist may be up to 512 characters (256 com‐
646              mands) long.  Implementation  note:  flashrom  won't  detect  an
647              error during command execution.
648
649
650       SPI status register
651
652              You  can specify the initial content of the chip's status regis‐
653              ter with the
654
655                flashrom -p dummy:spi_status=content
656
657              syntax where content is an 8-bit hexadecimal value.
658
659   nic3com, nicrealtek, nicnatsemi, nicintel,  nicintel_eeprom,  nicintel_spi,
660       gfxnvidia,   ogp_spi,  drkaiser,  satasii,  satamv,  atahpt,  atavia  ,
661       atapromise and it8212 programmers
662              These programmers have an option to specify the PCI  address  of
663              the  card your want to use, which must be specified if more than
664              one card supported by the selected programmer  is  installed  in
665              your system. The syntax is
666
667                flashrom -p xxxx:pci=bb:dd.f,
668
669              where xxxx is the name of the programmer, bb is the PCI bus num‐
670              ber, dd is the PCI device number, and f is the PCI function num‐
671              ber of the desired device.
672
673              Example: flashrom -p nic3com:pci=05:04.0
674
675   atavia programmer
676              Due  to  the mysterious address handling of the VIA VT6421A con‐
677              troller the user can specify an offset with the
678
679                flashrom -p atavia:offset=addr
680
681              syntax where addr will be interpreted as usual (leading  0x  (0)
682              for  hexadecimal  (octal)  values,  or  else decimal).  For more
683              information      please      see       its       wiki       page
684https://flashrom.org/VT6421A⟩.
685
686   atapromise programmer
687              This programmer is currently limited to 32 kB, regardless of the
688              actual size of the flash chip. This stems from the fact that, on
689              the  tested  device  (a Promise Ultra100), not all of the chip's
690              address lines were actually connected. You may use this program‐
691              mer  to  flash  firmware  updates, since these are only 16 kB in
692              size (padding to 32 kB is required).
693
694   nicintel_eeprom programmer
695              This is the first programmer module in flashrom  that  does  not
696              provide access to NOR flash chips but EEPROMs mounted on gigabit
697              Ethernet cards based on Intel's 82580 NIC. Because EEPROMs  nor‐
698              mally  do  not  announce  their  size nor allow themselves to be
699              identified, the controller relies on correct size values written
700              to  predefined  addresses within the chip. Flashrom follows this
701              scheme but assumes the minimum size of 16  kB  (128  kb)  if  an
702              unprogrammed  EEPROM/card is detected. Intel specifies following
703              EEPROMs to be compatible: Atmel AT25128,  AT25256,  Micron  (ST)
704              M95128, M95256 and OnSemi (Catalyst) CAT25CS128.
705
706   ft2232_spi programmer
707              This   module   supports   various  programmers  based  on  FTDI
708              FT2232/FT4232H/FT232H  chips  including  the  DLP  Design   DLP-
709              USB1232H,     openbiosprog-spi,     Amontec     JTAGkey/JTAGkey-
710              tiny/JTAGkey-2, Dangerous Prototypes Bus  Blaster,  Olimex  ARM-
711              USB-TINY/-H, Olimex ARM-USB-OCD/-H, OpenMoko Neo1973 Debug board
712              (V2+), TIAO/DIYGADGET USB Multi-Protocol Adapter (TUMPA),  TUMPA
713              Lite,  GOEPEL PicoTAP, Google Servo v1/v2 and Tin Can Tools Fly‐
714              swatter/Flyswatter 2.
715
716              An optional  parameter  specifies  the  controller  type,  chan‐
717              nel/interface/port and GPIO-based chip select it should support.
718              For that you have to use the
719
720                flashrom -p ft2232_spi:type=model,port=interface,csgpiol=gpio
721
722              syntax where model can be  2232H,  4232H,  232H,  jtagkey,  bus‐
723              blaster,  openmoko,  arm-usb-tiny,  arm-usb-tiny-h, arm-usb-ocd,
724              arm-usb-ocd-h, tumpa, tumpalite, picotap, google-servo,  google-
725              servo-v2  or google-servo-v2-legacy interface can be A, B, C, or
726              D and csgpiol  can  be  a  number  between  0  and  3,  denoting
727              GPIOL0-GPIOL3  correspondingly.   The default model is 4232H the
728              default interface is A and GPIO is not used by default.
729
730              If there is more  than  one  ft2232_spi-compatible  device  con‐
731              nected,  you  can  select which one should be used by specifying
732              its serial number with the
733
734                flashrom -p ft2232_spi:serial=number
735
736              syntax where number is the serial number of  the  device  (which
737              can be found for example in the output of lsusb -v).
738
739              All  models supported by the ft2232_spi driver can configure the
740              SPI clock rate by setting a divisor.  The  expressible  divisors
741              are  all  even numbers between 2 and 2^17 (=131072) resulting in
742              SPI clock frequencies of 6 MHz down to about 92 Hz  for  12  MHz
743              inputs. The default divisor is set to 2, but you can use another
744              one by specifying the optional divisor parameter with the
745
746                flashrom -p ft2232_spi:divisor=div
747
748              syntax.
749
750   serprog programmer
751              This module supports all programmers speaking the serprog proto‐
752              col. This includes some Arduino-based devices as well as various
753              programmers by Urja Rannikko, Juhana Helovuo, Stefan Tauner, Chi
754              Zhang and many others.
755
756              A mandatory parameter specifies either a serial device (and baud
757              rate) or an IP/port combination for communicating with the  pro‐
758              grammer.  The device/baud combination has to start with dev= and
759              separate the optional baud rate with a colon.  For example
760
761                flashrom -p serprog:dev=/dev/ttyS0:115200
762
763              If no baud rate is given the default  values  by  the  operating
764              system/hardware  will  be  used.  For IP connections you have to
765              use the
766
767                flashrom -p serprog:ip=ipaddr:port
768
769              syntax.  In case the device supports it, you  can  set  the  SPI
770              clock  frequency  with the optional spispeed parameter. The fre‐
771              quency is parsed as hertz, unless an M, or k  suffix  is  given,
772              then megahertz or kilohertz are used respectively.  Example that
773              sets the frequency to 2 MHz:
774
775                flashrom -p serprog:dev=/dev/device:baud,spispeed=2M
776
777              More information about serprog is  available  in  serprog-proto‐
778              col.txt in the source distribution.
779
780   buspirate_spi programmer
781              A  required  dev  parameter specifies the Bus Pirate device node
782              and an optional spispeed parameter specifies  the  frequency  of
783              the SPI bus. The parameter delimiter is a comma. Syntax is
784
785                flashrom -p buspirate_spi:dev=/dev/device,spispeed=frequency
786
787              where  frequency  can be 30k, 125k, 250k, 1M, 2M, 2.6M, 4M or 8M
788              (in Hz). The default is the maximum frequency of 8 MHz.
789
790              The baud rate for communication between the  host  and  the  Bus
791              Pirate can be specified with the optional serialspeed parameter.
792              Syntax is
793
794                flashrom -p buspirate_spi:serialspeed=baud
795
796              where baud can be 115200, 230400, 250000 or 2000000  (2M).   The
797              default  is  2M  baud  for  Bus  Pirate hardware version 3.0 and
798              greater, and 115200 otherwise.
799
800              An optional pullups parameter  specifies  the  use  of  the  Bus
801              Pirate internal pull-up resistors. This may be needed if you are
802              working with a flash ROM chip that you have  physically  removed
803              from the board. Syntax is
804
805                flashrom -p buspirate_spi:pullups=state
806
807              where  state  can  be on or off.  More information about the Bus
808              Pirate pull-up resistors and their purpose  is  available  in  a
809              guide     by     dangerousprototypes     ⟨http://dangerousproto
810              types.com/docs/Practical_guide_to_Bus_Pirate_pull-up_resistors⟩.
811              Only  the  external supply voltage (Vpu) is supported as of this
812              writing.
813
814   pickit2_spi programmer
815              An optional voltage parameter specifies the voltage the  PICkit2
816              should  use.  The  default unit is Volt if no unit is specified.
817              You can use mV, millivolt, V or Volt as unit  specifier.  Syntax
818              is
819
820                flashrom -p pickit2_spi:voltage=value
821
822              where value can be 0V, 1.8V, 2.5V, 3.5V or the equivalent in mV.
823
824              An  optional  spispeed  parameter specifies the frequency of the
825              SPI bus. Syntax is
826
827                flashrom -p pickit2_spi:spispeed=frequency
828
829              where frequency can be 250k, 333k,  500k  or  1M  (in  Hz).  The
830              default is a frequency of 1 MHz.
831
832   dediprog programmer
833              An optional voltage parameter specifies the voltage the Dediprog
834              should use. The default unit is Volt if no  unit  is  specified.
835              You  can  use mV, milliVolt, V or Volt as unit specifier. Syntax
836              is
837
838                flashrom -p dediprog:voltage=value
839
840              where value can be 0V, 1.8V, 2.5V, 3.5V or the equivalent in mV.
841
842              An optional device parameter specifies which  of  multiple  con‐
843              nected  Dediprog  devices  should be used.  Please be aware that
844              the order depends on libusb's usb_get_busses() function and that
845              the  numbering  starts at 0.  Usage example to select the second
846              device:
847
848                flashrom -p dediprog:device=1
849
850              An optional spispeed parameter specifies the  frequency  of  the
851              SPI  bus. The firmware on the device needs to be 5.0.0 or newer.
852              Syntax is
853
854                flashrom -p dediprog:spispeed=frequency
855
856              where frequency can be 375k, 750k, 1.5M, 2.18M, 3M, 8M,  12M  or
857              24M (in Hz). The default is a frequency of 12 MHz.
858
859              An  optional target parameter specifies which target chip should
860              be used. Syntax is
861
862                flashrom -p dediprog:target=value
863
864              where value can be 1 or 2 to select target chip 1 or  2  respec‐
865              tively. The default is target chip 1.
866
867   rayer_spi programmer
868              The default I/O base address used for the parallel port is 0x378
869              and you can use the optional  iobase  parameter  to  specify  an
870              alternate base I/O address with the
871
872                flashrom -p rayer_spi:iobase=baseaddr
873
874              syntax  where  baseaddr is base I/O port address of the parallel
875              port, which must be a multiple of four. Make sure to not  forget
876              the "0x" prefix for hexadecimal port addresses.
877
878              The  default  cable  type  is  the  RayeR cable. You can use the
879              optional type parameter to specify the cable type with the
880
881                flashrom -p rayer_spi:type=model
882
883              syntax where model can be  rayer  for  the  RayeR  cable,  byte‐
884              blastermv  for  the  Altera  ByteBlasterMV, stk200 for the Atmel
885              STK200/300, wiggler for the Macraigor Wiggler,  xilinx  for  the
886              Xilinx Parallel Cable III (DLC 5), or spi_tt for SPI Tiny Tools-
887              compatible hardware.
888
889              More information  about  the  RayeR  hardware  is  available  at
890              RayeR's  website  ⟨http://rayer.g6.cz/elektro/spipgm.htm⟩.   The
891              Altera ByteBlasterMV  datasheet  can  be  obtained  from  Altera
892http://www.altera.co.jp/literature/ds/dsbytemv.pdf⟩.   For more
893              information  about  the  Macraigor  Wiggler  see  their  company
894              homepage  ⟨http://www.macraigor.com/wiggler.htm⟩.  The schematic
895              of the Xilinx DLC  5  was  published  in  a  Xilinx  user  guide
896http://www.xilinx.com/support/documentation/user_guides/xtp029.pdf⟩.
897
898   pony_spi programmer
899              The serial port (like /dev/ttyS0, /dev/ttyUSB0 on Linux or  COM3
900              on  windows) is specified using the mandatory dev parameter. The
901              adapter type is selectable between SI-Prog (used for SPI devices
902              with   PonyProg   2000)  or  a  custom  made  serial  bitbanging
903              programmer named "serbang". The optional type parameter  accepts
904              the values "si_prog" (default) or "serbang".
905
906              Information  about  the  SI-Prog  adapter  can  be  found at its
907              website ⟨http://www.lancos.com/siprogsch.html⟩.
908
909              An example call to flashrom is
910
911                flashrom -p pony_spi:dev=/dev/ttyS0,type=serbang
912
913              Please note that while USB-to-serial adapters work under certain
914              circumstances, this slows down operation considerably.
915
916   ogp_spi programmer
917              The  flash  ROM  chip  to  access must be specified with the rom
918              parameter.
919
920                flashrom -p ogp_spi:rom=name
921
922              Where name is either cprom or s3 for the configuration  ROM  and
923              bprom  or bios for the BIOS ROM. If more than one card supported
924              by the ogp_spi programmer is installed in your system, you  have
925              to  specify the PCI address of the card you want to use with the
926              pci= parameter as explained in the nic3com et al. section above.
927
928   linux_mtd programmer
929              You may specify the MTD device to use with the
930
931                flashrom -p linux_mtd:dev=/dev/mtdX
932
933              syntax where /dev/mtdX is the Linux device  node  for  your  MTD
934              device.  If  left  unspecified  the first MTD device found (e.g.
935              /dev/mtd0) will be used by default.
936
937              Please note that the linux_mtd driver only works on Linux.
938
939   linux_spi programmer
940              You have to specify the SPI controller to use with the
941
942                flashrom -p linux_spi:dev=/dev/spidevX.Y
943
944              syntax where /dev/spidevX.Y is the Linux device  node  for  your
945              SPI controller.
946
947              In  case  the  device  supports  it,  you  can set the SPI clock
948              frequency with the optional spispeed parameter. The frequency is
949              parsed as kilohertz.  Example that sets the frequency to 8 MHz:
950
951                flashrom -p linux_spi:dev=/dev/spidevX.Y,spispeed=8000
952
953              Please note that the linux_spi driver only works on Linux.
954
955   mstarddc_spi programmer
956              The  Display Data Channel (DDC) is an I2C bus present on VGA and
957              DVI connectors, that allows  exchanging  information  between  a
958              computer and attached displays. Its most common uses are getting
959              display capabilities through EDID  (at  I2C  address  0x50)  and
960              sending  commands  to  the display using the DDC/CI protocol (at
961              address 0x37). On displays driven by  MSTAR  SoCs,  it  is  also
962              possible  to access the SoC firmware flash (connected to the Soc
963              through another SPI bus) using an  In-System  Programming  (ISP)
964              port,  usually at address 0x49.  This flashrom module allows the
965              latter via Linux's I2C driver.
966
967              IMPORTANT: Before using this programmer, the display MUST be  in
968              standby  mode,  and only connected to the computer that will run
969              flashrom using a VGA  cable,  to  an  inactive  VGA  output.  It
970              absolutely MUST NOT be used as a display during the procedure!
971
972              You  have  to  specify the DDC/I2C controller and I2C address to
973              use with the
974
975                flashrom -p mstarddc_spi:dev=/dev/i2c-X:YY
976
977              syntax where /dev/i2c-X is the Linux device node  for  your  I2C
978              controller connected to the display's DDC channel, and YY is the
979              (hexadecimal) address of the MSTAR ISP  port  (address  0x49  is
980              usually  used).  Example that uses I2C controller /dev/i2c-1 and
981              address 0x49:
982
983                flashrom -p mstarddc_spi:dev=/dev/i2c-1:49
984
985              It is also  possible  to  inhibit  the  reset  command  that  is
986              normally  sent  to  the  display  once the flashrom operation is
987              completed using the optional noreset parameter.  A  value  of  1
988              prevents  flashrom from sending the reset command.  Example that
989              does not reset the display at the end of the operation:
990
991                flashrom -p mstarddc_spi:dev=/dev/i2c-1:49,noreset=1
992
993              Please note that sending the reset command is also inhibited  if
994              an  error  occurred  during  the  operation.   To send the reset
995              command afterwards, you can simply run flashrom  once  more,  in
996              chip  probe  mode  (not  specifying  an  operation), without the
997              noreset parameter,  once  the  flash  read/write  operation  you
998              intended to perform has completed successfully.
999
1000              Please  also  note  that  the  mstarddc_spi driver only works on
1001              Linux.
1002
1003   ch341a_spi programmer
1004       The WCH CH341A programmer does not support  any  parameters  currently.
1005       SPI frequency is fixed at 2 MHz, and CS0 is used as per the device.
1006
1007   ni845x_spi programmer
1008              An  optional  voltage  parameter could be used to specify the IO
1009              voltage. This parameter is available for the NI USB-8452 device.
1010              The  default  unit  is Volt if no unit is specified. You can use
1011              mV, milliVolt, V or Volt as unit specifier.  Syntax is
1012
1013                flashrom -p ni845x_spi:voltage=value
1014
1015              where  value  can  be  1.2V,  1.5V,  1.8V,  2.5V,  3.3V  or  the
1016              equivalent in mV.
1017
1018              In  the case if none of the programmer's supported IO voltage is
1019              within the supported voltage range of the  detected  flash  chip
1020              the  flashrom  will abort the operation (to prevent damaging the
1021              flash chip).  You can override this behaviour by  passing  "yes"
1022              to  the  ignore_io_voltage_limits parameter (for e.g. if you are
1023              using an external voltage translator circuit).  Syntax is
1024
1025                flashrom -p ni845x_spi:ignore_io_voltage_limits=yes
1026
1027              You can use the serial parameter  to  explicitly  specify  which
1028              connected  NI  USB-845x  device  should be used.  You should use
1029              your device's 7 digit hexadecimal serial number.  Usage  example
1030              to select the device with 1230A12 serial number:
1031
1032                flashrom -p ni845x_spi:serial=1230A12
1033
1034              An  optional  spispeed  parameter specifies the frequency of the
1035              SPI bus.  Syntax is
1036
1037                flashrom -p ni845x_spi:spispeed=frequency
1038
1039              where frequency should a number  corresponding  to  the  desired
1040              frequency  in  kHz.  The maximum frequency is 12 MHz (12000 kHz)
1041              for the USB-8451 and 50 MHz (50000 kHz) for the  USB-8452.   The
1042              default is a frequency of 1 MHz (1000 kHz).
1043
1044              An optional cs parameter specifies which target chip select line
1045              should be used. Syntax is
1046
1047                flashrom -p ni845x_spi:csnumber=value
1048
1049              where value should be between 0 and 7  By  default  the  CS0  is
1050              used.
1051
1052   digilent_spi programmer
1053              An  optional  spispeed  parameter specifies the frequency of the
1054              SPI bus.  Syntax is
1055
1056                flashrom -p digilent_spi:spispeed=frequency
1057
1058              where frequency can be 62.5k, 125k, 250k, 500k, 1M, 2M or 4M (in
1059              Hz). The default is a frequency of 4 MHz.
1060
1061
1062   jlink_spi programmer
1063              This module supports SEGGER J-Link and compatible devices.
1064
1065              The MOSI signal of the flash chip must be attached to TDI pin of
1066              the programmer, MISO to TDO and SCK to  TCK.   The  chip  select
1067              (CS)  signal of the flash chip can be attached to different pins
1068              of the programmer which can be selected with the
1069
1070                flashrom -p jlink_spi:cs=pin
1071
1072              syntax where pin can be either TRST or RESET.  The  default  pin
1073              for  chip  select  is RESET.  Note that, when using RESET, it is
1074              normal that the indicator LED blinks orange or red.
1075              Additionally, the VTref pin of the programmer must  be  attached
1076              to  the  logic level of the flash chip.  The programmer measures
1077              the voltage on this pin and generates the reference voltage  for
1078              its input comparators and adapts its output voltages to it.
1079
1080              Pinout for devices with 20-pin JTAG connector:
1081
1082                  +-------+
1083                  |  1  2 |     1: VTref     2:
1084                  |  3  4 |     3: TRST      4: GND
1085                  |  5  6 |     5: TDI       6: GND
1086                +-+  7  8 |     7:           8: GND
1087                |    9 10 |     9: TCK      10: GND
1088                |   11 12 |    11:          12: GND
1089                +-+ 13 14 |    13: TDO      14:
1090                  | 15 16 |    15: RESET    16:
1091                  | 17 18 |    17:          18:
1092                  | 19 20 |    19: PWR_5V   20:
1093                  +-------+
1094
1095              If  there  is more than one compatible device connected, you can
1096              select which one should be used by specifying its serial  number
1097              with the
1098
1099                flashrom -p jlink_spi:serial=number
1100
1101              syntax  where  number  is the serial number of the device (which
1102              can be found for example in the output of lsusb -v).
1103
1104              The SPI speed can be selected by using the
1105
1106                flashrom -p jlink_spi:spispeed=frequency
1107
1108              syntax where frequency is the SPI clock frequency in  kHz.   The
1109              maximum speed depends on the device in use.
1110
1111   stlinkv3_spi programmer
1112              This   module   supports   SPI  flash  programming  through  the
1113              STMicroelectronics STLINK V3  programmer/debugger's  SPI  bridge
1114              interface
1115
1116                flashrom -p stlinkv3_spi
1117
1118              If  there  is more than one compatible device connected, you can
1119              select which one should be used by specifying its serial  number
1120              with the
1121
1122                flashrom -p stlinkv3_spi:serial=number
1123
1124              syntax  where  number  is the serial number of the device (which
1125              can be found for example in the output of lsusb -v).
1126
1127              The SPI speed can be selected by using the
1128
1129                flashrom -p stlinkv3_spi:spispeed=frequency
1130
1131              syntax where frequency is the SPI clock frequency  in  kHz.   If
1132              the passed frequency is not supported by the adapter the nearest
1133              lower supported frequency will be used.
1134
1135
1136

EXAMPLES

1138       To back up and update your BIOS, run
1139
1140       flashrom -p internal -r backup.rom -o backuplog.txt
1141       flashrom -p internal -w newbios.rom -o writelog.txt
1142
1143       Please make sure to copy backup.rom to some external media  before  you
1144       try to write. That makes offline recovery easier.
1145       If  writing  fails  and  flashrom  complains about the chip being in an
1146       unknown state, you can try to restore the backup by running
1147
1148       flashrom -p internal -w backup.rom -o restorelog.txt
1149
1150       If  you  encounter  any  problems,  please  contact   us   and   supply
1151       backuplog.txt,  writelog.txt  and  restorelog.txt. See section BUGS for
1152       contact info.
1153

EXIT STATUS

1155       flashrom exits with 0 on success, 1 on most failures but with  3  if  a
1156       call to mmap() fails.
1157

REQUIREMENTS

1159       flashrom needs different access permissions for different programmers.
1160
1161       internal  needs  raw memory access, PCI configuration space access, raw
1162       I/O port access (x86) and MSR access (x86).
1163
1164       atavia needs PCI configuration space access.
1165
1166       nic3com, nicrealtek and nicnatsemi need PCI  configuration  space  read
1167       access and raw I/O port access.
1168
1169       atahpt needs PCI configuration space access and raw I/O port access.
1170
1171       gfxnvidia,  drkaiser and it8212 need PCI configuration space access and
1172       raw memory access.
1173
1174       rayer_spi needs raw I/O port access.
1175
1176       satasii,  nicintel,   nicintel_eeprom   and   nicintel_spi   need   PCI
1177       configuration space read access and raw memory access.
1178
1179       satamv and atapromise need PCI configuration space read access, raw I/O
1180       port access and raw memory access.
1181
1182       serprog needs TCP access to the network or userspace access to a serial
1183       port.
1184
1185       buspirate_spi needs userspace access to a serial port.
1186
1187       ft2232_spi,   usbblaster_spi   and   pickit2_spi  need  access  to  the
1188       respective USB device via libusb API version 0.1.
1189
1190       ch341a_spi and dediprog need access to the respective  USB  device  via
1191       libusb API version 1.0.
1192
1193       dummy needs no access permissions at all.
1194
1195       internal,   nic3com,   nicrealtek,   nicnatsemi,  gfxnvidia,  drkaiser,
1196       satasii, satamv, atahpt, atavia  and  atapromise  have  to  be  run  as
1197       superuser/root, and need additional raw access permission.
1198
1199       serprog,    buspirate_spi,    dediprog,   usbblaster_spi,   ft2232_spi,
1200       pickit2_spi, ch341a_spi and digilent_spi can be run as normal  user  on
1201       most operating systems if appropriate device permissions are set.
1202
1203       ogp needs PCI configuration space read access and raw memory access.
1204
1205       On   OpenBSD,   you   can  obtain  raw  access  permission  by  setting
1206       securelevel=-1 in /etc/rc.securelevel and rebooting, or rebooting  into
1207       single user mode.
1208

BUGS

1210       Please    report    any    bugs    to   the   flashrom   mailing   list
1211flashrom@flashrom.org⟩.
1212
1213       We        recommend        to        subscribe         first         at
1214       https://flashrom.org/mailman/listinfo/flashrom.
1215
1216       Many  of  the  developers  communicate via the #flashrom IRC channel on
1217       chat.freenode.net.  If you don't have an IRC client, you  can  use  the
1218       freenode webchat ⟨http://webchat.freenode.net/?channels=flashrom⟩.  You
1219       are welcome to join and ask questions, send us bug and success  reports
1220       there  too.  Please  provide  a  way  to contact you later (e.g. a mail
1221       address) and be patient if there is no  immediate  reaction.  Also,  we
1222       provide  a  pastebin  service ⟨https://paste.flashrom.org⟩ that is very
1223       useful when you want to share logs etc. without spamming the channel.
1224
1225   Laptops
1226       Using flashrom on older laptops is dangerous and may easily  make  your
1227       hardware  unusable. flashrom will attempt to detect if it is running on
1228       a  susceptible  laptop  and  restrict  flash-chip  probing  for  safety
1229       reasons.   Please  see  the  detailed  discussion  of  this  topic  and
1230       associated flashrom options in the Laptops paragraph  in  the  internal
1231       programmer  subsection  of  the PROGRAMMER-SPECIFIC INFORMATION section
1232       and the information in our wiki ⟨https://flashrom.org/Laptops⟩.
1233
1234   One-time programmable (OTP) memory and unique IDs
1235       Some  flash  chips  contain  OTP  memory  often  denoted  as  "security
1236       registers".  They usually have a capacity in the range of some bytes to
1237       a few hundred bytes and can be used to give  devices  unique  IDs  etc.
1238       flashrom  is not able to read or write these memories and may therefore
1239       not be able to duplicate a chip completely. For  chip  types  known  to
1240       include OTP memories a warning is printed when they are detected.
1241
1242       Similar  to  OTP  memories  are unique, factory programmed, unforgeable
1243       IDs.  They are not modifiable by the user at all.
1244

LICENSE

1246       flashrom is covered by the GNU General Public License (GPL), version 2.
1247       Some  files  are  additionally available under any later version of the
1248       GPL.
1249
1251       Please see the individual files.
1252

AUTHORS

1254       Andrew Morgan
1255       Carl-Daniel Hailfinger
1256       Claus Gindhart
1257       David Borg
1258       David Hendricks
1259       Dominik Geyer
1260       Edward O'Callaghan
1261       Eric Biederman
1262       Giampiero Giancipoli
1263       Helge Wagner
1264       Idwer Vollering
1265       Joe Bao
1266       Joerg Fischer
1267       Joshua Roys
1268       Kyösti Mälkki
1269       Luc Verhaegen
1270       Li-Ta Lo
1271       Mark Marshall
1272       Markus Boas
1273       Mattias Mattsson
1274       Michael Karcher
1275       Nikolay Petukhov
1276       Patrick Georgi
1277       Peter Lemenkov
1278       Peter Stuge
1279       Reinder E.N. de Haan
1280       Ronald G. Minnich
1281       Ronald Hoogenboom
1282       Sean Nelson
1283       Stefan Reinauer
1284       Stefan Tauner
1285       Stefan Wildemann
1286       Stephan Guilloux
1287       Steven James
1288       Urja Rannikko
1289       Uwe Hermann
1290       Wang Qingpei
1291       Yinghai Lu
1292       some others, please see the flashrom svn changelog for details.
1293       All  still  active  authors  can  be  reached  via  the  mailing   list
1294flashrom@flashrom.org⟩.
1295
1296       This manual page was written by Uwe Hermann ⟨uwe@hermann-uwe.de⟩, Carl-
1297       Daniel Hailfinger, Stefan Tauner and others.  It is licensed under  the
1298       terms of the GNU GPL (version 2 or later).
1299
1300
1301
1302                                                                   FLASHROM(8)
Impressum