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
5097827757
fix include paths, use <villas/...>
style
2018-06-04 13:24:57 +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
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
8f3833bc73
ips/dma: rename pingpong to memcpy and always connect loopback
2018-05-15 18:04:24 +02:00
Daniel Krebs
3e505c74bf
ips/bram: add block RAM IP and use it with DMA test
2018-04-13 15:35:41 +02:00
Daniel Krebs
507ea77ad6
ips/dma: add (simple) DMA driver
2018-03-26 16:17:26 +02:00
Daniel Krebs
4f6694420f
lib: remove old and unused C files
2018-03-26 16:17:26 +02:00
Daniel Krebs
60882f1086
lib/memory: implement memory handling with allocators and blocks
...
This commit is 2/2 of a series of patches and not working on its own.
2018-03-26 16:17:20 +02:00
Daniel Krebs
b01a50184c
kernel/vfio: port to C++
...
This commit is 1/2 of a series of patches and not working on its own.
2018-03-26 16:16:42 +02:00
Daniel Krebs
676fd9171c
lib/ip: make logger a class member of IpCore
...
Logging is used everywhere and there's no justification of the clutter
and runtime overhead of `aut logger = getLogger();` everywhere.
2018-02-14 16:04:33 +01:00
Daniel Krebs
aa2b0b324f
lib/ips/pcie: use cached address space id and supply interface to create mapping
2018-02-14 14:34:03 +01:00
Daniel Krebs
6cb3b77c7a
ips/intc: don't fail if setting IRQ affinity is not possible
...
This is the case when the application is not executed as root which is
now possible, with the drawback that we cannot set the IRQ affinity
anymore.
2018-02-14 14:32:07 +01:00
Daniel Krebs
5940dcc0e5
lib/ips/fifo: remove useless code and old cruft
2018-02-14 07:28:25 +01:00
Daniel Krebs
21333379a9
lib/ips/fifo: fix decision if AXI4 data interface is present
2018-02-14 07:28:25 +01:00
Daniel Krebs
e93b31bbf1
lib/ips: make use of MemoryManager and new config layout
2018-02-14 07:28:25 +01:00
Daniel Krebs
409340433d
enable -Wall, -Wextra and -Werror and fix new errors ( fixes #20 )
2018-02-13 16:04:34 +01:00
daniel-k
f14df8aa32
lib/ip: adapt to fit new config layout provided by hwdef-parse
2018-01-23 14:47:44 +01:00
daniel-k
fc98aaecb4
lib/ips/intc: C++-ify interface
2018-01-16 15:07:21 +01:00
daniel-k
e05ff515c7
lib/ips/timer: implement basic functionality
2018-01-16 15:05:37 +01:00
daniel-k
77135feebc
lib/ips/intc: use new logger
2018-01-16 14:51:45 +01:00
daniel-k
80bc9af0e7
lib/ips/intc: change waitForInterrupt() interface
...
Return -1 on failure, change type to `int`. int/2 bits should still
be enough to track overflowed interrupts.
2018-01-16 14:51:45 +01:00
daniel-k
f987c29d71
lib/ip: change interface: start() -> init()
2018-01-16 14:46:00 +01:00
daniel-k
687f1e5bba
lib/ips/fifo: use std:min in favor of old macro
2018-01-10 15:49:53 +01:00
daniel-k
3cf50db98d
logging: use new spdlog library in favor of Logger
2018-01-10 15:49:53 +01:00
daniel-k
71a54eeab6
lib/ips: implement fifo driver and adapt test
2018-01-10 11:02:08 +01:00
daniel-k
e2e78cf8b3
lib: minor cleanup
2018-01-10 11:02:08 +01:00
daniel-k
25d5552197
ips/intc: remove early return in start()
2018-01-10 11:02:08 +01:00
daniel-k
79f37ce352
ips/switch: add C++ implementation of switch
2018-01-10 11:02:08 +01:00
daniel-k
a5b5e317d4
wip implementing dependency parsing and proper memeory handling
...
works and compiles so for. next is to implement different IP interfaces
(Model, Interface, DataMover, Infrastructure, ...)
2018-01-10 11:02:08 +01:00
daniel-k
61ca7aa44f
fpga/ip: add C++ timer implementation
2018-01-10 11:02:08 +01:00
daniel-k
e590d1a350
add namespace villas::fpga and villas::fpga::ip and some renaming
2018-01-10 11:02:08 +01:00
daniel-k
2bf8bf93bd
ips/intc: remove configureJson() method because not needed
2018-01-10 11:02:08 +01:00
daniel-k
151abd2fd5
re-add old interrupt controller to make project compile again
2018-01-10 11:02:08 +01:00
daniel-k
e735c7e248
make linking of the lib work by using old C-symbols until replaced
2018-01-10 11:02:08 +01:00
daniel-k
5d4040aded
first port to C++ of plugin and fpga ip infrastructure
2018-01-10 11:02:08 +01:00
daniel-k
4adb889527
make ips/intc C++
2018-01-10 11:02:08 +01:00
daniel-k
1cde762fc0
ips/gpio: add skeleton for GPIO IP
2017-11-22 19:40:22 +01:00
c3164e93ef
imported source code from VILLASfpga repo and made it compile
2017-11-21 21:31:08 +01:00