mem: Snoop into caches on uncacheable accesses
authorAndreas Hansson <andreas.hansson@arm.com>
Tue, 5 May 2015 07:22:29 +0000 (03:22 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Tue, 5 May 2015 07:22:29 +0000 (03:22 -0400)
commit36f29496a019af4483430f17c4a6028b8dcfb2cf
tree28da4a1a1f29340fa7c95896427bf9c15da582d0
parent554ddc7c074b0d9793a6c4972e1c449a57b94590
mem: Snoop into caches on uncacheable accesses

This patch takes a last step in fixing issues related to uncacheable
accesses. We do not separate uncacheable memory from uncacheable
devices, and in cases where it is really memory, there are valid
scenarios where we need to snoop since we do not support cache
maintenance instructions (yet). On snooping an uncacheable access we
thus provide data if possible. In essence this makes uncacheable
accesses IO coherent.

The snoop filter is also queried to steer the snoops, but not updated
since the uncacheable accesses do not allocate a block.
src/cpu/o3/cpu.cc
src/dev/dma_device.cc
src/mem/cache/base.cc
src/mem/cache/base.hh
src/mem/cache/cache_impl.hh
src/mem/cache/mshr.cc
src/mem/coherent_xbar.cc
src/mem/snoop_filter.cc