summaryrefslogtreecommitdiff
path: root/mem/physical.hh
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2006-03-25 18:31:20 -0500
committerAli Saidi <saidi@eecs.umich.edu>2006-03-25 18:31:20 -0500
commitb38f67d5b7ad9c2f5ff7580e20fb86c4a877589d (patch)
tree861137c79bf858c09f63d71b51494cc9c3b043a7 /mem/physical.hh
parenta70ce910f3303efe934c564817cc421369f51b36 (diff)
downloadgem5-b38f67d5b7ad9c2f5ff7580e20fb86c4a877589d.tar.xz
Implement a very very simple bus
requestTime -> time responseTime -> packet.time Make CPU and memory able to connect to the bus dev/io_device.cc: update for request and packet both having a time hand platform off to port for eventual selection of request modes dev/io_device.hh: update for request and packet both havig a time hand platform off to port for eventual selection of request modes mem/bus.hh: Add a device map struct that maps a range to a portId - Which needs work it theory it should be an interval tree - but it is a list and works fine right now Add a function called findPort which returns port for an addr range Add a deviceBlockSize function that really shouldn't exist, but it was easier than fixing the translating port mem/packet.hh: add a time to each packet mem/physical.cc: mem/physical.hh: python/m5/objects/PhysicalMemory.py: Make physical memory take a MemObject parameter of what to connect to mem/request.hh: remove requestTime/responseTime for just time in request which is requset time and the time in the packet which is responsetime python/m5/objects/BaseCPU.py: Instead of memory cpu connects to any memory object python/m5/objects/Bus.py: Fix for new bus object --HG-- extra : convert_revision : 72605e8a3fcdd9e80a41f439909ee7feb3f1fe1d
Diffstat (limited to 'mem/physical.hh')
-rw-r--r--mem/physical.hh7
1 files changed, 6 insertions, 1 deletions
diff --git a/mem/physical.hh b/mem/physical.hh
index b066d3dfc..2087bf763 100644
--- a/mem/physical.hh
+++ b/mem/physical.hh
@@ -69,6 +69,8 @@ class PhysicalMemory : public MemObject
virtual int deviceBlockSize();
};
+ MemoryPort memPort;
+
virtual Port * getPort(const char *if_name);
int numPorts;
@@ -101,11 +103,13 @@ class PhysicalMemory : public MemObject
uint64_t size() { return pmem_size; }
public:
- PhysicalMemory(const std::string &n);
+ PhysicalMemory(const std::string &n, MemObject *bus);
virtual ~PhysicalMemory();
public:
int deviceBlockSize();
+ void getAddressRanges(AddrRangeList &rangeList, bool &owner);
+ void virtual init() { memPort.sendStatusChange(Port::RangeChange); }
// fast back-door memory access for vtophys(), remote gdb, etc.
// uint64_t phys_read_qword(Addr addr) const;
@@ -119,6 +123,7 @@ class PhysicalMemory : public MemObject
public:
virtual void serialize(std::ostream &os);
virtual void unserialize(Checkpoint *cp, const std::string &section);
+
};
/*uint64_t