smmu_v3_slaveifc.cc (14039:4991b2a345a1) smmu_v3_slaveifc.cc (14063:fc05dc40f6d1)
1/*
2 * Copyright (c) 2019 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

152
153 if (xlateSlotsRemaining==0 ||
154 (pkt->isWrite() && wrBufSlotsRemaining < nbeats))
155 {
156 deviceNeedsRetry = true;
157 return false;
158 }
159
1/*
2 * Copyright (c) 2019 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

152
153 if (xlateSlotsRemaining==0 ||
154 (pkt->isWrite() && wrBufSlotsRemaining < nbeats))
155 {
156 deviceNeedsRetry = true;
157 return false;
158 }
159
160 xlateSlotsRemaining--;
161 if (pkt->isWrite())
162 wrBufSlotsRemaining -= nbeats;
163
164 std::string proc_name = csprintf("%s.port", name());
165 SMMUTranslationProcess *proc =
166 new SMMUTranslationProcess(proc_name, *smmu, *this);
167 proc->beginTransaction(SMMUTranslRequest::fromPacket(pkt));
168

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

198 // @todo: We need to pay for this and not just zero it out
199 pkt->headerDelay = pkt->payloadDelay = 0;
200
201 if (xlateSlotsRemaining == 0) {
202 deviceNeedsRetry = true;
203 return false;
204 }
205
160 if (pkt->isWrite())
161 wrBufSlotsRemaining -= nbeats;
162
163 std::string proc_name = csprintf("%s.port", name());
164 SMMUTranslationProcess *proc =
165 new SMMUTranslationProcess(proc_name, *smmu, *this);
166 proc->beginTransaction(SMMUTranslRequest::fromPacket(pkt));
167

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

197 // @todo: We need to pay for this and not just zero it out
198 pkt->headerDelay = pkt->payloadDelay = 0;
199
200 if (xlateSlotsRemaining == 0) {
201 deviceNeedsRetry = true;
202 return false;
203 }
204
206 xlateSlotsRemaining--;
207
208 std::string proc_name = csprintf("%s.atsport", name());
209 const bool ats_request = true;
210 SMMUTranslationProcess *proc =
211 new SMMUTranslationProcess(proc_name, *smmu, *this);
212 proc->beginTransaction(SMMUTranslRequest::fromPacket(pkt, ats_request));
213
214 smmu->runProcessTiming(proc, pkt);
215

--- 48 unchanged lines hidden ---
205 std::string proc_name = csprintf("%s.atsport", name());
206 const bool ats_request = true;
207 SMMUTranslationProcess *proc =
208 new SMMUTranslationProcess(proc_name, *smmu, *this);
209 proc->beginTransaction(SMMUTranslRequest::fromPacket(pkt, ats_request));
210
211 smmu->runProcessTiming(proc, pkt);
212

--- 48 unchanged lines hidden ---