summaryrefslogtreecommitdiff
path: root/src/mem/noncoherent_xbar.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/noncoherent_xbar.hh')
-rw-r--r--src/mem/noncoherent_xbar.hh14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/mem/noncoherent_xbar.hh b/src/mem/noncoherent_xbar.hh
index 64a1064ab..ffcf9797f 100644
--- a/src/mem/noncoherent_xbar.hh
+++ b/src/mem/noncoherent_xbar.hh
@@ -84,18 +84,22 @@ class NoncoherentXBar : public BaseXBar
* will be instantiated for each of the master ports connecting to
* the crossbar.
*/
- class NoncoherentXBarSlavePort : public SlavePort
+ class NoncoherentXBarSlavePort : public QueuedSlavePort
{
private:
/** A reference to the crossbar to which this port belongs. */
NoncoherentXBar &xbar;
+ /** A normal packet queue used to store responses. */
+ RespPacketQueue queue;
+
public:
NoncoherentXBarSlavePort(const std::string &_name,
NoncoherentXBar &_xbar, PortID _id)
- : SlavePort(_name, &_xbar, _id), xbar(_xbar)
+ : QueuedSlavePort(_name, &_xbar, queue, _id), xbar(_xbar),
+ queue(_xbar, *this)
{ }
protected:
@@ -119,12 +123,6 @@ class NoncoherentXBar : public BaseXBar
{ xbar.recvFunctional(pkt, id); }
/**
- * When receiving a retry, pass it to the crossbar.
- */
- virtual void recvRespRetry()
- { panic("Crossbar slave ports should never retry.\n"); }
-
- /**
* Return the union of all adress ranges seen by this crossbar.
*/
virtual AddrRangeList getAddrRanges() const