Hatim Kanchwala
bf67a2e5f0
Add initial Aurora driver
2020-06-02 00:54:31 +02:00
f6a78bea69
dma: add dump() method
2019-08-15 13:54:58 +02:00
Hatim Kanchwala
bf74db8e79
Debug update
2019-06-24 12:11:44 -04:00
5361c1d20d
move gpu module to top level directory
2018-08-21 15:53:47 +02:00
3f119896e9
ci: some tweaks to fix unit-tests
2018-08-21 15:29:37 +02:00
8b45a8bcac
fix include paths
2018-08-21 14:25:20 +02:00
2112038d70
Merge branch 'feature/hls-rtds2gpu' into develop
2018-08-21 13:51:32 +02:00
106d215dd2
fix gdrcopy submodule
2018-08-21 13:31:56 +02:00
4158ddb792
gpu: fix include paths and some linker settings
2018-08-21 13:28:07 +02:00
76b1695586
move more code to VILLAScommon repo
2018-08-21 13:27:04 +02:00
Daniel Krebs
96cd71a87e
gpu/gdrcopy: rebase on current upstream master and update
2018-08-21 13:12:51 +02:00
df89b63368
fix include paths
2018-08-21 11:07:53 +02:00
de566d441d
move common code to VILLAScommon submodule
2018-08-21 01:14:18 +02:00
Daniel Krebs
c44aedd6a9
gpu: update to recent GDRcopy
2018-07-20 16:52:09 +02:00
Daniel Krebs
8a06e96e92
gpu: always allocate page-sized chunks, then use LinearAllocator
...
This was neccessary in order to make the memory available via GDRcopy
when multiple small allocations were made. cudaMalloc() would return
multiple memory chunks located in the same GPU page, which GDRcopy
pretty much dislikes (`gdrdrv:offset != 0 is not supported`).
As a side effect, this will keep the number of BAR-mappings done
via GDRcopy low, because they seem to be quite limited.
2018-07-20 16:46:55 +02:00
63a1eb2f7f
remove some obsolete C code files
2018-06-25 17:22:31 +02:00
7409d2024d
add more copyright / license headers
2018-06-25 17:03:09 +02:00
7fd6599ea6
update copyright years
2018-06-25 15:33:14 +02:00
Daniel Krebs
d853d5e0d3
wip GPU RTT
2018-06-06 09:55:14 +02:00
Daniel Krebs
f413712b86
gpu2rtds: unit test working
2018-06-04 17:36:36 +02:00
Daniel Krebs
93fe1390d6
fix wrong usage of reinterpret_cast in ips and tests
2018-06-04 17:36:36 +02:00
Daniel Krebs
010e0c3681
hls: add base HLS IP and enable virtual multi-inheritance
...
Virtual inheritance is required because (for example) the Rtds2Gpu
IP inherits from Hls and IpNode who both inherit from IpCore.
2018-06-04 17:36:36 +02:00
Daniel Krebs
28458fdf8a
update rtds2gpu HLS IP to v1.1
...
- better tested IP (testbenches)
- detect invalid frame sizes
- more status reporting
2018-06-04 17:36:15 +02:00
Daniel Krebs
bf286568dd
rtds2gpu IP works
2018-06-04 17:36:15 +02:00
Daniel Krebs
b03b94d754
ip-node: fix wrong cast and add more sanity checks
2018-06-04 17:31:25 +02:00
Daniel Krebs
47bd186f5e
ip-node: move stream graph to IpNode and add easy-to-use connect interface
2018-06-04 17:31:12 +02:00
Daniel Krebs
00fb0363dd
ips/switch: add more sanity checks for making connections
2018-06-04 17:30:11 +02:00
Daniel Krebs
e9add5d602
ips/dma: enable interrupts by default
2018-06-04 14:20:06 +02:00
Daniel Krebs
28143e7188
ips/rtds: add C++ version of RTDS IP
2018-06-04 14:20:06 +02:00
Daniel Krebs
8e63785073
ips/dma: change interface, get byte count from {read,write}Complete()
2018-06-04 14:20:06 +02:00
Daniel Krebs
07137d73e6
lib/ip: extend dump by memory blocks
2018-06-04 14:20:06 +02:00
Daniel Krebs
fcfb3d8020
lib: change include path: must be <villas/...> now
2018-06-04 14:20:06 +02:00
Daniel Krebs
2e339b406d
lib/ips: add data fifo IP needed for stream routing
2018-06-04 14:20:06 +02:00
Daniel Krebs
a0c5acce4c
ip-node: implement connect interface and update AxiStreamSwitch implementation
2018-06-04 14:20:06 +02:00
Daniel Krebs
a1daf95202
lib/card: lookup IP by identifier
2018-06-04 14:20:06 +02:00
Daniel Krebs
967e39e36c
ip-node: add implementation of StreamGraph for automatic routing
2018-06-04 14:20:06 +02:00
Daniel Krebs
5097827757
fix include paths, use <villas/...>
style
2018-06-04 13:24:57 +02:00
Daniel Krebs
c15189b74b
common/memory: implement freeing for LinearAllocator
...
This is still very simple. Only really free memory, when all allocation
have been deallocated so we only need to keep track of the current
number of allocations.
2018-05-16 11:27:03 +02:00
Daniel Krebs
d2384abb9d
cmake: only build GPU library if CUDA is present
2018-05-16 10:58:18 +02:00
Daniel Krebs
13fd3f3c2a
gpu: implement basic GPU plugin that can do DMA to and from its memory
...
Using CUDA, memory can be allocated on the GPU and shared to peers on
the PCIe bus such as the FPGA. Furthermore, the DMA on the GPU can also
be used to read and write to/from other memory on the PCIe bus, such as
BRAM on the FPGA.
2018-05-15 18:15:17 +02:00
Daniel Krebs
7dcdfaccd9
ips/dma: let user deal with making memory accessible to DMA
...
It is probably too costly to do (and verify) it on every read
or write. Furthermore, the user knows better how to make a certain
memory available to the DMA.
2018-05-15 18:04:24 +02:00
Daniel Krebs
f823dde0f4
card: don't try to create a VFIO mapping if IOMMU is disabled
...
In this case, VFIO cannot create DMA mappings.
2018-05-15 18:04:24 +02:00
Daniel Krebs
f644a9faa8
ips/pcie: move BAR0 mapping from card into PCIe IP
2018-05-15 18:04:24 +02:00
Daniel Krebs
89b5169a6e
ips/pcie: parse AXI/PCI BARs and create mappings to/from PCIe address space
...
This is used for translations that don't use VFIO which used to bridge
the PCIe address space by creating direct mappings from process VA to
the FPGA. When we want to communicate directly via PCIe without the
involvment of the CPU/VFIO, we need the proper translations that are
configured in the FPGA hardware.
2018-05-15 18:04:24 +02:00
Daniel Krebs
364b137156
fpga/card: make pci device a class member (needed later)
2018-05-15 18:04:24 +02:00
Daniel Krebs
8f3833bc73
ips/dma: rename pingpong to memcpy and always connect loopback
2018-05-15 18:04:24 +02:00
Daniel Krebs
c818c242f3
kernel/pci: fix unitialized memory
2018-05-15 18:04:24 +02:00
Daniel Krebs
ad820a3618
kernel/pci: parse BAR regions
2018-05-15 18:04:24 +02:00
Daniel Krebs
1b2e7d312e
common/memory: add host DMA memory allocator using udmabuf
2018-05-15 18:04:24 +02:00
Daniel Krebs
1470490747
common/memory: provide findPath() to get a path of address spaces
2018-05-15 18:04:24 +02:00