Daniel Krebs
a93278b74e
ips/dma: expose names of its treaming ports
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
7479675361
ips/intc: remove unused code
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
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
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
3e505c74bf
ips/bram: add block RAM IP and use it with DMA test
2018-04-13 15:35:41 +02:00
Daniel Krebs
ae2bd2a41d
lib/ip: alias type for memory block name and cache addres space IDs in IP
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
36259d00e0
lib/ip: save address space ids for each bus master interface
2018-02-14 14:34:03 +01:00
Daniel Krebs
5d99f11a34
lib/ip: move definition of getBaseAddr() back to header
...
This is a one-liner, so IMO increases readability.
2018-02-14 14:34:03 +01:00
Daniel Krebs
5940dcc0e5
lib/ips/fifo: remove useless code and old cruft
2018-02-14 07:28:25 +01:00
Daniel Krebs
3a8e332b42
lib/vlnv: add != operator and minor cleanup
2018-02-14 07:28:25 +01:00
Daniel Krebs
817d206243
lib/ip: formatting cleanup and more comments
2018-02-14 07:28:25 +01:00
Daniel Krebs
41e90bfda0
lib/ip: cleanup operators
2018-02-14 07:28:25 +01:00
Daniel Krebs
503d6b7f07
lib/ip: cleanup formatting and comments of IpCore's member variables
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
ef5f6fa3a8
lib/card: use memory manager to store vfio mapping
2018-02-14 07:27:37 +01:00
Daniel Krebs
5b0013b335
lib/card: add IP lookup by VLNV
2018-02-14 07:27:37 +01:00
Daniel Krebs
c3382b9e18
lib/card: pass string as const reference to lookupIp()
2018-02-14 07:27:37 +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 Krebs
ec8e9a1cd1
lib/ip-node: remove dangling function prototype
2018-01-30 15:13:23 +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
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
09534e83a6
lib/plugin: make type an argument of constructor
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
81db98e448
lib/ip-node: implement loopback mode if available
2018-01-10 11:02:08 +01:00
daniel-k
6ee860971a
ips/intc: supply methods to use with new IrqPort
2018-01-10 11:02:08 +01:00
daniel-k
c710a95352
lib/ip: generalize getting mapped addresses
2018-01-10 11:02:08 +01:00
daniel-k
4035aab49f
lib/ip: dependencies cannot be private
...
Has to be used by derived classes of course!
2018-01-10 11:02:08 +01:00
daniel-k
e96b08c53c
lib/ip: implement more comparison operators for IpCore
2018-01-10 11:02:08 +01:00
daniel-k
8345a15db0
lib/card: implement IP lookup
...
Search for an initialized IP by name.
2018-01-10 11:02:08 +01:00
daniel-k
af234e29c6
lib/ip: provide default implementation for getDependencies()
2018-01-10 11:02:08 +01:00
daniel-k
cb25861c7e
ip: remove excess space in output of identifier
2018-01-10 11:02:08 +01:00