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
aa1592ae2b
utils: read_random() now returns the number of bytes written
2018-03-26 16:17:26 +02:00
Daniel Krebs
2724622787
kernel/pci: make some arguments const and fix debug output
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
e8ef3e4380
lib/memory-manager: pass strings as const reference
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
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
33ba634d87
lib/directed-graph: add findVertex() and minor refactoring
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
f621cfc984
Merge branch 'fix/directed_graph_loop_detection_bug' into 'develop'
...
directed-graph: fix bug in loop detection
See merge request acs/public/villas/VILLASfpga-code!1
2018-02-14 07:22:59 +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
6dab50824b
directed-graph: fix bug in loop detection
2018-02-13 09:54:31 +01:00
8206f867a5
logging: use similar log style in all modules
2018-01-31 20:24:11 +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
Daniel Krebs
ba7531ac46
lib/graph: allow stringifying of vertex and edge derived types
...
This yields nices debug messages and a much nice dump().
2018-01-30 19:16:59 +01:00
Daniel Krebs
22ce8f2b3f
lib/graph: slightly change interface to allow for custom edges
2018-01-30 19:16:59 +01:00
Daniel Krebs
201bbde4b6
lib/graph: move identifiers into classes
2018-01-30 19:16:59 +01:00
293f496db0
pci: add function to get currently loaded kernel driver
2018-01-30 19:09:19 +01:00
Daniel Krebs
27c67f206e
lib/graph: add path-finding with loop detection and corresponding unittest
2018-01-30 17:28:42 +01:00
Daniel Krebs
ec8e9a1cd1
lib/ip-node: remove dangling function prototype
2018-01-30 15:13:23 +01:00
Daniel Krebs
7582966e16
lib: first draft of memory manager
2018-01-30 15:13:23 +01:00
Daniel Krebs
f6c02b8429
lib: add directed graph implementation incl. unittest
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
f642fa6428
log: provide more macros for text colors
2018-01-23 14:42:26 +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
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
81db98e448
lib/ip-node: implement loopback mode if available
2018-01-10 11:02:08 +01:00