Tool: FlashLoader
The FlashLoader application programs a bitfile (or arbitrary data) into the configuration flash of supported Opal Kelly devices so the FPGA boots from it on power-up. Depending on the device, that flash is either System Flash (managed by the device’s FrontPanel controller) or FPGA Flash (an SPI flash wired directly to the FPGA). FlashLoader auto-detects which architecture the connected device uses and chooses the right programming path — you run the same command either way.
How It Works
System Flash devices — The FrontPanel controller has direct access to the flash, so FlashLoader uses the FrontPanel API (FlashEraseSector, FlashWrite, FlashRead) to program it. On these devices, flashloader.bit is not loaded into the FPGA — the host talks straight to the controller. After programming, FlashLoader writes a Boot Reset Profile pointing to the new bitfile so the FPGA configures from it on power-up.
FPGA Flash devices — The flash is reachable only through the FPGA itself, so FlashLoader first configures the FPGA with a small helper bitstream (flashloader.bit) that bridges the FrontPanel API to the SPI flash pins. Erase/write/read operations are then performed by that helper logic. No reset profile is needed — the FPGA configured itself directly from its attached SPI flash on power-up.
The decision is made at runtime via the configuresFromSystemFlash flag returned by okCFrontPanel::GetDeviceInfo(). See your product’s flash memory documentation page for which flash architecture it uses.
Usage Information
Gather the files below into a single working directory, then run flashloader.exe from that directory. Not every file is required for every device — see the When required column.
| File | When required and where to get it |
|---|---|
flashloader.exe | Always required. Found (along with its source code) in the Samples Directory installed with FrontPanel. |
okFrontPanel.dll (.so on Linux, .dylib on macOS) | Always required. Installed with FrontPanel. |
| Your own bitfile | Required for the write command (w). This is the bitfile you want programmed into flash. |
flashloader.bit | Required on FPGA Flash configured devices for all operations. Download the pre-built bitfile for your specific module from our Pins Downloads; HDL source, where available, is in the Samples Directory. |
Write a Bitfile
- At the command line, run:
flashloader.exe w <path to valid bitfile>
Read Contents of FPGA Flash
- At the command line, run:
flashloader.exe r <sector start> <sector end> <output file>
Clear the Reset Profile
Reset Profiles exist only on USB 3 System Flash devices, so this command applies only to those devices. Clearing the reset profile prevents power-on configuration on devices that support reset profiles. The command has no effect on FPGA Flash devices, which always boot directly from their attached SPI flash.
- At the command line, run:
flashloader.exe c
Important Notes
Power-On Configuration Speed (For FPGA Flash devices)
On FPGA flash configured modules the FPGA configures itself directly from its attached SPI flash at power-up, and the rate at which it does so is controlled by bitstream-generation settings (configuration clock rate, SPI bus width, etc.) that are baked into the bitfile and read by the FPGA’s master-mode configuration logic. Read the AMD/Intel SPI configuration user guide appropriate for your product to determine how to configure these. Flash configuration and connections are documented in your product’s documentation space. Note that the FlashLoader tool sets the flash part’s QE bit so x4 configuration can be used, if supported (currently on UltraScale/UltraScale+ boards).
Changelog
FrontPanel 5.3.5
- Added ‘c’ option for clearing Reset Profiles
- Improved error reporting
- Added usage requirements note to usage printout
FrontPanel 5.2.7
- Added flash read functionality
- Fixed issue in HDL where an extra flash sector would be erased
- Fixed issue where last sector transfer would contain old data