123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- -------------------------------------------------------------------------------
- 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 DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, and TSOP40
- chips, which use various protocols such as LPC, FWH, parallel flash, or SPI.
- Do not use flashrom on laptops! The embedded controller (EC) present in many
- laptops interacts badly with any flash attempts and can brick your laptop
- permanently.
- 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 or Dediprog support)
- * libftdi (if you want FT2232 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, 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 or DragonFly BSD, use:
- ln -s /usr/pkg/include/pciutils pci
- gmake CPPFLAGS=-I. LDFLAGS="-L/usr/pkg/lib -Wl,-rpath-link,/usr/pkg/lib"
- To compile on OpenBSD, use:
- gmake
- To compile and run on Darwin/Mac OS X:
- Install DirectHW from coresystems GmbH.
- DirectHW is available at http://www.coresystems.de/en/directhw .
- To cross-compile on Linux for DOS:
- Get RPMs of the cross compiler from the DJGPP site and install them:
- djcross-binutils-2.19.1-10ap.i386.rpm
- djcross-gcc-4.3.2-8ap.i686.rpm
- djcrx-2.04pre_20090725-13ap.i386.rpm
- Download pciutils 3.1.5 and apply http://assembler.cz/flashrom/pciutils.patch
- Download and compile http://assembler.cz/flashrom/libgetopt/
- Compile pciutils, see README.DJGPP for instructions.
- Enter the flashrom directory.
- ../libpci should contain pciutils source and binaries.
- ../libgetopt should contain getopt.a from libgetopt.
- Run either (change settings where appropriate)
- make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip OS_ARCH=DOS
- or (above settings hardcoded)
- make djgpp-dos
- You might have to add WARNERROR=no to the make command line.
- To run flashrom.exe, download and unpack
- http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi7b.zip and make sure
- CWSDPMI.EXE is in the current directory.
- Processor architecture dependent features:
- On non-x86 architectures you have to disable a few programmers because they
- use port-based I/O which is not directly available on non-x86. Please add
- CONFIG_RAYER_SPI=no CONFIG_NIC3COM=no CONFIG_ATAHPT=no CONFIG_NICREALTEK=no \
- CONFIG_NICNATSEMI=no
- as parameters to the "make" invocation.
- Besides that, the internal programmer is only supported on x86 and MIPS. On
- other architectures, please add
- CONFIG_INTERNAL=no
- as parameter to the "make" invocation.
- 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
|