summaryrefslogtreecommitdiff
path: root/src/dev/x86
diff options
context:
space:
mode:
Diffstat (limited to 'src/dev/x86')
-rw-r--r--src/dev/x86/SConscript2
-rw-r--r--src/dev/x86/i82094aa.cc16
-rw-r--r--src/dev/x86/i82094aa.hh3
-rw-r--r--src/dev/x86/pc.cc9
-rw-r--r--src/dev/x86/pc.hh6
5 files changed, 5 insertions, 31 deletions
diff --git a/src/dev/x86/SConscript b/src/dev/x86/SConscript
index eeb68cf44..038e4824b 100644
--- a/src/dev/x86/SConscript
+++ b/src/dev/x86/SConscript
@@ -30,7 +30,7 @@
Import('*')
-if env['FULL_SYSTEM'] and env['TARGET_ISA'] == 'x86':
+if env['TARGET_ISA'] == 'x86':
SimObject('Pc.py')
Source('pc.cc')
diff --git a/src/dev/x86/i82094aa.cc b/src/dev/x86/i82094aa.cc
index 584090a9e..d9c07f5ae 100644
--- a/src/dev/x86/i82094aa.cc
+++ b/src/dev/x86/i82094aa.cc
@@ -30,6 +30,7 @@
#include "arch/x86/interrupts.hh"
#include "arch/x86/intmessage.hh"
+#include "cpu/base.hh"
#include "debug/I82094AA.hh"
#include "dev/x86/i82094aa.hh"
#include "dev/x86/i8259.hh"
@@ -196,13 +197,11 @@ X86ISA::I82094AA::signalInterrupt(int line)
}
} else {
for (int i = 0; i < numContexts; i++) {
- std::map<int, Interrupts *>::iterator localApicIt =
- localApics.find(i);
- assert(localApicIt != localApics.end());
- Interrupts *localApic = localApicIt->second;
+ Interrupts *localApic = sys->getThreadContext(i)->
+ getCpuPtr()->getInterruptController();
if ((localApic->readReg(APIC_LOGICAL_DESTINATION) >> 24) &
message.destination) {
- apics.push_back(localApicIt->first);
+ apics.push_back(localApic->getInitialApicId());
}
}
if (message.deliveryMode == DeliveryMode::LowestPriority &&
@@ -245,13 +244,6 @@ X86ISA::I82094AA::lowerInterruptPin(int number)
}
void
-X86ISA::I82094AA::registerLocalApic(int initialId, Interrupts *localApic)
-{
- assert(localApic);
- localApics[initialId] = localApic;
-}
-
-void
X86ISA::I82094AA::serialize(std::ostream &os)
{
uint64_t* redirTableArray = (uint64_t*)redirTable;
diff --git a/src/dev/x86/i82094aa.hh b/src/dev/x86/i82094aa.hh
index ae0322d94..00ba2800d 100644
--- a/src/dev/x86/i82094aa.hh
+++ b/src/dev/x86/i82094aa.hh
@@ -70,8 +70,6 @@ class I82094AA : public PioDevice, public IntDev
I8259 * extIntPic;
- std::map<int, Interrupts *> localApics;
-
uint8_t regSel;
uint8_t initialApicId;
uint8_t id;
@@ -131,7 +129,6 @@ class I82094AA : public PioDevice, public IntDev
void signalInterrupt(int line);
void raiseInterruptPin(int number);
void lowerInterruptPin(int number);
- void registerLocalApic(int id, Interrupts *localApic);
virtual void serialize(std::ostream &os);
virtual void unserialize(Checkpoint *cp, const std::string &section);
diff --git a/src/dev/x86/pc.cc b/src/dev/x86/pc.cc
index 7912a45e1..dd8e34d9e 100644
--- a/src/dev/x86/pc.cc
+++ b/src/dev/x86/pc.cc
@@ -55,8 +55,6 @@ Pc::Pc(const Params *p)
: Platform(p), system(p->system)
{
southBridge = NULL;
- // set the back pointer from the system to myself
- system->platform = this;
}
void
@@ -117,13 +115,6 @@ Pc::init()
southBridge->pic2->maskAll();
}
-Tick
-Pc::intrFrequency()
-{
- panic("Need implementation for intrFrequency\n");
- M5_DUMMY_RETURN
-}
-
void
Pc::postConsoleInt()
{
diff --git a/src/dev/x86/pc.hh b/src/dev/x86/pc.hh
index 427cc4165..c999440d2 100644
--- a/src/dev/x86/pc.hh
+++ b/src/dev/x86/pc.hh
@@ -62,12 +62,6 @@ class Pc : public Platform
Pc(const Params *p);
/**
- * Return the interrupting frequency to AlphaAccess
- * @return frequency of RTC interrupts
- */
- virtual Tick intrFrequency();
-
- /**
* Cause the cpu to post a serial interrupt to the CPU.
*/
virtual void postConsoleInt();