summaryrefslogtreecommitdiff
path: root/configs/common/CpuConfig.py
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2017-04-27 20:47:10 -0700
committerGabe Black <gabeblack@google.com>2017-05-06 20:49:10 +0000
commit306dea1eb84b9a2076adb626c269d796d0e4bc10 (patch)
treea701cb21532b43d84fdffff0b2308036d8ffc21a /configs/common/CpuConfig.py
parent8020c689f9d9c77585ef9c5f8c627f1f2a7368f8 (diff)
downloadgem5-306dea1eb84b9a2076adb626c269d796d0e4bc10.tar.xz
config: Remove support for CPU aliases.
This was added for backwards compatability, but it adds a decent amount of complexity. The table below shows what CPU class name to use in place of a given alias. +==========+========================================================+ | Alias | CPU class | +==========+========================================================+ | timing | TimingSimpleCPU | | atomic | AtomicSimpleCPU | | minor | MinorCPU | | detailed | DrivO3CPU | | kvm | ArmKvmCPU, ArmV8KvmCPU or X86KvmCPU, depending on arch | | trace | TraceCPU | +==========+========================================================+ Change-Id: I251c4f64b7869c6b64dd25b36967ae240f01ef08 Reviewed-on: https://gem5-review.googlesource.com/2940 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'configs/common/CpuConfig.py')
-rw-r--r--configs/common/CpuConfig.py44
1 files changed, 4 insertions, 40 deletions
diff --git a/configs/common/CpuConfig.py b/configs/common/CpuConfig.py
index 757ec2d08..8810622aa 100644
--- a/configs/common/CpuConfig.py
+++ b/configs/common/CpuConfig.py
@@ -38,28 +38,11 @@
import m5.objects
import inspect
import sys
-from textwrap import TextWrapper
+from textwrap import TextWrapper
# Dictionary of mapping names of real CPU models to classes.
_cpu_classes = {}
-# CPU aliases. The CPUs listed here might not be compiled, we make
-# sure they exist before we add them to the CPU list. A target may be
-# specified as a tuple, in which case the first available CPU model in
-# the tuple will be used as the target.
-_cpu_aliases_all = [
- ("timing", "TimingSimpleCPU"),
- ("atomic", "AtomicSimpleCPU"),
- ("minor", "MinorCPU"),
- ("detailed", "DerivO3CPU"),
- ("kvm", ("ArmKvmCPU", "ArmV8KvmCPU", "X86KvmCPU")),
- ("trace", "TraceCPU"),
- ]
-
-# Filtered list of aliases. Only aliases for existing CPUs exist in
-# this list.
-_cpu_aliases = {}
-
def is_cpu_class(cls):
"""Determine if a class is a CPU that can be instantiated"""
@@ -76,10 +59,8 @@ def is_cpu_class(cls):
def get(name):
"""Get a CPU class from a user provided class name or alias."""
- real_name = _cpu_aliases.get(name, name)
-
try:
- cpu_class = _cpu_classes[real_name]
+ cpu_class = _cpu_classes[name]
return cpu_class
except KeyError:
print "%s is not a valid CPU model." % (name,)
@@ -100,14 +81,9 @@ def print_cpu_list():
for line in doc_wrapper.wrap(doc):
print line
- if _cpu_aliases:
- print "\nCPU aliases:"
- for alias, target in _cpu_aliases.items():
- print "\t%s => %s" % (alias, target)
-
def cpu_names():
"""Return a list of valid CPU names."""
- return _cpu_classes.keys() + _cpu_aliases.keys()
+ return _cpu_classes.keys()
def config_etrace(cpu_cls, cpu_list, options):
if issubclass(cpu_cls, m5.objects.DerivO3CPU):
@@ -137,22 +113,10 @@ def config_etrace(cpu_cls, cpu_list, options):
# in the normal object hierarchy, so we have to add it manually.
try:
from O3_ARM_v7a import O3_ARM_v7a_3
- _cpu_classes["arm_detailed"] = O3_ARM_v7a_3
+ _cpu_classes["O3_ARM_v7a_3"] = O3_ARM_v7a_3
except:
pass
# Add all CPUs in the object hierarchy.
for name, cls in inspect.getmembers(m5.objects, is_cpu_class):
_cpu_classes[name] = cls
-
-for alias, target in _cpu_aliases_all:
- if isinstance(target, tuple):
- # Some aliases contain a list of CPU model sorted in priority
- # order. Use the first target that's available.
- for t in target:
- if t in _cpu_classes:
- _cpu_aliases[alias] = t
- break
- elif target in _cpu_classes:
- # Normal alias
- _cpu_aliases[alias] = target