diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-08-26 20:24:18 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-08-26 20:24:18 -0700 |
commit | 537239b278f7b8171d2eb09ef7f99c332266c48f (patch) | |
tree | 31984b63cc542f0a57ca96262477575ab0130c09 /src/cpu/ozone | |
parent | f738afb865cd82487d6300259d6e87fb50660d2a (diff) | |
download | gem5-537239b278f7b8171d2eb09ef7f99c332266c48f.tar.xz |
Address Translation: Make SE mode use an actual TLB/MMU for translation like FS.
--HG--
extra : convert_revision : a04a30df0b6246e877a1cea35420dbac94b506b1
Diffstat (limited to 'src/cpu/ozone')
-rw-r--r-- | src/cpu/ozone/checker_builder.cc | 2 | ||||
-rw-r--r-- | src/cpu/ozone/cpu.hh | 8 | ||||
-rw-r--r-- | src/cpu/ozone/cpu_builder.cc | 5 | ||||
-rw-r--r-- | src/cpu/ozone/cpu_impl.hh | 4 | ||||
-rw-r--r-- | src/cpu/ozone/simple_cpu_builder.cc | 5 | ||||
-rw-r--r-- | src/cpu/ozone/simple_params.hh | 3 |
6 files changed, 14 insertions, 13 deletions
diff --git a/src/cpu/ozone/checker_builder.cc b/src/cpu/ozone/checker_builder.cc index f813e5df2..625b2a39a 100644 --- a/src/cpu/ozone/checker_builder.cc +++ b/src/cpu/ozone/checker_builder.cc @@ -87,9 +87,9 @@ OzoneCheckerParams::create() temp2++; params->progress_interval = 0; -#if FULL_SYSTEM params->itb = itb; params->dtb = dtb; +#if FULL_SYSTEM params->system = system; params->cpu_id = cpu_id; params->profile = profile; diff --git a/src/cpu/ozone/cpu.hh b/src/cpu/ozone/cpu.hh index 92b00af26..78d0892c4 100644 --- a/src/cpu/ozone/cpu.hh +++ b/src/cpu/ozone/cpu.hh @@ -120,15 +120,15 @@ class OzoneCPU : public BaseCPU int readCpuId() { return thread->readCpuId(); } + TheISA::ITB *getITBPtr() { return cpu->itb; } + + TheISA::DTB * getDTBPtr() { return cpu->dtb; } + #if FULL_SYSTEM System *getSystemPtr() { return cpu->system; } PhysicalMemory *getPhysMemPtr() { return cpu->physmem; } - TheISA::ITB *getITBPtr() { return cpu->itb; } - - TheISA::DTB * getDTBPtr() { return cpu->dtb; } - TheISA::Kernel::Statistics *getKernelStats() { return thread->getKernelStats(); } diff --git a/src/cpu/ozone/cpu_builder.cc b/src/cpu/ozone/cpu_builder.cc index 60ee9c4f9..7edbe41c9 100644 --- a/src/cpu/ozone/cpu_builder.cc +++ b/src/cpu/ozone/cpu_builder.cc @@ -79,11 +79,12 @@ DerivOzoneCPUParams::create() params->name = name; params->numberOfThreads = actual_num_threads; + params->itb = itb; + params->dtb = dtb; + #if FULL_SYSTEM params->system = system; params->cpu_id = cpu_id; - params->itb = itb; - params->dtb = dtb; params->profile = profile; params->do_quiesce = do_quiesce; params->do_checkpoint_insts = do_checkpoint_insts; diff --git a/src/cpu/ozone/cpu_impl.hh b/src/cpu/ozone/cpu_impl.hh index d73e5768a..37a91c630 100644 --- a/src/cpu/ozone/cpu_impl.hh +++ b/src/cpu/ozone/cpu_impl.hh @@ -129,6 +129,8 @@ OzoneCPU<Impl>::OzoneCPU(Params *p) thread.inSyscall = false; thread.setStatus(ThreadContext::Suspended); + itb = p->itb; + dtb = p->dtb; #if FULL_SYSTEM // Setup thread state stuff. thread.cpu = this; @@ -137,8 +139,6 @@ OzoneCPU<Impl>::OzoneCPU(Params *p) thread.quiesceEvent = new EndQuiesceEvent(tc); system = p->system; - itb = p->itb; - dtb = p->dtb; physmem = p->system->physmem; if (p->profile) { diff --git a/src/cpu/ozone/simple_cpu_builder.cc b/src/cpu/ozone/simple_cpu_builder.cc index df8e25fd0..ca55cdca4 100644 --- a/src/cpu/ozone/simple_cpu_builder.cc +++ b/src/cpu/ozone/simple_cpu_builder.cc @@ -82,11 +82,12 @@ SimpleOzoneCPUParams::create() params->name = name; params->numberOfThreads = actual_num_threads; + params->itb = itb; + params->dtb = dtb; + #if FULL_SYSTEM params->system = system; params->cpu_id = cpu_id; - params->itb = itb; - params->dtb = dtb; #else params->workload = workload; // params->pTable = page_table; diff --git a/src/cpu/ozone/simple_params.hh b/src/cpu/ozone/simple_params.hh index d5ba6a923..ec5782c8a 100644 --- a/src/cpu/ozone/simple_params.hh +++ b/src/cpu/ozone/simple_params.hh @@ -55,9 +55,8 @@ class SimpleParams : public BaseCPU::Params { public: -#if FULL_SYSTEM TheISA::ITB *itb; TheISA::DTB *dtb; -#else +#if !FULL_SYSTEM std::vector<Process *> workload; #endif // FULL_SYSTEM |