litex.git
9 years agomigen/genlib/record: add leave_out parameter to connect
Florent Kermarrec [Fri, 22 May 2015 22:22:13 +0000 (00:22 +0200)]
migen/genlib/record: add leave_out parameter to connect

Modules doing dataflow adaptation often need to connect most of the signals between endpoints except the one concerned by the adaptation.
This new parameter ease that by avoid manual connection of all signals.

9 years agoexample of instance usage
Guy Hutchison [Tue, 19 May 2015 17:14:31 +0000 (01:14 +0800)]
example of instance usage

9 years agovpi: avoid some code duplication between windows and linux
Florent Kermarrec [Wed, 13 May 2015 08:48:08 +0000 (10:48 +0200)]
vpi: avoid some code duplication between windows and linux

9 years agomigen/actorlib/spi: apply missing CSR renaming
Florent Kermarrec [Wed, 13 May 2015 08:17:31 +0000 (10:17 +0200)]
migen/actorlib/spi: apply missing CSR renaming

9 years agovpi: cleanup (thanks sb)
Florent Kermarrec [Wed, 13 May 2015 08:13:14 +0000 (10:13 +0200)]
vpi: cleanup (thanks sb)

9 years agovpi: fix and simplify windows simulation (ends of msg were ignored)
Florent Kermarrec [Tue, 12 May 2015 23:20:57 +0000 (01:20 +0200)]
vpi: fix and simplify windows simulation (ends of msg were ignored)

9 years agoMerge branch 'master' of https://github.com/m-labs/migen
Florent Kermarrec [Tue, 12 May 2015 14:16:24 +0000 (16:16 +0200)]
Merge branch 'master' of https://github.com/m-labs/migen

9 years agomigen/genlib/misc: replace Timeout with WaitTimer from artiq
Florent Kermarrec [Tue, 12 May 2015 13:45:16 +0000 (15:45 +0200)]
migen/genlib/misc: replace Timeout with WaitTimer from artiq

9 years agocores: replace Timeout with new WaitTimer
Florent Kermarrec [Tue, 12 May 2015 13:49:20 +0000 (15:49 +0200)]
cores: replace Timeout with new WaitTimer

9 years agotravis: install conda dependencies after activating the virtual env
Yann Sionneau [Tue, 12 May 2015 12:06:16 +0000 (14:06 +0200)]
travis: install conda dependencies after activating the virtual env

9 years agotravis: get-anaconda.sh does not take args anymore
Yann Sionneau [Tue, 12 May 2015 11:58:08 +0000 (13:58 +0200)]
travis: get-anaconda.sh does not take args anymore

9 years agouart: rename wishbone to bridge
Florent Kermarrec [Sat, 9 May 2015 14:24:28 +0000 (16:24 +0200)]
uart: rename wishbone to bridge

9 years agouart: remove litescope dependency for UARTWishboneBridge and remove frontend
Florent Kermarrec [Sat, 9 May 2015 13:48:54 +0000 (15:48 +0200)]
uart: remove litescope dependency for UARTWishboneBridge and remove frontend

9 years agoWindows simulation support
William D. Jones [Sat, 9 May 2015 13:09:32 +0000 (21:09 +0800)]
Windows simulation support

9 years agoliteusb/frontend/dma: remove +4 to length for CRC (we'll do it in core)
Florent Kermarrec [Thu, 7 May 2015 18:03:55 +0000 (20:03 +0200)]
liteusb/frontend/dma: remove +4 to length for CRC (we'll do it in core)

9 years agoise: move -user_new_parser to xst_opt
Robert Jordens [Fri, 8 May 2015 00:18:56 +0000 (18:18 -0600)]
ise: move -user_new_parser to xst_opt

9 years agoliteusb/phy/ft245: rename "ftdi" clock domain to "usb"
Florent Kermarrec [Thu, 7 May 2015 18:03:12 +0000 (20:03 +0200)]
liteusb/phy/ft245: rename "ftdi" clock domain to "usb"

9 years agolitesata: fix packets figure in frontend doc
Florent Kermarrec [Thu, 7 May 2015 09:06:05 +0000 (11:06 +0200)]
litesata: fix packets figure in frontend doc

9 years agoREADME: add note about submodules
Sebastien Bourdeauducq [Thu, 7 May 2015 08:29:30 +0000 (16:29 +0800)]
README: add note about submodules

9 years agolitesata: add doc for frontend
Florent Kermarrec [Wed, 6 May 2015 01:51:02 +0000 (03:51 +0200)]
litesata: add doc for frontend

9 years agolitesata: cleanup README/doc
Florent Kermarrec [Wed, 6 May 2015 00:02:22 +0000 (02:02 +0200)]
litesata: cleanup README/doc

9 years agolitesata: use (some) settings from vivado 2015.1, try to follow all ug476 recommendat...
Florent Kermarrec [Tue, 5 May 2015 23:33:02 +0000 (01:33 +0200)]
litesata: use (some) settings from vivado 2015.1, try to follow all ug476 recommendations to initialize GTX (...), remove automatic reset on top.

Works fine @ 3Gbps, still not working @6.0Gbps

9 years agospiflash: fix miso bitbang with large DQ
Sebastien Bourdeauducq [Tue, 5 May 2015 16:05:25 +0000 (00:05 +0800)]
spiflash: fix miso bitbang with large DQ

9 years agosoc/sdram: Vivado 2015.1 still does not fix issue with L2 cache, update comment...
Florent Kermarrec [Mon, 4 May 2015 10:28:49 +0000 (12:28 +0200)]
soc/sdram: Vivado 2015.1 still does not fix issue with L2 cache, update comment...

9 years agomisoclib/cpu: merge git.py in identifier
Florent Kermarrec [Sat, 2 May 2015 16:42:33 +0000 (18:42 +0200)]
misoclib/cpu: merge git.py in identifier

9 years agoliteusb: add simple example design with wishbone bridge and software to control it
Florent Kermarrec [Sat, 2 May 2015 15:39:22 +0000 (17:39 +0200)]
liteusb: add simple example design with wishbone bridge and software to control it

9 years agorename shadow_address to shadow_base (more appropriate) and use | instead of + (as...
Florent Kermarrec [Sat, 2 May 2015 14:57:32 +0000 (16:57 +0200)]
rename shadow_address to shadow_base (more appropriate) and use | instead of + (as done in artiq)

9 years agoliteeth/core/mac: minor cleanup
Florent Kermarrec [Sat, 2 May 2015 14:48:57 +0000 (16:48 +0200)]
liteeth/core/mac: minor cleanup

9 years agoliteusb/frontend/wishbone: use new packetized mode (allow grouping response in a...
Florent Kermarrec [Sat, 2 May 2015 14:15:58 +0000 (16:15 +0200)]
liteusb/frontend/wishbone: use new packetized mode (allow grouping response in a single packet)

9 years agolitescope/frontend/wishbone: add support for packetized mode
Florent Kermarrec [Sat, 2 May 2015 14:15:08 +0000 (16:15 +0200)]
litescope/frontend/wishbone: add support for packetized mode

9 years agoliteusb/software/wishbone: optimize writes/reads (send a single packet for a command)
Florent Kermarrec [Sat, 2 May 2015 13:25:40 +0000 (15:25 +0200)]
liteusb/software/wishbone: optimize writes/reads (send a single packet for a command)

9 years agodo more test with last changes fix small issues
Florent Kermarrec [Sat, 2 May 2015 12:26:19 +0000 (14:26 +0200)]
do more test with last changes fix small issues

9 years agoliteeth: move mac to core
Florent Kermarrec [Sat, 2 May 2015 10:55:51 +0000 (12:55 +0200)]
liteeth: move mac to core

9 years agocores: avoid having too much directories when possible (for simple cores or cores...
Florent Kermarrec [Sat, 2 May 2015 09:14:55 +0000 (11:14 +0200)]
cores: avoid having too much directories when possible (for simple cores or cores contained in a single file)

9 years agouse similar names for wishbone bridges and move wishbone drivers to [core]/software
Florent Kermarrec [Sat, 2 May 2015 08:24:56 +0000 (10:24 +0200)]
use similar names for wishbone bridges and move wishbone drivers to [core]/software

9 years agotargets/pipistrello: add flash sizes
Zach Smith [Fri, 1 May 2015 18:41:37 +0000 (14:41 -0400)]
targets/pipistrello: add flash sizes

9 years agolitescope: add basic LiteScopeUSB2WishboneFTDIDriver (working but need to be optimized)
Florent Kermarrec [Fri, 1 May 2015 18:33:56 +0000 (20:33 +0200)]
litescope: add basic LiteScopeUSB2WishboneFTDIDriver (working but need to be optimized)

9 years agolitescope: rename host directory to software (to be coherent with others cores)
Florent Kermarrec [Fri, 1 May 2015 18:27:31 +0000 (20:27 +0200)]
litescope: rename host directory to software (to be coherent with others cores)

9 years agoliteusb: add basic wishbone frontend (We could also reuse Etherbone in the future)
Florent Kermarrec [Fri, 1 May 2015 18:20:20 +0000 (20:20 +0200)]
liteusb: add basic wishbone frontend (We could also reuse Etherbone in the future)

9 years agolitescope: fix missing source ack on LiteScopeWishboneBridge
Florent Kermarrec [Fri, 1 May 2015 18:19:49 +0000 (20:19 +0200)]
litescope: fix missing source ack on LiteScopeWishboneBridge

9 years agolitescope/bridge: create a generic wishbone bridge that can be used with different...
Florent Kermarrec [Fri, 1 May 2015 15:42:00 +0000 (17:42 +0200)]
litescope/bridge: create a generic wishbone bridge that can be used with different phys (the phy needs to provide a sink/source with 8bits data).

- we can now pass a phy to LiteScopeWishboneBridge
- LiteScopeUART2Wishbone is only a specific LiteScopeWishboneBridge
- UART mux is removed since complicated and no longer useful (we can now create easily virtual UART over Ethernet, USB or PCIe) or simply add another UART for debug.

9 years agolitescope: use full name in io.py
Florent Kermarrec [Fri, 1 May 2015 15:23:44 +0000 (17:23 +0200)]
litescope: use full name in io.py

9 years agotargets/minispartan6: add USBSoC (working, should also be usable on pipistrello)
Florent Kermarrec [Fri, 1 May 2015 14:16:48 +0000 (16:16 +0200)]
targets/minispartan6: add USBSoC (working, should also be usable on pipistrello)

9 years agoliteusb: refactor software (use python instead of libftdicom in C) and provide simple...
Florent Kermarrec [Fri, 1 May 2015 14:15:15 +0000 (16:15 +0200)]
liteusb: refactor software (use python instead of libftdicom in C) and provide simple example.

small modifications to fastftdi.c are also done to select our interface (A or B) and mode (synchronous, asynchronous)

9 years agoliteusb: continue refactoring (virtual UART and DMA working on minispartan6)
Florent Kermarrec [Fri, 1 May 2015 14:11:15 +0000 (16:11 +0200)]
liteusb: continue refactoring (virtual UART and DMA working on minispartan6)

- rename ft2232h phy to ft245.
- make crc optional
- fix depacketizer
- refactor uart (it's now only a wrapper around standard UART)
- fix and update dma

9 years agocom/uart: add tx and rx fifos.
Florent Kermarrec [Fri, 1 May 2015 13:58:10 +0000 (15:58 +0200)]
com/uart: add tx and rx fifos.

Since ressource usage is low with default depth of 16 (implemented in RAM LUTs) we don't keep old behaviour.
Tested successfully with BIOS and flterm.

9 years agomibuild/platforms/pipistrello: add _n suffix to usb fifo pins
Florent Kermarrec [Fri, 1 May 2015 13:49:33 +0000 (15:49 +0200)]
mibuild/platforms/pipistrello: add _n suffix to usb fifo pins

9 years agomibuild/platforms/minispartan6: rename ftdi_fifo to usb_fifo and fix rd_n/wr_n swap
Florent Kermarrec [Fri, 1 May 2015 13:48:42 +0000 (15:48 +0200)]
mibuild/platforms/minispartan6: rename ftdi_fifo to usb_fifo and fix rd_n/wr_n swap

9 years agodoc: remove cordic
Sebastien Bourdeauducq [Fri, 1 May 2015 06:07:38 +0000 (14:07 +0800)]
doc: remove cordic

9 years agoadd examples tests
Alain Péteut [Thu, 30 Apr 2015 16:49:58 +0000 (00:49 +0800)]
add examples tests

9 years agoliteusb: add ft2232h_sync_tb
Florent Kermarrec [Tue, 28 Apr 2015 17:05:34 +0000 (19:05 +0200)]
liteusb: add ft2232h_sync_tb

9 years agoliteusb: add FT2232HPHYAsynchronous PHY (Minispartan6+, Pipistrello), needs more...
Florent Kermarrec [Tue, 28 Apr 2015 17:00:13 +0000 (19:00 +0200)]
liteusb: add FT2232HPHYAsynchronous PHY (Minispartan6+, Pipistrello), needs more simulations and on-board tests

9 years agoliteusb: continue refactoring and add core_tb (should be almost OK)
Florent Kermarrec [Tue, 28 Apr 2015 16:58:38 +0000 (18:58 +0200)]
liteusb: continue refactoring and add core_tb (should be almost OK)

9 years agomisoclib/com/uart: remove liteeth dependency (copy/paste error)
Florent Kermarrec [Tue, 28 Apr 2015 16:53:46 +0000 (18:53 +0200)]
misoclib/com/uart: remove liteeth dependency (copy/paste error)

9 years agoliteeth: use Migen's Packetizer/Depacketizer, remove generic and move etherbone/tty...
Florent Kermarrec [Tue, 28 Apr 2015 16:51:40 +0000 (18:51 +0200)]
liteeth: use Migen's Packetizer/Depacketizer, remove generic and move etherbone/tty to frontend

9 years agomigen/actorlib/packet: add Packetizer and Depacketizer
Florent Kermarrec [Tue, 28 Apr 2015 16:44:05 +0000 (18:44 +0200)]
migen/actorlib/packet: add Packetizer and Depacketizer

9 years agomigen/genlib: avoid use of floating point in reverse_bytes
Florent Kermarrec [Mon, 27 Apr 2015 19:04:18 +0000 (21:04 +0200)]
migen/genlib: avoid use of floating point in reverse_bytes

9 years agolitesata: cleanup link
Florent Kermarrec [Mon, 27 Apr 2015 13:33:01 +0000 (15:33 +0200)]
litesata: cleanup link

9 years agoMerge branch 'master' of https://github.com/m-labs/misoc
Florent Kermarrec [Mon, 27 Apr 2015 13:28:08 +0000 (15:28 +0200)]
Merge branch 'master' of https://github.com/m-labs/misoc

9 years agoliteusb: begin refactoring and simplification (wip)
Florent Kermarrec [Mon, 27 Apr 2015 13:19:54 +0000 (15:19 +0200)]
liteusb: begin refactoring and simplification (wip)

9 years agomigen/actorlib: add packet.py to manage dataflow packets (Arbiter, Dispatcher, Header...
Florent Kermarrec [Mon, 27 Apr 2015 13:14:38 +0000 (15:14 +0200)]
migen/actorlib: add packet.py to manage dataflow packets (Arbiter, Dispatcher, Header definitions, Buffer)

9 years agomigen/actorlib/misc: add BufferizeEndpoints
Florent Kermarrec [Mon, 27 Apr 2015 13:12:01 +0000 (15:12 +0200)]
migen/actorlib/misc: add BufferizeEndpoints

BufferizeEndpoints provides an easy way improve timings of chained dataflow modules and avoid polluting code with internals buffers.

9 years agomigen/genlib/misc: add reverse_bytes
Florent Kermarrec [Mon, 27 Apr 2015 13:08:10 +0000 (15:08 +0200)]
migen/genlib/misc: add reverse_bytes

9 years agoliteeth: use new Migen modules from actorlib (avoid duplications between cores)
Florent Kermarrec [Mon, 27 Apr 2015 13:06:37 +0000 (15:06 +0200)]
liteeth: use new Migen modules from actorlib (avoid duplications between cores)

9 years agolitepcie: use new Migen modules from actorlib (avoid duplications between cores)
Florent Kermarrec [Mon, 27 Apr 2015 12:59:29 +0000 (14:59 +0200)]
litepcie: use new Migen modules from actorlib (avoid duplications between cores)

9 years agolitesata: split hdd model (phy, link, transport, command & hdd) and update simulations
Florent Kermarrec [Mon, 27 Apr 2015 12:50:43 +0000 (14:50 +0200)]
litesata: split hdd model (phy, link, transport, command & hdd) and update simulations

9 years agolitesata: use new Migen modules from actorlib/packet.py (avoid duplications between...
Florent Kermarrec [Mon, 27 Apr 2015 12:48:14 +0000 (14:48 +0200)]
litesata: use new Migen modules from actorlib/packet.py (avoid duplications between cores)

9 years agolitesata: remove icarus_workaround.patch (obsolete)
Florent Kermarrec [Mon, 27 Apr 2015 12:44:54 +0000 (14:44 +0200)]
litesata: remove icarus_workaround.patch (obsolete)

9 years agospiflash: use SoC defines, add write_to_flash function
Sebastien Bourdeauducq [Mon, 27 Apr 2015 05:42:32 +0000 (13:42 +0800)]
spiflash: use SoC defines, add write_to_flash function

9 years agoliteeth: do MII/GMII detection in gateware for gmii_mii phy
Florent Kermarrec [Sun, 26 Apr 2015 15:32:25 +0000 (17:32 +0200)]
liteeth: do MII/GMII detection in gateware for gmii_mii phy

9 years agoliteeth/phy/gmii: add default value for pads_register
Florent Kermarrec [Sun, 26 Apr 2015 12:52:05 +0000 (14:52 +0200)]
liteeth/phy/gmii: add default value for pads_register

9 years agoliteeth: fix and improve 10/100/1000Mbps speed auto detection
Florent Kermarrec [Sun, 26 Apr 2015 12:13:09 +0000 (14:13 +0200)]
liteeth: fix and improve 10/100/1000Mbps speed auto detection

9 years agoAdd a command line option (-use_new_parser yes) to Xilinx XST to force use of the...
William D. Jones [Sat, 25 Apr 2015 12:29:08 +0000 (08:29 -0400)]
Add a command line option (-use_new_parser yes) to Xilinx XST to force use of the newer parser for older FPGAs.

9 years agomigen/test: for now desactivate test_generic_syntax (travis-ci's Verilator needs...
Florent Kermarrec [Fri, 24 Apr 2015 11:24:52 +0000 (13:24 +0200)]
migen/test: for now desactivate test_generic_syntax (travis-ci's Verilator needs to be upgraded?)

9 years agomigen/fhdl/verilog: _printheader/_printcomb, remove default value of arguments which...
Florent Kermarrec [Fri, 24 Apr 2015 10:54:08 +0000 (12:54 +0200)]
migen/fhdl/verilog: _printheader/_printcomb, remove default value of arguments which are not used in internal functions. (thanks sb)

9 years agomigen/fhdl: give explicit names to syntax specialization when asic_syntax is used
Florent Kermarrec [Fri, 24 Apr 2015 10:14:14 +0000 (12:14 +0200)]
migen/fhdl: give explicit names to syntax specialization when asic_syntax is used

9 years agomigen/test: rename asic_syntax to test_syntax and simplify
Florent Kermarrec [Fri, 24 Apr 2015 10:00:46 +0000 (12:00 +0200)]
migen/test: rename asic_syntax to test_syntax and simplify

9 years agoliteeth/core/ip: simplify ip rx checksum control
Florent Kermarrec [Fri, 24 Apr 2015 09:31:10 +0000 (11:31 +0200)]
liteeth/core/ip: simplify ip rx checksum control

9 years agoliteeth: finish with_preamble_crc vs with_hw_preamble_crc renaming
Florent Kermarrec [Fri, 24 Apr 2015 09:30:35 +0000 (11:30 +0200)]
liteeth: finish with_preamble_crc vs with_hw_preamble_crc renaming

9 years agoliteeth/mac/core: simplify and fix padding
Florent Kermarrec [Fri, 24 Apr 2015 07:06:26 +0000 (09:06 +0200)]
liteeth/mac/core: simplify and fix padding

9 years agotravis: add conda package generation and upload + build doc
Yann Sionneau [Tue, 21 Apr 2015 18:26:40 +0000 (20:26 +0200)]
travis: add conda package generation and upload + build doc

9 years agoAdd conda recipe for Migen
Yann Sionneau [Tue, 17 Mar 2015 16:58:45 +0000 (17:58 +0100)]
Add conda recipe for Migen

9 years agodoc: fix warnings during doc build
Yann Sionneau [Wed, 22 Apr 2015 12:31:42 +0000 (14:31 +0200)]
doc: fix warnings during doc build

9 years agotravis: install verilator
Guy Hutchison [Wed, 22 Apr 2015 04:29:59 +0000 (12:29 +0800)]
travis: install verilator

9 years agotest: add test for asic_syntax
Guy Hutchison [Wed, 22 Apr 2015 04:28:46 +0000 (12:28 +0800)]
test: add test for asic_syntax

9 years agoadd Travis CI badge
Alain Péteut [Tue, 21 Apr 2015 14:58:24 +0000 (16:58 +0200)]
add Travis CI badge

9 years agofhdl/verilog: add flag to produce ASIC-friendly output
Guy Hutchison [Tue, 21 Apr 2015 01:51:39 +0000 (09:51 +0800)]
fhdl/verilog: add flag to produce ASIC-friendly output

9 years agoFixing shadowing of global index function.
Tim 'mithro' Ansell [Sun, 19 Apr 2015 06:54:57 +0000 (16:54 +1000)]
Fixing shadowing of global index function.

Fixes the following warnings;
```
cc -Wall -O2  -fPIC -Wall -Wshadow -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -I/usr/include/iverilog -c  -o ipc.o ipc.c
ipc.c: In function ‘ipc_receive’:
ipc.c:98:17: warning: declaration of ‘index’ shadows a global declaration [-Wshadow]
ipc.c:113:17: warning: declaration of ‘index’ shadows a global declaration [-Wshadow]
```

Fixes https://github.com/m-labs/migen/issues/14

9 years agomibuild/altera: cleanup
Sebastien Bourdeauducq [Mon, 20 Apr 2015 09:17:34 +0000 (17:17 +0800)]
mibuild/altera: cleanup

9 years agoRevert "add I/O standard definitions to mibuild/altera"
Sebastien Bourdeauducq [Mon, 20 Apr 2015 08:22:32 +0000 (16:22 +0800)]
Revert "add I/O standard definitions to mibuild/altera"

This reverts commit a889b4106084cd781eb0faf2482a83acfea9700e.

9 years agoadd I/O standard definitions to mibuild/altera
Alain Péteut [Mon, 20 Apr 2015 08:08:47 +0000 (10:08 +0200)]
add I/O standard definitions to mibuild/altera

9 years agoadd differential in/out support to mibuild/altera
Alain Péteut [Mon, 20 Apr 2015 08:06:24 +0000 (10:06 +0200)]
add differential in/out support to mibuild/altera

9 years agosome PEP8 cosmetic
Alain Péteut [Mon, 20 Apr 2015 08:03:08 +0000 (10:03 +0200)]
some PEP8 cosmetic

9 years agolitescope: fix read in reg.py
Florent Kermarrec [Mon, 20 Apr 2015 06:16:31 +0000 (08:16 +0200)]
litescope: fix read in reg.py

9 years agolitescope: remove repeat mode on drivers (not useful) and cleanup
Florent Kermarrec [Sat, 18 Apr 2015 13:37:38 +0000 (15:37 +0200)]
litescope: remove repeat mode on drivers (not useful) and cleanup

9 years agolite* cores: changes permissions (+x) on make.py files and on litepcie init.sh file
Florent Kermarrec [Sat, 18 Apr 2015 12:51:59 +0000 (08:51 -0400)]
lite* cores: changes permissions (+x) on make.py files and on litepcie init.sh file

9 years agolitescope: add PCIe driver (mmap/Sysfs) and use it on litepcie example design
Florent Kermarrec [Sat, 18 Apr 2015 11:53:14 +0000 (13:53 +0200)]
litescope: add PCIe driver (mmap/Sysfs) and use it on litepcie example design

9 years agolitepcie: fix asciiart in make.py
Florent Kermarrec [Fri, 17 Apr 2015 12:10:32 +0000 (14:10 +0200)]
litepcie: fix asciiart in make.py

9 years agolitepcie: add litepcie_phy_wrappers to extcores
Florent Kermarrec [Fri, 17 Apr 2015 11:52:21 +0000 (13:52 +0200)]
litepcie: add litepcie_phy_wrappers to extcores

9 years agolitepcie: add linux driver + utilities (sysfs + dma)
Florent Kermarrec [Fri, 17 Apr 2015 11:48:34 +0000 (13:48 +0200)]
litepcie: add linux driver + utilities (sysfs + dma)