openFPGA 2.1 Changelog

Large File Support

Files up to 128 terabytes can now be accessed via Target commands by a core. The file byte offset in applicable Host/Target commands has been modified to use 16 bits of previously unused parameter data, increasing file addressing from 32 bits to 48 bits.

Files over 4GB require the SD card to be formatted to exFAT.

As a reminder, when doing a Target read or write, APF will traverse the cluster chain of the file and cache up to 16 file fragments. This could take a non-trivial amount of time for files in dense subdirectories, but each subsequent time the same data slot is accessed through Target commands the cache will provide instant file seeking. This cache is lost whenever another data slot is accessed. Cores should limit switching between data slots in Target ops if fast seeking is a priority.

Remember to update the framework.version_required key in core.json to 2.1 when using these new 48-bit commands.

Developer Tools

A hotkey now can enable and disable USB SD access at any time, without needing to hotplug the cable. Press Analogue + X to enable, and Analogue + Y to disable.

The Builds list in Tools>Developer now remembers the last core selected (Resume Browser must be enabled).

Documentation Updates

Detailed Changes and Improvements

  • Framework version updated to 2.1
  • Added Target command support for files larger than 4GB: [0181 Data slot read (48bit)] and [0185 Data slot write (48bit)]
  • Updated Host command [0082 Data slot request write] to support 48-bit file sizes
  • Updated Host command [008A Data slot update] to support 48-bit file sizes
  • Updated data slot BRAM writes to support 48-bit file sizes
  • Fixed data slot read/write commands when length is 0xFFFFFFFF
  • USB SD access hotkey
  • Builds list persistence