summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2011-10-30 17:38:09 -0700
committerGabe Black <gblack@eecs.umich.edu>2011-10-30 17:38:09 -0700
commit37a437893eccaf84053627068a4de41dde8bc0b0 (patch)
treec50cb208a5e1a062a7d3ad91df1b6c1221eb4080
parentb144f05b535697629b08767bf77b5b80f91a34f2 (diff)
downloadgem5-37a437893eccaf84053627068a4de41dde8bc0b0.tar.xz
System: Push boot_cpu_frequency down into the subclasses that actually use it.
This parameter depends on a number of coincidences to work properly. First, there must be an array assigned to system called "cpu" even though there's no parameter called that. Second, the items in the "cpu" array have to have a "clock" parameter which has a "frequency" member. This is true of the normal CPUs, but isn't true of the memory tester CPUs. This happened to work before because the memory tester CPUs were only used in SE mode where this parameter was being excluded. Since everything is being pulled into a common binary, this won't work any more. Since the boot_cpu_frequency parameter is only used by Alpha's Linux System object (and Mips's through copy and paste), the definition of that parameter is moved down to those objects specifically.
-rw-r--r--src/arch/alpha/AlphaSystem.py4
-rw-r--r--src/arch/mips/MipsSystem.py3
-rw-r--r--src/sim/System.py2
3 files changed, 7 insertions, 2 deletions
diff --git a/src/arch/alpha/AlphaSystem.py b/src/arch/alpha/AlphaSystem.py
index f6d9eb4c6..fcbe81edd 100644
--- a/src/arch/alpha/AlphaSystem.py
+++ b/src/arch/alpha/AlphaSystem.py
@@ -27,6 +27,7 @@
# Authors: Nathan Binkert
from m5.params import *
+from m5.proxy import *
from System import System
class AlphaSystem(System):
@@ -42,6 +43,9 @@ class LinuxAlphaSystem(AlphaSystem):
system_type = 34
system_rev = 1 << 10
+ boot_cpu_frequency = Param.Frequency(Self.cpu[0].clock.frequency,
+ "boot processor frequency")
+
class FreebsdAlphaSystem(AlphaSystem):
type = 'FreebsdAlphaSystem'
system_type = 34
diff --git a/src/arch/mips/MipsSystem.py b/src/arch/mips/MipsSystem.py
index fc4f1efa3..c8df257e0 100644
--- a/src/arch/mips/MipsSystem.py
+++ b/src/arch/mips/MipsSystem.py
@@ -49,6 +49,9 @@ if buildEnv['FULL_SYSTEM']:
system_type = 34
system_rev = 1 << 10
+ boot_cpu_frequency = Param.Frequency(Self.cpu[0].clock.frequency,
+ "boot processor frequency")
+
class BareIronMipsSystem(MipsSystem):
type = 'BareIronMipsSystem'
bare_iron = True
diff --git a/src/sim/System.py b/src/sim/System.py
index 948be7e77..25643099d 100644
--- a/src/sim/System.py
+++ b/src/sim/System.py
@@ -62,8 +62,6 @@ class System(SimObject):
work_cpus_ckpt_count = Param.Counter(0,
"create checkpoint when active cpu count value is reached")
- boot_cpu_frequency = Param.Frequency(Self.cpu[0].clock.frequency,
- "boot processor frequency")
init_param = Param.UInt64(0, "numerical value to pass into simulator")
boot_osflags = Param.String("a", "boot flags to pass to the kernel")
kernel = Param.String("", "file that contains the kernel code")