DuneNvme  1.0.0
This is a simple NVMe test environment that allows experimentation with the low level PCIe NVMe interfaces as available on a Xilinx FPGA environment.
bfpga.h
1 /*******************************************************************************
2  * BFpga.h BFpga FPGA device driver definititions
3  * T.Barnaby, BEAM Ltd, 2020-03-05
4  *******************************************************************************
5  *
6  * Copyright (c) 2020 BEAM Ltd. All rights reserved.
7  *
8  * This software is available to you under a choice of one of two
9  * licenses. You may choose to be licensed under the terms of the GNU
10  * General Public License (GPL) Version 2, available from the file
11  * COPYING in the main directory of this source tree, or the
12  * OpenIB.org BSD license below:
13  *
14  * Redistribution and use in source and binary forms, with or
15  * without modification, are permitted provided that the following
16  * conditions are met:
17  *
18  * - Redistributions of source code must retain the above
19  * copyright notice, this list of conditions and the following
20  * disclaimer.
21  *
22  * - Redistributions in binary form must reproduce the above
23  * copyright notice, this list of conditions and the following
24  * disclaimer in the documentation and/or other materials
25  * provided with the distribution.
26  *
27  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
28  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
29  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
30  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
31  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
32  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
33  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
34  * SOFTWARE.
35  */
36 #ifndef _BFPGA_H
37 #define _BFPGA_H
38 
39 #define BFPGA_CMD_GETINFO _IOR('Z', 0, BFpgaInfo)
40 #define BFPGA_CMD_GET_CONTROL _IOR('Z', 1, uint32_t)
41 #define BFPGA_CMD_SET_CONTROL _IOW('Z', 2, uint32_t)
42 #define BFPGA_CMD_RESET _IO('Z', 3)
43 
44 typedef struct {
45  uint64_t physAddress;
46  uint64_t length;
47 } BFpgaMem;
48 
49 typedef struct {
50  BFpgaMem regs;
51  BFpgaMem dmaRegs;
52  BFpgaMem dmaChannels[8];
53 } BFpgaInfo;
54 
55 // FPGA DDC Control Registers
56 const int BFpgaId = 0x0000; // Firmware ID
57 const int BFpgaControl = 0x0001; // Control
58 const int BFpgaStatus = 0x0002; // Status
59 const int BFpgaIntControl = 0x0003; // Interrupt Enables
60 const int BFpgaIntStatus = 0x0004; // Interrupt Status
61 
62 #endif
Definition: bfpga.h:44
Definition: bfpga.h:49