/alps/pcitool

To get this branch, use:
bzr branch http://darksoft.org/webbzr/alps/pcitool
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
High Priority (we would need it for IPE Camera)
=============
 1. DMA without ring buffer, just send data in the newly configured buffers while there is the space...
    * We need a way to add (remove?) pages into the same use. Some times in the middle of existing pages, i.e. tructuring seems complicated.
    * vmsplice them out trough the device?
 2. Allow DMA into the user pages
    * Dangerous as hardware accessed memory is only valid during life-time of one application. Instead the kernel pages can be re-assembled as big buffer using vmmngr_map_page (?)
 3. Use huge-pages + dynamicaly configure DMA page size
 4. DirectGMA/GPUDirect support
 5. High-speed interface to Infiniband
 
Normal Priority (it would make just few things a bit easier)
===============
 1. Integrate base streaming model into the pcitool
 2. Implement pcilib_configure_autotrigger
 3. Really check the specified min, max values while setting registers
 4. Provide OR and AND operations on registers in cli
 5. Support writting a data from a binary file in cli

Low Priority (only as generalization for other projects)
============
 1. We managed kmem performance using next kmem prediction, but it is still wise to provide additionally a binary tree for faster search
 2. Support for Network Registers and Network DMA
 3. Define a syntax for register dependencies / delays (?)
 4. Use pthread_condition_t instead of polling
 5. Support FIFO reads/writes from/to registers
 6. OPC UA interface to the registers
 7. Generate XML models from SystemRDL descriptions

Performance
===========
 1. Even with fully algined data, glibc defaults to __memcpy_sse2_unaligned (called from ipecamera_data_callback and fastwriter_push). Can we do something?