summaryrefslogtreecommitdiff
path: root/src/dev/x86/pc.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-01-31 23:44:05 -0800
committerGabe Black <gblack@eecs.umich.edu>2009-01-31 23:44:05 -0800
commite1c412cec690083f93ae0cb741c03e00e77cde71 (patch)
tree23a88ebd8173ba8e15b44bf22d4c995413829d39 /src/dev/x86/pc.cc
parentd08b8e2b825d8ad33d51c860af379a244f78dc30 (diff)
downloadgem5-e1c412cec690083f93ae0cb741c03e00e77cde71.tar.xz
X86: Configure the IO APIC more.
Diffstat (limited to 'src/dev/x86/pc.cc')
-rw-r--r--src/dev/x86/pc.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/dev/x86/pc.cc b/src/dev/x86/pc.cc
index 94fb23e21..c2e562517 100644
--- a/src/dev/x86/pc.cc
+++ b/src/dev/x86/pc.cc
@@ -83,6 +83,23 @@ Pc::init()
entry.vector = 0x20;
ioApic.writeReg(0x10, entry.bottomDW);
ioApic.writeReg(0x11, entry.topDW);
+ entry.deliveryMode = DeliveryMode::Fixed;
+ entry.vector = 0x24;
+ ioApic.writeReg(0x18, entry.bottomDW);
+ ioApic.writeReg(0x19, entry.topDW);
+ entry.mask = 1;
+ entry.vector = 0x21;
+ ioApic.writeReg(0x12, entry.bottomDW);
+ ioApic.writeReg(0x13, entry.topDW);
+ entry.vector = 0x20;
+ ioApic.writeReg(0x14, entry.bottomDW);
+ ioApic.writeReg(0x15, entry.topDW);
+ entry.vector = 0x28;
+ ioApic.writeReg(0x20, entry.bottomDW);
+ ioApic.writeReg(0x21, entry.topDW);
+ entry.vector = 0x2C;
+ ioApic.writeReg(0x28, entry.bottomDW);
+ ioApic.writeReg(0x29, entry.topDW);
}
Tick