Dune NVMe Storage Support

DuneNvme test system Release Notes

Release 1.0.2: 2020-08-17

  1. Improved CDC crossing system when reading registers.

  2. Added support to the NvmeRead module to trim/deallocate a set of data blocks.

  3. Fixed an issue in NvmeWrite if the optional trim function was enabled to trim the correct number of blocks (was doing 8x less).

  4. Disabled Trim in NvmeWrite as support is now in NvmeRead where it is better placed for Dune usage and the way current NVMe’s operate.

  5. Improved NvmeRead performance to a Linux program. This was done by collating the small 128 Byte PCIe packets into a pseudo 4k block PCIe packet within the NvmeRead engine and sending these through the streams to the Linux driver. This reduces packet processing requirements in the Linux driver and application. Measured read performance is now in the order of 400 MBytes/sec on the test system. The NvmeRead engines SendFullBlock boolean can enable/disable this feature.

  6. Fixed a minor bug in the test_nvme test software where read block validation was incorrect once the 0x40000000 block integer value had been reached.

  7. Fixed an issue where the peakLatency value was occasionally invalid.

  8. Removed incorrect/unused K800 constraint.

  9. In NvmeRead now clears Fifo when read is re-triggered. We have also added a ReadError status register to provide the NVMe error status value should this occur.

  10. There was a bug in the test software that could lead to read block errors being reported. This would occur when one of the two NVMe devices was slower than the other when reading data such as with the FireCuda drives that have a SLC cache as well as RAM cache shortly after a write of data. The software fifos have had their size increased to help handle this and will provide an error if they overflow.

Release 1.0.1: 2020-07-18

Minor bugfix release to aid debugging.

  1. The bfpga_driver’s Makefile now finds the correct PCI device when loading the bfpga Linux driver.

  2. The bfpga driver’s udev file, bfpga.rules, now has the correct device name.

  3. Fix to the test code for correct bfpga device name string.

  4. Added NVMe PCIe phy_status and link_status signals to the NvmeStorageUnit’s status register (bits 30 and 31).

Release 1.0.0: 2020-06-16

First release of Dune NvmeStorage system. This includes builds for the AB17-M2FMC and Opsero OP47 NVMe boards.

NvmeStorage Utilisation:

Total LUTs

Logic LUTs







DSP48 Blocks