123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- -------------------------------------------------------------------------------
- flashrom README
- -------------------------------------------------------------------------------
- flashrom is a utility for detecting, reading, writing, verifying and erasing
- flash chips. It is often used to flash BIOS/EFI/coreboot/firmware images
- in-system using a supported mainboard, but it also supports flashing of network
- cards (NICs), SATA controller cards, and other external devices which can
- program flash chips.
- It supports a wide range of flash chips (most commonly found in SOIC8, DIP8,
- SOIC16, WSON8, PLCC32, DIP32, TSOP32, and TSOP40 packages), which use various
- protocols such as LPC, FWH, parallel flash, or SPI.
- Do not use flashrom on laptops (yet)! The embedded controller (EC) present in
- many laptops might interact badly with any attempts to communicate with the
- flash chip and may brick your laptop.
- Please make a backup of your flash chip before writing to it.
- Please see the flashrom(8) manpage.
- Packaging
- ---------
- To package flashrom and remove dependencies on subversion, either use
- make export
- or
- make tarball
- make export will export all flashrom files from the subversion repository at
- revision BASE into a directory named $EXPORTDIR/flashrom-$VERSION-r$SVNREVISION
- and will additionally modify the Makefile in that directory to contain the svn
- revision of the exported tree.
- make tarball will simply tar up the result of make export and gzip compress it.
- The snapshot tarballs are the result of make tarball and require no further
- processing.
- Build Instructions
- ------------------
- To build flashrom you need to install the following software:
- * pciutils+libpci (if you want support for mainboard or PCI device flashing)
- * libusb (if you want FT2232, Dediprog or USB-Blaster support)
- * libftdi (if you want FT2232 or USB-Blaster support)
- Linux et al:
- * pciutils / libpci
- * pciutils-devel / pciutils-dev / libpci-dev
- * zlib-devel / zlib1g-dev (needed if libpci was compiled with libz support)
- On FreeBSD, you need the following ports:
- * devel/gmake
- * devel/libpci
- On OpenBSD, you need the following ports:
- * devel/gmake
- * sysutils/pciutils
- To compile on Linux, use:
- make
- To compile on FreeBSD, OpenBSD or DragonFly BSD, use:
- gmake
- To compile on Nexenta, use:
- make
- To compile on Solaris, use:
- gmake LDFLAGS="-L$pathtolibpci" CC="gcc -I$pathtopciheaders" CFLAGS=-O2
- To compile on NetBSD (with pciutils, libftdi, libusb installed in /usr/pkg/), use:
- gmake
- To compile and run on Darwin/Mac OS X:
- Install DirectHW from coresystems GmbH.
- DirectHW is available at http://www.coreboot.org/DirectHW .
- To cross-compile on Linux for DOS:
- Get packages of the DJGPP cross compiler and install them:
- djgpp-filesystem djgpp-gcc djgpp-cpp djgpp-runtime djgpp-binutils
- As an alternative, the DJGPP web site offers packages for download as well:
- djcross-binutils-2.19.1-10ap.i386.rpm
- djcross-gcc-4.3.2-8ap.i686.rpm
- djcrx-2.04pre_20090725-13ap.i386.rpm
- The cross toolchain packages for your distribution may have slightly different
- names (look for packages named *djgpp*).
- You will need the following library source trees containing their compiled
- static libraries either in the parent directory of the flashrom source or
- specify the base folder on compile time with the LIBS_BASE parameter.
- The default as described above is equal to calling
- 'make djgpp-dos LIBS_BASE=..'
- To get and build said libraries...
- Download pciutils 3.1.5 and apply http://flashrom.org/File:Pciutils.patch.gz
- Compile pciutils, see README.DJGPP for instructions.
- Download and compile http://flashrom.org/File:Libgetopt.tar.gz
- Enter the flashrom directory.
- Run either (change settings where appropriate)
- make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip
- or (above settings hardcoded)
- make djgpp-dos
- To run flashrom.exe, download http://flashrom.org/File:Csdpmi7b.zip and
- unpack CWSDPMI.EXE into the current directory or one in PATH.
- To cross-compile on Linux for Windows:
- Get packages of the MinGW cross compiler and install them:
- mingw32-filesystem mingw32-cross-cpp mingw32-cross-binutils mingw32-cross-gcc
- mingw32-runtime mingw32-headers
- The cross toolchain packages for your distribution may have slightly different
- names (look for packages named *mingw*).
- PCI-based programmers (internal etc.) are not supported on Windows.
- Run (change CC= and STRIP= settings where appropriate)
- make CC=i686-w64-mingw32-gcc STRIP=i686-w64-mingw32-strip
- Processor architecture dependent features:
- On non-x86 architectures a few programmers don't work (yet) because they
- use port-based I/O which is not directly available on non-x86. Those
- programmers will be disabled automatically if you run "make".
- Compiler quirks:
- If you are using clang and if you want to enable only one driver, you may hit an
- overzealous compiler warning from clang. Compile with "make WARNERROR=no" to
- force it to continue and enjoy.
- Installation
- ------------
- In order to install flashrom and the manpage into /usr/local, type:
- make install
- For installation in a different directory use DESTDIR, e.g. like this:
- make DESTDIR=/usr install
- If you have insufficient permissions for the destination directory, use sudo
- by adding sudo in front of the commands above.
- Contact
- -------
- The official flashrom website is:
- http://www.flashrom.org/
- The IRC channel is
- #flashrom at irc.freenode.net
- The mailing list address is
- flashrom@flashrom.org
|