diff options
author | Ali Saidi <saidi@eecs.umich.edu> | 2006-03-25 18:31:20 -0500 |
---|---|---|
committer | Ali Saidi <saidi@eecs.umich.edu> | 2006-03-25 18:31:20 -0500 |
commit | b38f67d5b7ad9c2f5ff7580e20fb86c4a877589d (patch) | |
tree | 861137c79bf858c09f63d71b51494cc9c3b043a7 /mem/physical.hh | |
parent | a70ce910f3303efe934c564817cc421369f51b36 (diff) | |
download | gem5-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.hh | 7 |
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 §ion); + }; /*uint64_t |