System: Push boot_cpu_frequency down into the subclasses that actually use it.
authorGabe Black <gblack@eecs.umich.edu>
Mon, 31 Oct 2011 00:38:09 +0000 (17:38 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Mon, 31 Oct 2011 00:38:09 +0000 (17:38 -0700)
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.

src/arch/alpha/AlphaSystem.py
src/arch/mips/MipsSystem.py
src/sim/System.py

index f6d9eb4c6e484a631b24695972fb7f136494c54a..fcbe81edd37efa99363744560f9bb2764f95028d 100644 (file)
@@ -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
index fc4f1efa351f2b8ac94a3ecdb8ffc82edd79f377..c8df257e0aef27d784c1b852ceda7591cf569d55 100644 (file)
@@ -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
index 948be7e77ddd1347c404a3a3959624aa805c5bdc..25643099d33da6b9c54df837103ce5f43bcb876e 100644 (file)
@@ -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")