MEM: Make the RubyPort physMemPort a PioPort instead of M5Port
authorAndreas Hansson <andreas.hansson@arm.com>
Mon, 30 Jan 2012 10:38:24 +0000 (05:38 -0500)
committerAndreas Hansson <andreas.hansson@arm.com>
Mon, 30 Jan 2012 10:38:24 +0000 (05:38 -0500)
This patch makes the physMemPort of the RubyPort a PioPort rather than
an M5Port. This reflects the fact that the M5Port and PioPort have
different roles. The M5Port is really a coherent slave that is
connected to the CPUs and other coherent masters of the system,
e.g. DMA ports. The PioPort, on the other hand, is a master port that
is connected to the memory and other slaves, for example the pio
devices.

This simplifies future changes into master/slave ports and is
consistent with the port roles throughout the system.

src/mem/ruby/system/RubyPort.cc
src/mem/ruby/system/RubyPort.hh

index b60ca2a073ecc531d7e1b270244432589254d70b..af414f17ace3459a7997d2d9d8c091f488cc7f29 100644 (file)
@@ -88,8 +88,7 @@ RubyPort::getPort(const std::string &if_name, int idx)
         // RubyPort should only have one port to physical memory
         assert (physMemPort == NULL);
 
-        physMemPort = new M5Port(csprintf("%s-physMemPort", name()), this,
-                                 ruby_system, access_phys_mem);
+        physMemPort = new PioPort(csprintf("%s-physMemPort", name()), this);
 
         return physMemPort;
     }
index 2ffdef3d9dc71abc0a1e49b894787c57af52e18f..6df713a13a7febf8df4f375f9eac9e063f434af4 100644 (file)
@@ -155,7 +155,7 @@ class RubyPort : public MemObject
     uint16_t m_port_id;
     uint64_t m_request_cnt;
 
-    M5Port* physMemPort;
+    PioPort* physMemPort;
 
     /*! Vector of CPU Port attached to this Ruby port. */
     typedef std::vector<M5Port*>::iterator CpuPortIter;