dev: Generate DMA packets as needed.
authorGabe Black <gabe.black@gmail.com>
Thu, 24 Dec 2020 12:15:56 +0000 (04:15 -0800)
committerGabe Black <gabe.black@gmail.com>
Wed, 13 Jan 2021 01:28:46 +0000 (01:28 +0000)
commit93c0fdfb1232cb32ba6b77d0f90be0bff5b63119
treeee60a673b8510e621daf17e35450bea9193ba041
parent65828b2735706ff7ec3aea5fb9e38d1e6f0be300
dev: Generate DMA packets as needed.

Instead of generating all of the DMA packets when a request is
initiated, keep track of the necessary properties and generate them as
needed.

The primary benefit of this approach is that if we don't actually need
packets, for instance if we can satisfy the request using a memory
backdoor, we can just skip them. Otherwise we'll have wasted time
creating them, and then have to clean them up.

Change-Id: I04d399fb7bce1ff9a44979c311be356baf2db555
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/38717
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/dev/dma_device.cc
src/dev/dma_device.hh