diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2014-12-02 06:07:56 -0500 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2014-12-02 06:07:56 -0500 |
commit | 5c84157c291dceb8040ab4dd29142a4d141fd2ed (patch) | |
tree | 11d8233de2e4effc934cda648b3c863de376eafb /src/mem/bridge.cc | |
parent | ea5ccc70417db08379027ca7344e50cba53063dd (diff) | |
download | gem5-5c84157c291dceb8040ab4dd29142a4d141fd2ed.tar.xz |
mem: Relax packet src/dest check and shift onus to crossbar
This patch allows objects to get the src/dest of a packet even if it
is not set to a valid port id. This simplifies (ab)using the bridge as
a buffer and latency adapter in situations where the neighbouring
MemObjects are not crossbars.
The checks that were done in the packet are now shifted to the
crossbar where the fields are used to index into the port
arrays. Thus, the carrier of the information is not burdened with
checking, and the crossbar can check not only that the destination is
set, but also that the port index is within limits.
Diffstat (limited to 'src/mem/bridge.cc')
-rw-r--r-- | src/mem/bridge.cc | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/mem/bridge.cc b/src/mem/bridge.cc index 085c97b53..b26da57e3 100644 --- a/src/mem/bridge.cc +++ b/src/mem/bridge.cc @@ -242,9 +242,8 @@ Bridge::BridgeSlavePort::schedTimingResp(PacketPtr pkt, Tick when) pkt->setDest(req_state->origSrc); delete req_state; - // the bridge assumes that at least one crossbar has set the - // destination field of the packet - assert(pkt->isDestValid()); + // the bridge sets the destination irrespective of it is valid or + // not, as it is checked in the crossbar DPRINTF(Bridge, "response, new dest %d\n", pkt->getDest()); // If we're about to put this packet at the head of the queue, we |