Dreg's fork windows build: - https://github.com/therealdreg/flashrom_build_windows_x64
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 :doc:`classic_cli_manpage`.
flashrom supports building with make and meson.
## Installing dependencies
Linux - Debian / Ubuntu
`bash apt-get install -y \ gcc meson ninja-build pkg-config python3-sphinx \ libcmocka-dev libpci-dev libusb-1.0-0-dev libftdi1-dev libjaylink-dev `
- ArchLinux / Manjaro
`bash pacman -S --noconfirm \ gcc meson ninja pkg-config python-sphinx cmocka \ pciutils libusb libftdi libjaylink `
- openSUSE / SUSE
`bash zypper install -y \ gcc meson ninja pkg-config python3-Sphinx \ libcmocka-devel pciutils-devel libusb-1_0-devel libftdi1-devel libjaylink-devel `
- NixOS / nixpkgs
`bash nix-shell -p \ gcc meson ninja pkg-config sphinx \ cmocka pciutils libusb1 libftdi1 libjaylink `
- Alpine Linux
`bash apk add \ build-base meson ninja pkgconf py3-sphinx \ cmocka-dev pciutils-dev libusb-dev libjaylink-dev `
- ArchLinux / Manjaro
MacOS - Homebrew
- libpci is not available through the package manager
- libjaylink is not available through the package manager
`bash brew install \ meson ninja pkg-config sphinx-doc \ libusb libftdi `
BSD - FreeBSD / DragonFlyBSD
- libusb1 is part of the system
- libjaylink is not available through the package manager
`bash pkg install \ meson ninja pkgconf py39-sphinx \ cmocka libpci libftdi1 `
OpenBSD - libjaylink is not available through the package manager - ```bash
pkg_add meson ninja pkg-config py39-sphinxcmocka pciutils libusb1 libftdi1 ```
NetBSD - libjaylink is not available through the package manager - note: [https://www.cambus.net/installing-ca-certificates-on-netbsd/](https://www.cambus.net/installing-ca-certificates-on-netbsd/) - ```bash
pkgin install meson ninja pkg-config py39-sphinx cmocka pciutils libusb1 libftdi1 ```
OpenIndiana (Illumos, Solaris, SunOS) - libpci missing, pciutils is build without it - libftdi1 & libjaylink are not available through the package manager - TODO: replace build-essential with the default compiler - ```bash
DJGPP-DOS - Get [DJGPP](https://www.delorie.com/djgpp/)
- A great build script can be found [here](https://github.com/andrewwutw/build-djgpp)
Download the [pciutils](https://mj.ucw.cz/sw/pciutils/) sources
Run the following commands in the the pciutils directory to build libpci for DOS. Replace <DOS_INSTALL_ROOT> with your cross-compile install root. ```bash make install-lib
ZLIB=no DNS=no HOST=i386-djgpp-djgpp CROSS_COMPILE=i586-pc-msdosdjgpp- STRIP="--strip-program=i586-pc-msdosdjgpp-strip -s" PREFIX=<DOS_INSTALL_ROOT>
Point pkg-config to the <DOS_INSTALL_ROOT>
`bash export PKG_CONFIG_SYSROOT=<DOS_INSTALL_ROOT> `
To compile flashrom use the meson_cross/i586_djgpp_dos.txt cross-file
You will need [CWSDPMI.EXE](https://sandmann.dotster.com/cwsdpmi/) to run flashrom
meson setup builddir meson compile -C builddir meson test -C builddir meson install -C builddir
For full detailed instructions, follow the information in :doc:`dev_guide/building_from_source`
make make install
For full detailed instructions, follow the information in :doc:`dev_guide/building_with_make`
The official flashrom website is:
https://www.flashrom.org/
For available contact methods see :doc:`contact`