Hi!
What would be the best strategy for creating a DMA engine for SE mode? Does
something like this already exist? I'd like to be able to write something
like this in the code being simulated (with dma_copy() implemented in a
library that I'd also write)

dma_copy(src_addr, target_addr, size);

and have the DMA device "eventually" copy over the required data without
the CPU doing anything else about it. It is fine for our uses for the CPU
to poll a memory location to check for DMA completion.

I was considering developing a custom dcache that would interpret a certain
address range as controlling DMA operations, so it would flush the dcache
and send memory requests for DMA operation when the CPU issues a store with
the source, target, and size to pre-configured locations in the special
address range. I don't really need it to resemble how real DMA devices work
with OS integration, interrupts, iommu etc. However, if there is a guide
somewhere on how to use the existing DmaDevice with FS mode, that would
also be of great help (I wasn't able to find one).

Thanks!
Siddharth
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to