|
|
e498dc |
From cd80370722f050f15cbeae121584853fbe44949b Mon Sep 17 00:00:00 2001
|
|
|
e498dc |
From: Tom Rix <trix@redhat.com>
|
|
|
e498dc |
Date: Wed, 13 May 2020 15:06:40 -0400
|
|
|
e498dc |
Subject: [PATCH 2/2] Add support for public dfl driver to fpgaport
|
|
|
e498dc |
|
|
|
e498dc |
The ioctl's are different and the data passed is an int.
|
|
|
e498dc |
|
|
|
e498dc |
Signed-off-by: Tom Rix <trix@redhat.com>
|
|
|
e498dc |
---
|
|
|
e498dc |
tools/fpgaport/fpgaport | 21 +++++++++++++++++----
|
|
|
e498dc |
1 file changed, 17 insertions(+), 4 deletions(-)
|
|
|
e498dc |
|
|
|
e498dc |
diff --git a/tools/fpgaport/fpgaport b/tools/fpgaport/fpgaport
|
|
|
e498dc |
index 2f707183..cf133c98 100755
|
|
|
e498dc |
--- a/tools/fpgaport/fpgaport
|
|
|
e498dc |
+++ b/tools/fpgaport/fpgaport
|
|
|
e498dc |
@@ -27,8 +27,12 @@
|
|
|
e498dc |
|
|
|
e498dc |
import fcntl, os, sys, argparse, stat, struct
|
|
|
e498dc |
|
|
|
e498dc |
+# Intel driver
|
|
|
e498dc |
FPGA_FME_PORT_ASSIGN = 0xB582
|
|
|
e498dc |
FPGA_FME_PORT_RELEASE = 0xB581
|
|
|
e498dc |
+# DFL driver
|
|
|
e498dc |
+DFL_FME_PORT_ASSIGN = 0x4004B682
|
|
|
e498dc |
+DFL_FME_PORT_RELEASE = 0x4004B681
|
|
|
e498dc |
|
|
|
e498dc |
if __name__ == "__main__":
|
|
|
e498dc |
|
|
|
e498dc |
@@ -51,18 +55,27 @@ if __name__ == "__main__":
|
|
|
e498dc |
|
|
|
e498dc |
# open FPGA device
|
|
|
e498dc |
try:
|
|
|
e498dc |
- f = open(args.device, "rw")
|
|
|
e498dc |
+ f = open(args.device, "w")
|
|
|
e498dc |
except Exception as e:
|
|
|
e498dc |
print("open() failed:", e)
|
|
|
e498dc |
sys.exit(1)
|
|
|
e498dc |
|
|
|
e498dc |
# send IOCTL
|
|
|
e498dc |
- ioctl_data = struct.pack('III', 12, 0, args.port)
|
|
|
e498dc |
+ if (args.device.find("intel-fpga-fme") != -1):
|
|
|
e498dc |
+ ioctl_data = struct.pack('III', 12, 0, args.port)
|
|
|
e498dc |
+ else:
|
|
|
e498dc |
+ ioctl_data = struct.pack('I', args.port)
|
|
|
e498dc |
try:
|
|
|
e498dc |
if args.action == 'assign':
|
|
|
e498dc |
- ret = fcntl.ioctl(f, FPGA_FME_PORT_ASSIGN, ioctl_data)
|
|
|
e498dc |
+ if (args.device.find("intel-fpga-fme") != -1):
|
|
|
e498dc |
+ ret = fcntl.ioctl(f, FPGA_FME_PORT_ASSIGN, ioctl_data)
|
|
|
e498dc |
+ else:
|
|
|
e498dc |
+ ret = fcntl.ioctl(f, DFL_FME_PORT_ASSIGN, ioctl_data)
|
|
|
e498dc |
else:
|
|
|
e498dc |
- ret = fcntl.ioctl(f, FPGA_FME_PORT_RELEASE, ioctl_data)
|
|
|
e498dc |
+ if (args.device.find("intel-fpga-fme") != -1):
|
|
|
e498dc |
+ ret = fcntl.ioctl(f, FPGA_FME_PORT_RELEASE, ioctl_data)
|
|
|
e498dc |
+ else:
|
|
|
e498dc |
+ ret = fcntl.ioctl(f, DFL_FME_PORT_RELEASE, ioctl_data)
|
|
|
e498dc |
except Exception as e:
|
|
|
e498dc |
print("ioctl() failed:", e)
|
|
|
e498dc |
f.close()
|
|
|
e498dc |
--
|
|
|
e498dc |
2.18.2
|
|
|
e498dc |
|