diff options
Diffstat (limited to 'src/dev')
-rw-r--r-- | src/dev/io_device.cc | 15 | ||||
-rw-r--r-- | src/dev/io_device.hh | 34 |
2 files changed, 40 insertions, 9 deletions
diff --git a/src/dev/io_device.cc b/src/dev/io_device.cc index 2937c66b1..e1fc28949 100644 --- a/src/dev/io_device.cc +++ b/src/dev/io_device.cc @@ -1,4 +1,16 @@ /* + * Copyright (c) 2012 ARM Limited + * All rights reserved. + * + * The license below extends only to copyright in the software and shall + * not be construed as granting a license to any other intellectual + * property including but not limited to intellectual property relating + * to a hardware implementation of the functionality of the software + * licensed hereunder. You may use the software subject to the license + * terms below provided that you ensure that this notice is replicated + * unmodified and in its entirety in all distributions of the software, + * modified or unmodified, in source code or in binary form. + * * Copyright (c) 2006 The Regents of The University of Michigan * All rights reserved. * @@ -121,6 +133,7 @@ DmaPort::DmaPort(MemObject *dev, System *s, Tick min_backoff, Tick max_backoff, bool DmaPort::recvTiming(PacketPtr pkt) { + assert(pkt->isResponse()); if (pkt->wasNacked()) { DPRINTF(DMA, "Received nacked %s addr %#x\n", pkt->cmdString(), pkt->getAddr()); @@ -136,8 +149,6 @@ DmaPort::recvTiming(PacketPtr pkt) pkt->reinitNacked(); queueDma(pkt, true); - } else if (pkt->isRequest() && recvSnoops) { - return true; } else if (pkt->senderState) { DmaReqState *state; backoffTime >>= 2; diff --git a/src/dev/io_device.hh b/src/dev/io_device.hh index 9bb2c3d87..b113f4379 100644 --- a/src/dev/io_device.hh +++ b/src/dev/io_device.hh @@ -1,4 +1,16 @@ /* + * Copyright (c) 2012 ARM Limited + * All rights reserved. + * + * The license below extends only to copyright in the software and shall + * not be construed as granting a license to any other intellectual + * property including but not limited to intellectual property relating + * to a hardware implementation of the functionality of the software + * licensed hereunder. You may use the software subject to the license + * terms below provided that you ensure that this notice is replicated + * unmodified and in its entirety in all distributions of the software, + * modified or unmodified, in source code or in binary form. + * * Copyright (c) 2004-2005 The Regents of The University of Michigan * All rights reserved. * @@ -135,17 +147,25 @@ class DmaPort : public MasterPort bool recvSnoops; virtual bool recvTiming(PacketPtr pkt); - virtual Tick recvAtomic(PacketPtr pkt) - { - if (recvSnoops) return 0; - panic("dma port shouldn't be used for pio access."); M5_DUMMY_RETURN + virtual bool recvTimingSnoop(PacketPtr pkt) + { + if (!recvSnoops) + panic("%s was not expecting a snoop\n", name()); + return true; } - virtual void recvFunctional(PacketPtr pkt) + + virtual Tick recvAtomicSnoop(PacketPtr pkt) { - if (recvSnoops) return; + if (!recvSnoops) + panic("%s was not expecting a snoop\n", name()); + return 0; + } - panic("dma port shouldn't be used for pio access."); + virtual void recvFunctionalSnoop(PacketPtr pkt) + { + if (!recvSnoops) + panic("%s was not expecting a snoop\n", name()); } virtual void recvRetry() ; |