README 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. -------------------------------------------------------------------------------
  2. flashrom README
  3. -------------------------------------------------------------------------------
  4. flashrom is a utility for detecting, reading, writing, verifying and erasing
  5. flash chips. It is often used to flash BIOS/EFI/coreboot/firmware images
  6. in-system using a supported mainboard, but it also supports flashing of network
  7. cards (NICs), SATA controller cards, and other external devices which can
  8. program flash chips.
  9. It supports a wide range of DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, and TSOP40
  10. chips, which use various protocols such as LPC, FWH, parallel flash, or SPI.
  11. Do not use flashrom on laptops! The embedded controller (EC) present in many
  12. laptops interacts badly with any flash attempts and can brick your laptop
  13. permanently.
  14. Please make a backup of your flash chip before writing to it.
  15. Please see the flashrom(8) manpage.
  16. Packaging
  17. ---------
  18. To package flashrom and remove dependencies on subversion, either use
  19. make export
  20. or
  21. make tarball
  22. make export will export all flashrom files from the subversion repository at
  23. revision BASE into a directory named $EXPORTDIR/flashrom-$VERSION-r$SVNREVISION
  24. and will additionally modify the Makefile in that directory to contain the svn
  25. revision of the exported tree.
  26. make tarball will simply tar up the result of make export and gzip compress it.
  27. The snapshot tarballs are the result of make tarball and require no further
  28. processing.
  29. Build Instructions
  30. ------------------
  31. To build flashrom you need to install the following software:
  32. * pciutils+libpci (if you want support for mainboard or PCI device flashing)
  33. * libusb (if you want FT2232 or Dediprog support)
  34. * libftdi (if you want FT2232 support)
  35. Linux et al:
  36. * pciutils / libpci
  37. * pciutils-devel / pciutils-dev / libpci-dev
  38. * zlib-devel / zlib1g-dev (needed if libpci was compiled with libz support)
  39. On FreeBSD, you need the following ports:
  40. * devel/gmake
  41. * devel/libpci
  42. On OpenBSD, you need the following ports:
  43. * devel/gmake
  44. * sysutils/pciutils
  45. To compile on Linux, use:
  46. make
  47. To compile on FreeBSD, use:
  48. gmake
  49. To compile on Nexenta, use:
  50. make
  51. To compile on Solaris, use:
  52. gmake LDFLAGS="-L$pathtolibpci" CC="gcc -I$pathtopciheaders" CFLAGS=-O2
  53. To compile on NetBSD or DragonFly BSD, use:
  54. ln -s /usr/pkg/include/pciutils pci
  55. gmake CPPFLAGS=-I. LDFLAGS="-L/usr/pkg/lib -Wl,-rpath-link,/usr/pkg/lib"
  56. To compile on OpenBSD, use:
  57. gmake
  58. To compile and run on Darwin/Mac OS X:
  59. Install DirectHW from coresystems GmbH.
  60. DirectHW is available at http://www.coresystems.de/en/directhw .
  61. To cross-compile on Linux for DOS:
  62. Get RPMs of the cross compiler from the DJGPP site and install them:
  63. djcross-binutils-2.19.1-10ap.i386.rpm
  64. djcross-gcc-4.3.2-8ap.i686.rpm
  65. djcrx-2.04pre_20090725-13ap.i386.rpm
  66. Download pciutils 3.1.5 and apply http://assembler.cz/flashrom/pciutils.patch
  67. Download and compile http://assembler.cz/flashrom/libgetopt/
  68. Compile pciutils, see README.DJGPP for instructions.
  69. Enter the flashrom directory.
  70. ../libpci should contain pciutils source and binaries.
  71. ../libgetopt should contain getopt.a from libgetopt.
  72. Run either (change settings where appropriate)
  73. make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip OS_ARCH=DOS
  74. or (above settings hardcoded)
  75. make djgpp-dos
  76. You might have to add WARNERROR=no to the make command line.
  77. To run flashrom.exe, download and unpack
  78. http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi7b.zip and make sure
  79. CWSDPMI.EXE is in the current directory.
  80. Processor architecture dependent features:
  81. On non-x86 architectures you have to disable a few programmers because they
  82. use port-based I/O which is not directly available on non-x86. Please add
  83. CONFIG_RAYER_SPI=no CONFIG_NIC3COM=no CONFIG_ATAHPT=no CONFIG_NICREALTEK=no \
  84. CONFIG_NICNATSEMI=no
  85. as parameters to the "make" invocation.
  86. Besides that, the internal programmer is only supported on x86 and MIPS. On
  87. other architectures, please add
  88. CONFIG_INTERNAL=no
  89. as parameter to the "make" invocation.
  90. Installation
  91. ------------
  92. In order to install flashrom and the manpage into /usr/local, type:
  93. make install
  94. For installation in a different directory use DESTDIR, e.g. like this:
  95. make DESTDIR=/usr install
  96. If you have insufficient permissions for the destination directory, use sudo
  97. by adding sudo in front of the commands above.
  98. Contact
  99. -------
  100. The official flashrom website is:
  101. http://www.flashrom.org/
  102. The IRC channel is
  103. #flashrom at irc.freenode.net
  104. The mailing list address is
  105. flashrom@flashrom.org