diff options
author | Andreas Sandberg <andreas.sandberg@arm.com> | 2016-08-10 15:27:13 +0100 |
---|---|---|
committer | Andreas Sandberg <andreas.sandberg@arm.com> | 2016-08-10 15:27:13 +0100 |
commit | 26dc0017d2b3a786b3ee9ac4fd24cdae1ae83896 (patch) | |
tree | d1c4e1c024465b61438fc4269c3fb64d1e1905da /src | |
parent | 38d34ecf0dd9fdb231981aac0040378acc091631 (diff) | |
download | gem5-26dc0017d2b3a786b3ee9ac4fd24cdae1ae83896.tar.xz |
ruby: Implement support for functional accesses to PIO ranges
There are cases where we want to put boot ROMs on the PIO bus. Ruby
currently doesn't support functional accesses to such memories since
functional accesses are always assumed to go to physical memory. Add
the required support for routing functional accesses to the PIO bus.
Change-Id: Ia5b0fcbe87b9642bfd6ff98a55f71909d1a804e3
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Brad Beckmann <brad.beckmann@amd.com>
Reviewed-by: Michael LeBeane <michael.lebeane@amd.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/mem/ruby/system/RubyPort.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mem/ruby/system/RubyPort.cc b/src/mem/ruby/system/RubyPort.cc index bf4002126..7f0e6f82d 100644 --- a/src/mem/ruby/system/RubyPort.cc +++ b/src/mem/ruby/system/RubyPort.cc @@ -312,9 +312,10 @@ RubyPort::MemSlavePort::recvFunctional(PacketPtr pkt) // Check for pio requests and directly send them to the dedicated // pio port. if (!isPhysMemAddress(pkt->getAddr())) { - assert(rp->memMasterPort.isConnected()); DPRINTF(RubyPort, "Pio Request for address: 0x%#x\n", pkt->getAddr()); - panic("RubyPort::PioMasterPort::recvFunctional() not implemented!\n"); + assert(rp->pioMasterPort.isConnected()); + rp->pioMasterPort.sendFunctional(pkt); + return; } assert(pkt->getAddr() + pkt->getSize() <= |