diff --git a/src/python/gem5/components/processors/base_cpu_processor.py b/src/python/gem5/components/processors/base_cpu_processor.py index d311a0fdc0..9a7561587a 100644 --- a/src/python/gem5/components/processors/base_cpu_processor.py +++ b/src/python/gem5/components/processors/base_cpu_processor.py @@ -97,6 +97,7 @@ class BaseCPUProcessor(AbstractProcessor): "'atomic_noncaching' memory mode. This will skip caching " "completely." ) + board.set_mem_mode(MemMode.ATOMIC_NONCACHING) else: board.set_mem_mode(MemMode.ATOMIC) else: diff --git a/src/python/gem5/components/processors/simple_switchable_processor.py b/src/python/gem5/components/processors/simple_switchable_processor.py index 56603fa98b..e3978412c3 100644 --- a/src/python/gem5/components/processors/simple_switchable_processor.py +++ b/src/python/gem5/components/processors/simple_switchable_processor.py @@ -103,6 +103,16 @@ class SimpleSwitchableProcessor(SwitchableProcessor): def incorporate_processor(self, board: AbstractBoard) -> None: super().incorporate_processor(board=board) + if ( + board.get_cache_hierarchy().is_ruby() + and self._mem_mode == MemMode.ATOMIC + ): + warn( + "Using an atomic core with Ruby will result in " + "'atomic_noncaching' memory mode. This will skip caching " + "completely." + ) + self._mem_mode = MemMode.ATOMIC_NONCACHING board.set_mem_mode(self._mem_mode) def switch(self):