diff -r 5a3eb30fe71a -r d18fec611bbd configs/ruby/Ruby.py --- a/configs/ruby/Ruby.py Fri Jul 22 16:01:50 2016 +0100 +++ b/configs/ruby/Ruby.py Fri Jul 22 16:46:36 2016 +0100 @@ -194,6 +194,8 @@ # independent of the protocol and kept in the protocol-agnostic # part (i.e. here). sys_port_proxy = RubyPortProxy(ruby_system = ruby) + if piobus is not None: + sys_port_proxy.pio_master_port = piobus.slave # Give the system port proxy a SimObject parent without creating a # full-fledged controller diff -r 5a3eb30fe71a -r d18fec611bbd src/mem/ruby/system/RubyPort.cc --- a/src/mem/ruby/system/RubyPort.cc Fri Jul 22 16:01:50 2016 +0100 +++ b/src/mem/ruby/system/RubyPort.cc Fri Jul 22 16:46:36 2016 +0100 @@ -312,9 +312,10 @@ // 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() <=