diff options
author | Gabe Black <gabeblack@google.com> | 2019-03-22 15:46:57 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2019-04-10 10:39:43 +0000 |
commit | 680a689fd6ca844b373bf2c5ba9028b7b563a356 (patch) | |
tree | 55bf84ea5a3d1ac7712aa26c5590b7c00cfbbdca /src/mem/noncoherent_xbar.cc | |
parent | 729d9949f74a2fef8ed27de83e1f918fbb8c431d (diff) | |
download | gem5-680a689fd6ca844b373bf2c5ba9028b7b563a356.tar.xz |
mem: Plumb backdoor requests through the xbar classes.
Change-Id: Ic8f49339ab95c31d2f00edfdf23a46f1271ec3aa
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17593
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/mem/noncoherent_xbar.cc')
-rw-r--r-- | src/mem/noncoherent_xbar.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mem/noncoherent_xbar.cc b/src/mem/noncoherent_xbar.cc index b0fe205c1..a7b6b0fdc 100644 --- a/src/mem/noncoherent_xbar.cc +++ b/src/mem/noncoherent_xbar.cc @@ -244,7 +244,8 @@ NoncoherentXBar::recvReqRetry(PortID master_port_id) } Tick -NoncoherentXBar::recvAtomic(PacketPtr pkt, PortID slave_port_id) +NoncoherentXBar::recvAtomicBackdoor(PacketPtr pkt, PortID slave_port_id, + MemBackdoorPtr *backdoor) { DPRINTF(NoncoherentXBar, "recvAtomic: packet src %s addr 0x%x cmd %s\n", slavePorts[slave_port_id]->name(), pkt->getAddr(), @@ -263,7 +264,9 @@ NoncoherentXBar::recvAtomic(PacketPtr pkt, PortID slave_port_id) transDist[pkt_cmd]++; // forward the request to the appropriate destination - Tick response_latency = masterPorts[master_port_id]->sendAtomic(pkt); + auto master = masterPorts[master_port_id]; + Tick response_latency = backdoor ? + master->sendAtomicBackdoor(pkt, *backdoor) : master->sendAtomic(pkt); // add the response data if (pkt->isResponse()) { |