From 26dc0017d2b3a786b3ee9ac4fd24cdae1ae83896 Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Wed, 10 Aug 2016 15:27:13 +0100 Subject: 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 Reviewed-by: Nikos Nikoleris Reviewed-by: Jason Lowe-Power Reviewed-by: Brad Beckmann Reviewed-by: Michael LeBeane --- src/mem/ruby/system/RubyPort.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') 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() <= -- cgit v1.2.3