aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: a8fbf4f051009e1906ba10c5b71f8c67caa48637 (plain)
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

                                _            _   _ 
                          _   _(_) ___   ___| |_| |
                         | | | | |/ _ \ / __| __| |
                         | |_| | | (_) | (__| |_| |
                          \__,_|_|\___/ \___|\__|_|
 

trivial utility for manipulating simple Linux UIO devices ("Userspace I/O").
eg, reading and writing bytes to memory mapped devices or monitoring
interrupts.
can list all devices and their mappings.
little-endian by default.

-------------------------------------------------------------------------------

gcc uioctl.c -o uioctl

-------------------------------------------------------------------------------

./uioctl -h
little-endian by default
    -w  select word width (default: 4)
    -s  size of mmap (default: base + length, rounded up to PAGE_SIZE)

./uioctl /dev/uio0 0 -n 100 -w 1 -r 0
./uioctl /dev/uio0 0x818 0
./uioctl /dev/uio0 -m
./uioctl -l

BUT WAIT?  hexdump -C /dev/uio0 -s 0x

-------------------------------------------------------------------------------

Userspace I/O drivers in a realtime context
https://www.osadl.org/fileadmin/dam/rtlws/12/Koch.pdf

UIO: user-space drivers (2007)
https://lwn.net/Articles/232575/

The Userspace I/O HOWTO (2006-2009)
https://www.kernel.org/doc/htmldocs/uio-howto/

Simple userland drivers for FPGA interfaces (eg, AXI)
http://svenand.blogdrive.com/archive/150.html

devmem2.c: Simple program to read/write from/to any location in memory
http://sources.buildroot.net/devmem2.c

pydevmem
https://github.com/kylemanna/pydevmem