-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/2942/
-----------------------------------------------------------

Review request for Default.


Repository: gem5


Description
-------

Changeset 10921:ccef953bfcce
---------------------------
dev: Add a simple DMA engine that can be used by devices

Add a simple DMA engine that sits behind a FIFO. This engine can be
used by devices that need to read large amounts of data (e.g., display
controllers). Most aspects of the controller, such as FIFO size,
maximum number of in-flight accesses, and maximum request sizes can be
configured.

The DMA copies blocks of data into its FIFO. Transfers are initiated
with a call to startFill() command that takes a start address and a
size. Advanced users can create a derived class that overrides the
onEndOfBlock() callback that is triggered when the last request to a
block has been issued. At this point, the DMA engine is ready to start
fetching a new block of data, potentially from a different address
range.

The DMA engine stops issuing new requests while it is draining. Care
must be taken to ensure that devices that are fed by a DMA engine are
suspended while the system is draining to avoid buffer underruns.


Diffs
-----

  src/dev/dma_device.hh 5c76426fd9ee 
  src/dev/dma_device.cc 5c76426fd9ee 

Diff: http://reviews.gem5.org/r/2942/diff/


Testing
-------

Tested extensively with a new version of the HDLCD display controller model (to 
appear in a separate patch).


Thanks,

Andreas Sandberg

_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to