diff options
-rw-r--r-- | configs/common/CacheConfig.py | 5 | ||||
-rw-r--r-- | tests/configs/base_config.py | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/configs/common/CacheConfig.py b/configs/common/CacheConfig.py index 1a2c87828..e4114355f 100644 --- a/configs/common/CacheConfig.py +++ b/configs/common/CacheConfig.py @@ -153,6 +153,11 @@ def config_cache(options, system): else: system.cpu[i].connectAllPorts(system.membus) + # Add a snoop filter to the membus if there are caches above it + if (options.l2cache or options.caches) and \ + (system.membus.snoop_filter == NULL): + system.membus.snoop_filter = SnoopFilter() + return system # ExternalSlave provides a "port", but when that port connects to a cache, diff --git a/tests/configs/base_config.py b/tests/configs/base_config.py index 3f28ada5d..185c00020 100644 --- a/tests/configs/base_config.py +++ b/tests/configs/base_config.py @@ -126,6 +126,9 @@ class BaseSystem(object): cpu.createInterruptController() cpu.connectAllPorts(sha_bus if sha_bus != None else system.membus, system.membus) + # System has caches before the membus -> add snoop filter + if sha_bus and system.membus.snoop_filter == NULL: + system.membus.snoop_filter = SnoopFilter() def init_kvm(self, system): """Do KVM-specific system initialization. @@ -149,6 +152,9 @@ class BaseSystem(object): self.init_kvm(system) sha_bus = self.create_caches_shared(system) + # System has caches before the membus -> add snoop filter + if sha_bus and system.membus.snoop_filter == NULL: + system.membus.snoop_filter = SnoopFilter() for cpu in system.cpu: self.init_cpu(system, cpu, sha_bus) |