| DuneNvme 1.0.2 This is a simple NVMe test environment that allows experimentation with the low level PCIe NVMe interfaces as available on a Xilinx FPGA environment. |
This is a simple test program that uses the Xilinx xdma Linux driver to access. More...
#include <NvmeAccess.h>#include <stdio.h>#include <getopt.h>#include <stdarg.h>#include <math.h>Classes | |
| class | Control |
| Overal program control class. More... | |
Macros | |
| #define | LDEBUG1 0 |
| #define | VERSION "1.0.0" |
Functions | |
| BUInt8 | get8 (void *data, BUInt address) |
| BUInt32 | get32 (void *data, BUInt address) |
| BUInt64 | get64 (void *data, BUInt address) |
| void | usage (void) |
| int | main (int argc, char **argv) |
Detailed Description
This is a simple test program that uses the Xilinx xdma Linux driver to access.
- Date
- 2020-06-05
- Version
- 1.0.0
This requires an Nvme device on a KCU105 with the DuneNvmeStorageTest bit file running. The system allows an NVMe situtated on the Xilinx KCU105 to be accessed and experimented with. It implements the following:
- Configuration of the NVMe PCIe configuration space registers.
- Accessing the NVMe registers.
- Configuration of the NVMe's registers.
- Sending Admin commands to the NVMe via the admin request/completion shared memory queues. This includes configuration commands.
- Sending of read and write IO commands to the NVMe via IO request/completion shared memory queues.
There is access to the memory mappend NvmeStorage registers and there is one bi-directional DMA stream used for communication. The send and receive DMA streams are multiplexed between requests from the host and replies from the Nvme and also requests from the Nvme and replies from the host. The packets sent have a 128bit multiplexing stream number headerand are then encapsulated in the Xilinx PCIe DMA IP's headers.
The program accesses the FPGA system over the hosts PCIe bus using the Beam bfpga Linux driver. This interfaces with the Xilinx PCIe DMA IP. The program uses a thread to respond to Nvme requests.
- Copyright
- 2020 Beam Ltd, Apache License, Version 2.0 Copyright 2020 Beam Ltd Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Generated by
1.8.15 
