diff options
Diffstat (limited to 'src/dev/x86')
-rw-r--r-- | src/dev/x86/i82094aa.cc | 2 | ||||
-rw-r--r-- | src/dev/x86/i82094aa.hh | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/dev/x86/i82094aa.cc b/src/dev/x86/i82094aa.cc index 21332c3ae..e55f1ec87 100644 --- a/src/dev/x86/i82094aa.cc +++ b/src/dev/x86/i82094aa.cc @@ -40,7 +40,7 @@ X86ISA::I82094AA::I82094AA(Params *p) : PioDevice(p), IntDev(this), extIntPic(p->external_int_pic) { // This assumes there's only one I/O APIC in the system - id = p->apic_id; + initialApicId = id = p->apic_id; assert(id <= 0xf); arbId = id; regSel = 0; diff --git a/src/dev/x86/i82094aa.hh b/src/dev/x86/i82094aa.hh index 598e218f8..7501259c1 100644 --- a/src/dev/x86/i82094aa.hh +++ b/src/dev/x86/i82094aa.hh @@ -68,6 +68,7 @@ class I82094AA : public PioDevice, public IntDev I8259 * extIntPic; uint8_t regSel; + uint8_t initialApicId; uint8_t id; uint8_t arbId; @@ -103,8 +104,9 @@ class I82094AA : public PioDevice, public IntDev void getIntAddrRange(AddrRangeList &range_list) { range_list.clear(); - range_list.push_back(RangeEx(x86InterruptAddress(id, 0), - x86InterruptAddress(id, 0) + PhysAddrAPICRangeSize)); + range_list.push_back(RangeEx(x86InterruptAddress(initialApicId, 0), + x86InterruptAddress(initialApicId, 0) + + PhysAddrAPICRangeSize)); } void writeReg(uint8_t offset, uint32_t value); |