Daniel Krebs
817d206243
lib/ip: formatting cleanup and more comments
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
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
95e29f2706
memory-manager: allow for traversing address spaces
...
Major rework of the memory manager. Adds a memory translation class to
resolve addresses across address spaces and extents the memory manager
in order to do so.
2018-02-14 07:27:37 +01:00
Daniel Krebs
035c6f8b2a
lib/kernel/vfio: add function to get size of device memory region
2018-02-14 07:27:37 +01:00
Daniel Krebs
02e873e8ff
lib/ip: remove dependency graph
...
Replace by static list of VLNVs that will be initialized first.
2018-02-14 07:27:37 +01:00
Daniel Krebs
912c3729d4
lib/ip: improve readability
2018-02-14 07:26:39 +01:00
Daniel Krebs
409340433d
enable -Wall, -Wextra and -Werror and fix new errors ( fixes #20 )
2018-02-13 16:04:34 +01:00
1b6d0d7700
Merge branch 'feature/hw-testing' into feature/cpp ( closes #14 and #15 )
2018-01-30 19:38:49 +01:00
Daniel Krebs
5a7989d552
lib/memory-manager: start implementation using DirectedGraph
2018-01-30 19:16:59 +01:00
3047f5bb7a
vfio: only rebind pci device to VFIO driver if not already bound
2018-01-30 19:09:56 +01:00
293f496db0
pci: add function to get currently loaded kernel driver
2018-01-30 19:09:19 +01:00
Daniel Krebs
7582966e16
lib: first draft of memory manager
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
05131258d4
lib/card: use new logger
2018-01-16 14:52:09 +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
82204990cd
lib/card: remove unused C code
2018-01-16 14:46:59 +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
44e78643ea
lib/log: purge remaining of old logger
2018-01-10 15:49:53 +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
da88b15af3
lib/ip: fail making if configureJson() fails
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
c710a95352
lib/ip: generalize getting mapped addresses
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
25d5552197
ips/intc: remove early return in start()
2018-01-10 11:02:08 +01:00
daniel-k
f94476b716
ip/node: rename OtherIpNode
to StreamPort
and other
to to
2018-01-10 11:02:08 +01:00
daniel-k
4d3e4dd931
ips: make irqs a list
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
12024d53e5
lib/ip-node: add IpNode class, IpCore which has streaming ports
2018-01-10 11:02:08 +01:00
daniel-k
f3f0f4d630
lib/ip: pass ip core by reference to factory instead of unique_ptr
2018-01-10 11:02:08 +01:00
daniel-k
9676a9535d
lib/ip: re-add IRQ to IpCore
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
3d0afd671e
lib/utils: add string tokenizer
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
09815a661e
rough implementation of a C++ style logger class
...
with many sharp edges :)
2018-01-10 11:02:08 +01:00
daniel-k
b0e55e6fb2
current wip implementing card, many changes in ip too
2018-01-10 11:02:08 +01:00
daniel-k
63a443527c
plugin: treat empty name in lookup() as wildcard
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
a194f8d0b2
plugin: require name and add method to dump list
2018-01-10 11:02:08 +01:00