mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-26 22:52:34 +02:00

Move Mac OS X IOKit/DirectHW availability checks in the Makefile from compiler check to pciutils check. Print the compiler error messages for feature detection. Add DOS libpci in the Makefile includes only if a PCI-based programmer was requested. Restrict mmap usage in ich_descriptors_tool to Unix style systems. Build ich_descriptors_tool with the correct .exe extension on DOS/Windows. Build ich_descriptors_tool by default on x86. (Patch by Stefan Tauner) Print the Windows version instead of "unknown machine" on Windows. Don't #define our own __DARWIN__, use the standard OS X detection method. Update the README. Add more generated files to svn:ignore Corresponding to flashrom svn r1567. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
169 lines
5.0 KiB
Plaintext
169 lines
5.0 KiB
Plaintext
-------------------------------------------------------------------------------
|
|
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. -I/usr/pkg/include" \
|
|
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.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*).
|
|
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
|
|
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.
|
|
|
|
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".
|
|
|
|
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
|