Shivani Parekh has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/33521 )

Change subject: dev-arm: Update master/slave variables -smmu
......................................................................

dev-arm: Update master/slave variables -smmu

Change-Id: I9fcb9374e5de4daa2212f8d9a441010878d015bf
---
M src/dev/arm/smmu_v3.cc
M src/dev/arm/smmu_v3.hh
M src/dev/arm/smmu_v3_proc.cc
M src/dev/arm/smmu_v3_slaveifc.cc
M src/dev/arm/smmu_v3_slaveifc.hh
M src/dev/arm/smmu_v3_transl.cc
6 files changed, 49 insertions(+), 47 deletions(-)



diff --git a/src/dev/arm/smmu_v3.cc b/src/dev/arm/smmu_v3.cc
index f9d99da..d3d8a53 100644
--- a/src/dev/arm/smmu_v3.cc
+++ b/src/dev/arm/smmu_v3.cc
@@ -54,9 +54,9 @@
 SMMUv3::SMMUv3(SMMUv3Params *params) :
     ClockedObject(params),
     system(*params->system),
-    masterId(params->system->getMasterId(this)),
-    masterPort(name() + ".master", *this),
-    masterTableWalkPort(name() + ".master_walker", *this),
+    _id(params->system->getMasterId(this)),
+    requestPort(name() + ".requestor", *this),
+    requestTableWalkPort(name() + ".requestor_walker", *this),
     controlPort(name() + ".control", *this, params->reg_map),
     tlb(params->tlb_entries, params->tlb_assoc, params->tlb_policy),
configCache(params->cfg_entries, params->cfg_assoc, params->cfg_policy),
@@ -74,14 +74,14 @@
     walkCacheNonfinalEnable(params->wc_nonfinal_enable),
     walkCacheS1Levels(params->wc_s1_levels),
     walkCacheS2Levels(params->wc_s2_levels),
-    masterPortWidth(params->master_port_width),
+    requestPortWidth(params->request_port_width),
     tlbSem(params->tlb_slots),
     ifcSmmuSem(1),
     smmuIfcSem(1),
     configSem(params->cfg_slots),
     ipaSem(params->ipa_slots),
     walkSem(params->walk_slots),
-    masterPortSem(1),
+    requestPortSem(1),
     transSem(params->xlate_slots),
     ptwSem(params->ptw_slots),
     cycleSem(1),
@@ -91,7 +91,7 @@
     configLat(params->cfg_lat),
     ipaLat(params->ipa_lat),
     walkLat(params->walk_lat),
-    slaveInterfaces(params->slave_interfaces),
+    respInterfaces(params->responder_interfaces),
     commandExecutor(name() + ".cmd_exec", *this),
     regsMap(params->reg_map),
     processCommandsEvent(this)
@@ -153,7 +153,7 @@
         DPRINTF(SMMUv3, "[t] master retr addr=%#x size=%#x\n",
             a.pkt->getAddr(), a.pkt->getSize());

-        if (!masterPort.sendTimingReq(a.pkt))
+        if (!requestPort.sendTimingReq(a.pkt))
             break;

         packetsToRetry.pop();
@@ -249,7 +249,7 @@
                 }
                 M5_FALLTHROUGH;
             case ACTION_SEND_REQ_FINAL:
-                delay += masterPort.sendAtomic(action.pkt);
+                delay += requestPort.sendAtomic(action.pkt);
                 pkt = action.pkt;
                 break;

@@ -310,7 +310,8 @@
             DPRINTF(SMMUv3, "[t] master req  addr=%#x size=%#x\n",
                     action.pkt->getAddr(), action.pkt->getSize());

- if (packetsToRetry.empty() && masterPort.sendTimingReq(action.pkt)) {
+            if (packetsToRetry.empty() &&
+                requestPort.sendTimingReq(action.pkt)) {
                 scheduleSlaveRetries();
             } else {
                 DPRINTF(SMMUv3, "[t] master req  needs retry, qlen=%d\n",
@@ -717,7 +718,7 @@
 SMMUv3::init()
 {
     // make sure both sides are connected and have the same block size
-    if (!masterPort.isConnected())
+    if (!requestPort.isConnected())
         fatal("Master port is not connected.\n");

     // If the second master port is connected for the table walks, enable
@@ -816,9 +817,9 @@
 SMMUv3::getPort(const std::string &name, PortID id)
 {
     if (name == "master") {
-        return masterPort;
-    } else if (name == "master_walker") {
-        return masterTableWalkPort;
+        return requestPort;
+    } else if (name == "requestor_walker") {
+        return requestTableWalkPort;
     } else if (name == "control") {
         return controlPort;
     } else {
diff --git a/src/dev/arm/smmu_v3.hh b/src/dev/arm/smmu_v3.hh
index 8f35cdf..76a8c8f 100644
--- a/src/dev/arm/smmu_v3.hh
+++ b/src/dev/arm/smmu_v3.hh
@@ -90,7 +90,7 @@
     const System &system;
     const MasterID masterId;

-    SMMUMasterPort    masterPort;
+    SMMUMasterPort    requestPort;
     SMMUMasterTableWalkPort masterTableWalkPort;
     SMMUControlPort   controlPort;

@@ -108,7 +108,7 @@
     const bool walkCacheNonfinalEnable;
     const unsigned walkCacheS1Levels;
     const unsigned walkCacheS2Levels;
-    const unsigned masterPortWidth; // in bytes
+    const unsigned requestPortWidth; // in bytes

     SMMUSemaphore tlbSem;
     SMMUSemaphore ifcSmmuSem;
@@ -116,7 +116,7 @@
     SMMUSemaphore configSem;
     SMMUSemaphore ipaSem;
     SMMUSemaphore walkSem;
-    SMMUSemaphore masterPortSem;
+    SMMUSemaphore requestPortSem;

     SMMUSemaphore transSem; // max N transactions in SMMU
     SMMUSemaphore ptwSem; // max N concurrent PTWs
@@ -138,7 +138,7 @@
     Stats::Distribution translationTimeDist;
     Stats::Distribution ptwTimeDist;

-    std::vector<SMMUv3SlaveInterface *> slaveInterfaces;
+    std::vector<SMMUv3SlaveInterface *> respInterfaces;

     SMMUCommandExecProcess commandExecutor;

diff --git a/src/dev/arm/smmu_v3_proc.cc b/src/dev/arm/smmu_v3_proc.cc
index 9dec2cb..5da7f26 100644
--- a/src/dev/arm/smmu_v3_proc.cc
+++ b/src/dev/arm/smmu_v3_proc.cc
@@ -68,9 +68,9 @@
 void
 SMMUProcess::doRead(Yield &yield, Addr addr, void *ptr, size_t size)
 {
-    doSemaphoreDown(yield, smmu.masterPortSem);
+    doSemaphoreDown(yield, smmu.requestPortSem);
     doDelay(yield, Cycles(1)); // request - assume 1 cycle
-    doSemaphoreUp(smmu.masterPortSem);
+    doSemaphoreUp(smmu.requestPortSem);

     SMMUAction a;
     a.type = ACTION_SEND_REQ;
@@ -97,11 +97,12 @@
 void
 SMMUProcess::doWrite(Yield &yield, Addr addr, const void *ptr, size_t size)
 {
- unsigned nbeats = (size + (smmu.masterPortWidth-1)) / smmu.masterPortWidth;
+    unsigned nbeats = (size + (smmu.requestPortWidth-1))
+                            / smmu.requestPortWidth;

-    doSemaphoreDown(yield, smmu.masterPortSem);
+    doSemaphoreDown(yield, smmu.requestPortSem);
     doDelay(yield, Cycles(nbeats));
-    doSemaphoreUp(smmu.masterPortSem);
+    doSemaphoreUp(smmu.requestPortSem);


     SMMUAction a;
diff --git a/src/dev/arm/smmu_v3_slaveifc.cc b/src/dev/arm/smmu_v3_slaveifc.cc
index 5b3dd98..88f190f 100644
--- a/src/dev/arm/smmu_v3_slaveifc.cc
+++ b/src/dev/arm/smmu_v3_slaveifc.cc
@@ -54,14 +54,14 @@
                         p->tlb_policy)),
     microTLBEnable(p->utlb_enable),
     mainTLBEnable(p->tlb_enable),
-    slavePortSem(1),
+    responsePortSem(1),
     microTLBSem(p->utlb_slots),
     mainTLBSem(p->tlb_slots),
     microTLBLat(p->utlb_lat),
     mainTLBLat(p->tlb_lat),
-    slavePort(new SMMUSlavePort(csprintf("%s.slave", name()), *this)),
-    atsSlavePort(name() + ".atsSlave", *this),
-    atsMasterPort(name() + ".atsMaster", *this),
+ responsePort(new SMMUSlavePort(csprintf("%s.responder", name()), *this)),
+    atsResponsePort(name() + ".ats_cpu_side", *this),
+    atsRequestPort(name() + ".ats_mem_side", *this),
     portWidth(p->port_width),
     wrBufSlotsRemaining(p->wrbuf_slots),
     xlateSlotsRemaining(p->xlate_slots),
@@ -78,10 +78,10 @@
 void
 SMMUv3SlaveInterface::sendRange()
 {
-    if (slavePort->isConnected()) {
-        inform("Slave port is connected to %s\n", slavePort->getPeer());
+    if (responsePort->isConnected()) {
+        inform("Slave port is connected to %s\n", responsePort->getPeer());

-        slavePort->sendRangeChange();
+        responsePort->sendRangeChange();
     } else {
         fatal("Slave port is not connected.\n");
     }
@@ -90,12 +90,12 @@
 Port&
 SMMUv3SlaveInterface::getPort(const std::string &name, PortID id)
 {
-    if (name == "ats_master") {
-        return atsMasterPort;
-    } else if (name == "slave") {
-        return *slavePort;
-    } else if (name == "ats_slave") {
-        return atsSlavePort;
+    if (name == "ats_mem_side") {
+        return atsRequestPort;
+    } else if (name == "responder") {
+        return *responsePort;
+    } else if (name == "ats_mem_side") {
+        return atsResponsePort;
     } else {
         return ClockedObject::getPort(name, id);
     }
@@ -104,7 +104,7 @@
 void
 SMMUv3SlaveInterface::schedTimingResp(PacketPtr pkt)
 {
-    slavePort->schedTimingResp(pkt, nextCycle());
+    responsePort->schedTimingResp(pkt, nextCycle());
 }

 void
@@ -122,7 +122,7 @@
 SMMUv3SlaveInterface::recvAtomic(PacketPtr pkt)
 {
     DPRINTF(SMMUv3, "[a] req from %s addr=%#x size=%#x\n",
-            slavePort->getPeer(), pkt->getAddr(), pkt->getSize());
+            responsePort->getPeer(), pkt->getAddr(), pkt->getSize());

     std::string proc_name = csprintf("%s.port", name());
     SMMUTranslationProcess proc(proc_name, *smmu, *this);
@@ -138,7 +138,7 @@
 SMMUv3SlaveInterface::recvTimingReq(PacketPtr pkt)
 {
     DPRINTF(SMMUv3, "[t] req from %s addr=%#x size=%#x\n",
-            slavePort->getPeer(), pkt->getAddr(), pkt->getSize());
+            responsePort->getPeer(), pkt->getAddr(), pkt->getSize());

     // @todo: We need to pay for this and not just zero it out
     pkt->headerDelay = pkt->payloadDelay = 0;
@@ -229,7 +229,7 @@
 void
 SMMUv3SlaveInterface::sendDeviceRetry()
 {
-    slavePort->sendRetryReq();
+    responsePort->sendRetryReq();
 }

 void
diff --git a/src/dev/arm/smmu_v3_slaveifc.hh b/src/dev/arm/smmu_v3_slaveifc.hh
index e1f8ef2..b4a5df9 100644
--- a/src/dev/arm/smmu_v3_slaveifc.hh
+++ b/src/dev/arm/smmu_v3_slaveifc.hh
@@ -65,14 +65,14 @@
     const bool microTLBEnable;
     const bool mainTLBEnable;

-    SMMUSemaphore slavePortSem;
+    SMMUSemaphore responsePortSem;
     SMMUSemaphore microTLBSem;
     SMMUSemaphore mainTLBSem;

     const Cycles microTLBLat;
     const Cycles mainTLBLat;

-    SMMUSlavePort *slavePort;
+    SMMUSlavePort *responsePort;
     SMMUATSSlavePort  atsSlavePort;
     SMMUATSMasterPort atsMasterPort;

diff --git a/src/dev/arm/smmu_v3_transl.cc b/src/dev/arm/smmu_v3_transl.cc
index c7b20f9..1b54506 100644
--- a/src/dev/arm/smmu_v3_transl.cc
+++ b/src/dev/arm/smmu_v3_transl.cc
@@ -150,9 +150,9 @@
     unsigned numSlaveBeats = request.isWrite ?
         (request.size + (ifc.portWidth - 1)) / ifc.portWidth : 1;

-    doSemaphoreDown(yield, ifc.slavePortSem);
+    doSemaphoreDown(yield, ifc.responsePortSem);
     doDelay(yield, Cycles(numSlaveBeats));
-    doSemaphoreUp(ifc.slavePortSem);
+    doSemaphoreUp(ifc.responsePortSem);


     recvTick = curTick();
@@ -1227,13 +1227,13 @@
     assert(tr.fault == FAULT_NONE);

     unsigned numMasterBeats = request.isWrite ?
-        (request.size + (smmu.masterPortWidth-1))
-            / smmu.masterPortWidth :
+        (request.size + (smmu.requestPortWidth-1))
+            / smmu.requestPortWidth :
         1;

-    doSemaphoreDown(yield, smmu.masterPortSem);
+    doSemaphoreDown(yield, smmu.requestPortSem);
     doDelay(yield, Cycles(numMasterBeats));
-    doSemaphoreUp(smmu.masterPortSem);
+    doSemaphoreUp(smmu.requestPortSem);


     smmu.translationTimeDist.sample(curTick() - recvTick);

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/33521
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I9fcb9374e5de4daa2212f8d9a441010878d015bf
Gerrit-Change-Number: 33521
Gerrit-PatchSet: 1
Gerrit-Owner: Shivani Parekh <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to