diff options
Diffstat (limited to 'src/mem/noncoherent_xbar.cc')
-rw-r--r-- | src/mem/noncoherent_xbar.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/mem/noncoherent_xbar.cc b/src/mem/noncoherent_xbar.cc index 3ff991fdb..7bd04cb3e 100644 --- a/src/mem/noncoherent_xbar.cc +++ b/src/mem/noncoherent_xbar.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2015 ARM Limited + * Copyright (c) 2011-2015, 2018 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -108,7 +108,8 @@ NoncoherentXBar::recvTimingReq(PacketPtr pkt, PortID slave_port_id) assert(!pkt->isExpressSnoop()); // determine the destination based on the address - PortID master_port_id = findPort(pkt->getAddr()); + AddrRange addr_range = RangeSize(pkt->getAddr(), pkt->getSize()); + PortID master_port_id = findPort(addr_range); // test if the layer should be considered occupied for the current // port @@ -253,7 +254,8 @@ NoncoherentXBar::recvAtomic(PacketPtr pkt, PortID slave_port_id) unsigned int pkt_cmd = pkt->cmdToIndex(); // determine the destination port - PortID master_port_id = findPort(pkt->getAddr()); + AddrRange addr_range = RangeSize(pkt->getAddr(), pkt->getSize()); + PortID master_port_id = findPort(addr_range); // stats updates for the request pktCount[slave_port_id][master_port_id]++; @@ -303,7 +305,8 @@ NoncoherentXBar::recvFunctional(PacketPtr pkt, PortID slave_port_id) } // determine the destination port - PortID dest_id = findPort(pkt->getAddr()); + AddrRange addr_range = RangeSize(pkt->getAddr(), pkt->getSize()); + PortID dest_id = findPort(addr_range); // forward the request to the appropriate destination masterPorts[dest_id]->sendFunctional(pkt); |