diff options
author | Swapnil Haria <swapnilster@gmail.com> | 2017-11-09 13:04:39 -0600 |
---|---|---|
committer | Swapnil Haria <swapnilster@gmail.com> | 2017-12-15 00:50:32 +0000 |
commit | 6ab6c52b0bf9c91ef9249613cb4c9d8ab579b4f3 (patch) | |
tree | 8da65d170bf38e885eec878d7cb4fa934a81e3c7 /src/mem/ruby/system/RubyPort.hh | |
parent | c5095c75f7a721551816efd16196d88eb997ec5a (diff) | |
download | gem5-6ab6c52b0bf9c91ef9249613cb4c9d8ab579b4f3.tar.xz |
mem-ruby: Support atomic_noncaching acceses in ruby
Ruby has no support for atomic_noncaching accesses, which prevents using
it with kvm-cpu. This patch fixes this by directly forwarding atomic
requests from the ruby port/sequencer to the corresponding directory
based on the destination address of the packet.
Change-Id: I0b4928bfda44fd9e5e48583c51d1ea422800da2d
Reviewed-on: https://gem5-review.googlesource.com/5601
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Bradford Beckmann <brad.beckmann@amd.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Bradford Beckmann <brad.beckmann@amd.com>
Diffstat (limited to 'src/mem/ruby/system/RubyPort.hh')
-rw-r--r-- | src/mem/ruby/system/RubyPort.hh | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mem/ruby/system/RubyPort.hh b/src/mem/ruby/system/RubyPort.hh index 6c991c162..146443282 100644 --- a/src/mem/ruby/system/RubyPort.hh +++ b/src/mem/ruby/system/RubyPort.hh @@ -46,6 +46,7 @@ #include <string> #include "mem/protocol/RequestStatus.hh" +#include "mem/ruby/common/MachineID.hh" #include "mem/ruby/network/MessageBuffer.hh" #include "mem/ruby/system/RubySystem.hh" #include "mem/mem_object.hh" @@ -88,8 +89,7 @@ class RubyPort : public MemObject protected: bool recvTimingReq(PacketPtr pkt); - Tick recvAtomic(PacketPtr pkt) - { panic("RubyPort::MemSlavePort::recvAtomic() not implemented!\n"); } + Tick recvAtomic(PacketPtr pkt); void recvFunctional(PacketPtr pkt); @@ -127,8 +127,7 @@ class RubyPort : public MemObject protected: bool recvTimingReq(PacketPtr pkt); - Tick recvAtomic(PacketPtr pkt) - { panic("recvAtomic not supported with ruby!"); } + Tick recvAtomic(PacketPtr pkt); void recvFunctional(PacketPtr pkt) { panic("recvFunctional should never be called on pio slave port!"); } |