forked from cbm-fles/pda
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathREADME
203 lines (157 loc) · 5.66 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
1__Downloading
https://compeng.uni-frankfurt.de/index.php?id=173
2__Installation
Requirements for Linux:
- Installed GCC
- Installed libtool
- libpci and related headers (comes with pciutils)
- libkmod and related headers
- libnuma and related headers (comes with numactl)
- Doxygen (if the documentation is needed)
Type:
./configure --help
./configure <options>
make
make install
cd patches/<operating system>/
make install
3__Documentation
The PDA is documented with doxygen. Therefore Doxygen must be installed to get
a full reference manual (tested with version 1.8.4).
Type:
make doc
Look into the subfolder doxygen/
4__Compatibility
- Linux between 2.6.29 and 3.19
5__Known Issues
- Older versions of libpci leak memory. It is therefore recommended to update
libpci to version 3.3.1 or newer. Otherwise the device description string might
not be available.
6__Version_Log:
11.0.7 * SVN rev 1611
* Added feature for disabling device enumeration
* Added feature for using DMA buffer as Posix-SHM replacement with low
overhead
* Added feature for listing allocated DMA buffers
* Removed aborts
* Changed license to three clause BSD
10.2.6 * SVN rev 1506
* Maintenance release
* Bugfixes and optimizations
* Added locking for buffer allocation, freeing, and mapping
* Added on-demand paging for DMA buffers
10.1.6 * SVN rev 1429
* Maintenance release
* Fixed wrap mapping bug(s)
* Fixed a couple of bugs in error handling
* Enhanced valgrind compatibility
* Tested support for Linux +3.19
10.0.6 * SVN rev 1396
* Added userspace buffer allocation
* Removed obsolete DMA buffer direction specifier
* Optimized udev scripts
9.1.5 * SVN rev 1310
* Fixed race conditions during buffer allocation
* Tested support for Linux +3.18
9.0.5 * SVN rev 1292
* Added NUMA control support
* Completed doxygen documentation
* Fixed RPM libtool bug in build flow
* Added automatic RPM config
* Added --help option to configure script
* Tested support for Linux +3.16
* Tested support for Linux +3.17
8.1.4 * SVN rev 1214
* Added support for MSI interrupting
* Added initial support for hotplug (virtual bars)
8.0.4 * SVN rev 1164
* Disabled auto vectorization
* Added non SSE based memcpy routines
* Added non vectorizable getter and setter functions
* Fixed interrupting bug which appeared in conjunction with pthreads
* Started Doxygen documentation
8.0.3 * SVN rev 1122
* Fixed bug with buffer list handling
* Fixed buffer size bug (return actually allocated instead of requested
size)
8.0.2 * SVN rev 1071
* Added support for max payload size and max read request size
* Added PDA debug version ignore for the CMake include
* Fixed bug which caused crashing if user permissions were not
granted
* Tested support for Linux +3.15
7.4.1 * SVN rev 917
* Fixed udev "google chrome" bug (udev rule was going wild)
* Fixed buffer reallocation bug
* Code cleanup of the linux kernel module
7.3.1 * SVN rev 884
* Fixed rpmbuild support for kernel module
* Fixed support for 64Bit BARs
* Added support for executing as non-privileged user
* Tested support for Linux +3.14
7.2.1 * SVN rev 865
* Rpmbuild support (make rpm) for the uio_pci_dma kernel module
7.1.1 * SVN rev 841
* Fixed sysfs path bug
* Added rpmbuild capabilities (make rpm) to make dist
* Cleaned kernel adapter code
* Tested support for Linux +3.13
7.0.1 * SVN rev 678
* Fixed page sorting bug
* Fixed buffer indexing bug
* Fixed support for Linux +3.12
6.1.1 * SVN rev 656
* KMOD checking is only activated if libkmod is really installed. Issues
a big fat warning if used without KMOD.
6.0.1 * SVN rev 631
* DMA buffer mapping without caching
* Checks adapter version
* PDA config can return PDA version now
* Added separate PDAinit function
* Added separate PDAfinalize function
* Added function to check that the uses PDA has the right version (even
if it compiles)
* PDA-Debug now usable from outside
* Bug fixing
* Works against Linux +3.9 +3.10
5.0.0 * SVN rev 529
* Fixed buffer rediscover
* Stabilized wrap mapping
* Moved some set and get functions into macros
* Revised buffer lookup
4.3.4 * SVN rev 442
* Added license header
4.2.4 * SVN rev 433
* Enhanced compatibility to Linux 2.6.29 - 3.8
4.1.4 * SVN rev 387
* Added strict return code checking
* Fixed test cases
* Fixed warnings
4.0.4 * SVN rev 365
* Added support for buffer wrap mapping ("overmapping"->
Linux only)
4.0.3 * SVN rev 340
* Added support for DMA (Linux only)
* Buffer allocation
* Scatter gather lists (with automatic merging)
3.0.2 * SVN rev 117
* First tested version with support for:
* Basic Address Registers
* Interrupts
2.0.0 * SVN rev 106
* Bug fixing (version 0.0.0 was broken).
* BAR detection used the wrong bits (both libpci
and config space)
* Error handling prevented correct working in a
couple of cases
* All macros with arguments where broken (extra
bracing was needed)
* Added support for 64Bit BARs
* Added code beautifier
* Added get methods for device query
* Added configure checks
* Removed UIO device deletion (UIO is persistent
now)
0.0.0 * Initial version.
* Added basic support for Linux and UIO
* Added BAR and IRQ handling