arm: Remove the 'magic MSI register' in the GIC (PL390)
[gem5.git] / src / dev / arm / kmi.cc
index b5819c9d842a61fe795dd07bbdc8761a45748e03..2344b4cb566b3aa093f370fb126a29439c9bceb3 100644 (file)
 #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);
@@ -71,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;
 
@@ -108,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;