arm: Remove the 'magic MSI register' in the GIC (PL390)
[gem5.git] / src / dev / arm / kmi.cc
index adf1439b3b3a0a66349072241cf4ce0d269177b3..2344b4cb566b3aa093f370fb126a29439c9bceb3 100644 (file)
@@ -41,8 +41,9 @@
  *          William Wang
  */
 
+#include "base/vnc/vncinput.hh"
 #include "base/trace.hh"
-#include "base/vnc/vncserver.hh"
+#include "debug/Pl050.hh"
 #include "dev/arm/amba_device.hh"
 #include "dev/arm/kmi.hh"
 #include "dev/ps2.hh"
 #include "mem/packet_access.hh"
 
 Pl050::Pl050(const Params *p)
-    : AmbaIntDevice(p), control(0), status(0x43), clkdiv(0), interrupts(0),
-      rawInterrupts(0), ackNext(false), shiftDown(false), vnc(p->vnc),
-      driverInitialized(false), intEvent(this)
+    : AmbaIntDevice(p, 0xfff), control(0), status(0x43), clkdiv(0),
+      interrupts(0), rawInterrupts(0), ackNext(false), shiftDown(false),
+      vnc(p->vnc), driverInitialized(false), intEvent(this)
 {
-    pioSize = 0xfff;
-
     if (vnc) {
         if (!p->is_mouse)
             vnc->setKeyboard(this);
@@ -70,8 +69,6 @@ Pl050::read(PacketPtr pkt)
     assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
 
     Addr daddr = pkt->getAddr() - pioAddr;
-    pkt->allocate();
-
 
     uint32_t data = 0;
 
@@ -107,7 +104,7 @@ Pl050::read(PacketPtr pkt)
         DPRINTF(Pl050, "Read Interrupts: %#x\n", (uint32_t)interrupts);
         break;
       default:
-        if (AmbaDev::readId(pkt, ambaId, pioAddr)) {
+        if (readId(pkt, ambaId, pioAddr)) {
             // Hack for variable size accesses
             data = pkt->get<uint32_t>();
             break;
@@ -211,6 +208,7 @@ Pl050::processCommand(uint8_t byte)
         // fall through
       case Disable:
       case Enable:
+      case SetDefaults:
         rxQueue.push_back(Ack);
         break;
       case StatusRequest: