ExtSlave.cc (10779:3e986011e99e) ExtSlave.cc (11158:a84eecaaa866)
1// Copyright (c) 2015 ARM Limited
2// All rights reserved.
3//
4// The license below extends only to copyright in the software and shall
5// not be construed as granting a license to any other intellectual
6// property including but not limited to intellectual property relating
7// to a hardware implementation of the functionality of the software
8// licensed hereunder. You may use the software subject to the license

--- 112 unchanged lines hidden (view full) ---

121
122 auto ev = new MemEvent(comp, pkt->getAddr(), pkt->getAddr(), cmd);
123 ev->setPayload(pkt->getSize(), pkt->getPtr<uint8_t>());
124 if ((::MemCmd::Command)pkt->cmd.toInt() == ::MemCmd::LoadLockedReq)
125 ev->setLoadLink();
126 else if ((::MemCmd::Command)pkt->cmd.toInt() == ::MemCmd::StoreCondReq)
127 ev->setStoreConditional();
128
1// Copyright (c) 2015 ARM Limited
2// All rights reserved.
3//
4// The license below extends only to copyright in the software and shall
5// not be construed as granting a license to any other intellectual
6// property including but not limited to intellectual property relating
7// to a hardware implementation of the functionality of the software
8// licensed hereunder. You may use the software subject to the license

--- 112 unchanged lines hidden (view full) ---

121
122 auto ev = new MemEvent(comp, pkt->getAddr(), pkt->getAddr(), cmd);
123 ev->setPayload(pkt->getSize(), pkt->getPtr<uint8_t>());
124 if ((::MemCmd::Command)pkt->cmd.toInt() == ::MemCmd::LoadLockedReq)
125 ev->setLoadLink();
126 else if ((::MemCmd::Command)pkt->cmd.toInt() == ::MemCmd::StoreCondReq)
127 ev->setStoreConditional();
128
129 if (pkt->req->isLocked()) ev->setFlag(MemEvent::F_LOCKED);
129 if (pkt->req->isLockedRMW()) ev->setFlag(MemEvent::F_LOCKED);
130 if (pkt->req->isUncacheable()) ev->setFlag(MemEvent::F_NONCACHEABLE);
131 if (pkt->req->hasContextId()) ev->setGroupId(pkt->req->contextId());
132// Prefetches not working with SST; it maybe be dropping them, treating them
133// as not deserving of responses, or something else -- not sure yet.
134// ev->setPrefetchFlag(pkt->req->isPrefetch());
135
136 if (simPhase == INIT) {
137 link->sendInitData(ev);

--- 41 unchanged lines hidden (view full) ---

179 }
180 } else { // we can handle unexpected invalidates, but nothing else.
181 Command cmd = event->getCmd();
182 assert(cmd == Inv);
183
184 // make Req/Pkt for Snoop/no response needed
185 // presently no consideration for masterId, packet type, flags...
186 RequestPtr req = new Request(event->getAddr(), event->getSize(), 0, 0);
130 if (pkt->req->isUncacheable()) ev->setFlag(MemEvent::F_NONCACHEABLE);
131 if (pkt->req->hasContextId()) ev->setGroupId(pkt->req->contextId());
132// Prefetches not working with SST; it maybe be dropping them, treating them
133// as not deserving of responses, or something else -- not sure yet.
134// ev->setPrefetchFlag(pkt->req->isPrefetch());
135
136 if (simPhase == INIT) {
137 link->sendInitData(ev);

--- 41 unchanged lines hidden (view full) ---

179 }
180 } else { // we can handle unexpected invalidates, but nothing else.
181 Command cmd = event->getCmd();
182 assert(cmd == Inv);
183
184 // make Req/Pkt for Snoop/no response needed
185 // presently no consideration for masterId, packet type, flags...
186 RequestPtr req = new Request(event->getAddr(), event->getSize(), 0, 0);
187 auto pkt = new Packet(req, ::MemCmd::InvalidationReq);
187 auto pkt = new Packet(req, ::MemCmd::InvalidateReq);
188
189 // Clear out bus delay notifications
190 pkt->headerDelay = pkt->payloadDelay = 0;
191
192 sendTimingSnoopReq(pkt);
193 }
194 delete event;
195}
196
197void
198ExtSlave::recvRespRetry()
199{
200 while (blocked() && sendTimingResp(respQ.front())) {
201 respQ.pop_front();
202 }
203}
188
189 // Clear out bus delay notifications
190 pkt->headerDelay = pkt->payloadDelay = 0;
191
192 sendTimingSnoopReq(pkt);
193 }
194 delete event;
195}
196
197void
198ExtSlave::recvRespRetry()
199{
200 while (blocked() && sendTimingResp(respQ.front())) {
201 respQ.pop_front();
202 }
203}