changeset 329e49c419b1 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=329e49c419b1
description:
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 <[email protected]>
Reviewed-by: Nikos Nikoleris <[email protected]>
Reviewed-by: Jason Lowe-Power <[email protected]>
Reviewed-by: Brad Beckmann <[email protected]>
Reviewed-by: Michael LeBeane <[email protected]>
diffstat:
configs/ruby/Ruby.py | 2 ++
src/mem/ruby/system/RubyPort.cc | 5 +++--
2 files changed, 5 insertions(+), 2 deletions(-)
diffs (28 lines):
diff -r 5c6e658fd90c -r 329e49c419b1 configs/ruby/Ruby.py
--- a/configs/ruby/Ruby.py Wed Aug 10 14:49:11 2016 +0100
+++ b/configs/ruby/Ruby.py Wed Aug 10 15:27:13 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 5c6e658fd90c -r 329e49c419b1 src/mem/ruby/system/RubyPort.cc
--- a/src/mem/ruby/system/RubyPort.cc Wed Aug 10 14:49:11 2016 +0100
+++ b/src/mem/ruby/system/RubyPort.cc Wed Aug 10 15:27:13 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() <=
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev