Utility that allows dumping and flashing the SPI Flash Non-Volatile Memory of the FM10000 family of cards.
Go to file
DataHoarder a566a323f9
All checks were successful
continuous-integration/drone/push Build is passing
Added Winbond W25Q16JV 16-Mbit to known devices
2020-12-22 01:28:18 +01:00
src Added Winbond W25Q16JV 16-Mbit to known devices 2020-12-22 01:28:18 +01:00
.drone.yml Added clang support 2020-12-19 22:11:03 +01:00
.gitignore New tool fm10k-flash (#1) 2020-12-21 05:11:23 +00:00
COPYING New tool fm10k-flash (#1) 2020-12-21 05:11:23 +00:00
Makefile New tool fm10k-flash (#1) 2020-12-21 05:11:23 +00:00
README.md New tool fm10k-flash (#1) 2020-12-21 05:11:23 +00:00

fm10k-dump & fm10k-flash

Utility that allows dumping/flashing the SPI Flash Non-Volatile Memory of the FM10000 family of cards.

Requirements

  • GCC >= 4.4.0 or clang
  • make
  • fm10k kernel module compiled with UIO.
    • # cd src && make clean && make -j $(nproc) CONFIG_UIO=1 && make install CONFIG_UIO=1
    • # rmmod fm10k && modprobe uio && modprobe fm10k
    • If this works an UIO device (/dev/uio0) will exist. If not, check your bifurcation settings and/or whether the slot supports 16x PCIe 3.0

Compilation

  • $ make clean && make
  • You can specify whether to use gcc or clang this way: $ make CC=gcc / $ make CC=clang
  • Two executables named ./fm10k-dump and ./fm10k-flash should now exist.

fm10k-dump usage example

  • If the chip on the card is known to the tool, it'll set the image size to match. Alternatively it will use the platform minimum of 8Mbit.
  • # ./fm10k-dump /dev/uio0 outputImage.bin
  • You can also force the image/chip size: # ./fm10k-dump /dev/uio0 outputImage.bin 32

fm10k-flash usage example

  • fm10k-flash requires a backup of the existing image before flashing a new one, for safety measures. Use fm10k-dump to take a backup copy of the current state before flashing.
  • # ./fm10k-dump /dev/uio0 backupImage.bin
  • # ./fm10k-flash /dev/uio0 inputImage.bin backupImage.bin

License

  • BSD-3-Clause
  • See COPYING for the full license.