This is the universal LinuxBIOS flash utility.

usage: ./flashrom [-rwvE] [-V] [-c chipname] 
                           [-s exclude_start] [-e exclude_end] [file]

   -r | --read:   read flash and save into file
   -w | --write:  write file into flash (default when file is specified)
   -v | --verify: verify flash against file
   -E | --erase: Erase flash device
   -V | --verbose: more verbose output

   -c | --chip <chipname>: probe only for specified flash chip
   -s | --estart <addr>: exclude start position
   -e | --eend <addr>: exclude end postion
   -m | --mainboard <vendor:part>: override mainboard settings
   -l | --layout <file.layout>: read rom layout from file
   -i | --image <name>: only flash image name from flash layout

 If no file is specified, then all that happens
 is that flash info is dumped and the flash chip is set to writable.


LinuxBIOS table and Mainboard identification
--------------------------------------------

flashrom reads the LinuxBIOS table to determine the current mainboard.
(Parse DMI as well in future?) If no LinuxBIOS table could be read
or if you want to override these values, you can to specify -m ie.:

     flashrom -w --mainboard ISLAND:ARUMA island_aruma.rom


rom layout support
------------------

flashrom supports rom layouts. This allows to flash certain parts of
the flash chip only. A rom layout file looks like follows:

  00000000:00008fff gfxrom
  00009000:0003ffff normal
  00040000:0007ffff fallback

  i.e.:
  startaddr:endaddr name

  all addresses are offsets within the file, not absolute addresses!
  
If you only want to update the normal image in a rom you can say:

     flashrom -w --layout rom.layout --image normal island_aruma.rom
     
To update normal and fallback but leave the vga bios alone, say:

     flashrom -w -l rom.layout -i normal -i fallback island_aruma.rom
 
Currently overlapping sections are not spported.

rom layouts should replace the -s and -e option since they are more 
flexible and they should lead to a rom update file format with the 
rom layout and the rom image in one file (cpio, zip or something?)


DOC support
-----------

DISK on Chip support is currently disabled since it is considered unstable. 
Change CFLAGS in the Makefile to enable it.


