noncoherent_xbar.cc (13847:c9b92a513019) noncoherent_xbar.cc (13856:c4a7f25aacb4)
1/*
2 * Copyright (c) 2011-2015, 2018 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 94 unchanged lines hidden (view full) ---

103{
104 // determine the source port based on the id
105 SlavePort *src_port = slavePorts[slave_port_id];
106
107 // we should never see express snoops on a non-coherent crossbar
108 assert(!pkt->isExpressSnoop());
109
110 // determine the destination based on the address
1/*
2 * Copyright (c) 2011-2015, 2018 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 94 unchanged lines hidden (view full) ---

103{
104 // determine the source port based on the id
105 SlavePort *src_port = slavePorts[slave_port_id];
106
107 // we should never see express snoops on a non-coherent crossbar
108 assert(!pkt->isExpressSnoop());
109
110 // determine the destination based on the address
111 AddrRange addr_range = RangeSize(pkt->getAddr(), pkt->getSize());
112 PortID master_port_id = findPort(addr_range);
111 PortID master_port_id = findPort(pkt->getAddrRange());
113
114 // test if the layer should be considered occupied for the current
115 // port
116 if (!reqLayers[master_port_id]->tryTiming(src_port)) {
117 DPRINTF(NoncoherentXBar, "recvTimingReq: src %s %s 0x%x BUSY\n",
118 src_port->name(), pkt->cmdString(), pkt->getAddr());
119 return false;
120 }

--- 129 unchanged lines hidden (view full) ---

250 DPRINTF(NoncoherentXBar, "recvAtomic: packet src %s addr 0x%x cmd %s\n",
251 slavePorts[slave_port_id]->name(), pkt->getAddr(),
252 pkt->cmdString());
253
254 unsigned int pkt_size = pkt->hasData() ? pkt->getSize() : 0;
255 unsigned int pkt_cmd = pkt->cmdToIndex();
256
257 // determine the destination port
112
113 // test if the layer should be considered occupied for the current
114 // port
115 if (!reqLayers[master_port_id]->tryTiming(src_port)) {
116 DPRINTF(NoncoherentXBar, "recvTimingReq: src %s %s 0x%x BUSY\n",
117 src_port->name(), pkt->cmdString(), pkt->getAddr());
118 return false;
119 }

--- 129 unchanged lines hidden (view full) ---

249 DPRINTF(NoncoherentXBar, "recvAtomic: packet src %s addr 0x%x cmd %s\n",
250 slavePorts[slave_port_id]->name(), pkt->getAddr(),
251 pkt->cmdString());
252
253 unsigned int pkt_size = pkt->hasData() ? pkt->getSize() : 0;
254 unsigned int pkt_cmd = pkt->cmdToIndex();
255
256 // determine the destination port
258 AddrRange addr_range = RangeSize(pkt->getAddr(), pkt->getSize());
259 PortID master_port_id = findPort(addr_range);
257 PortID master_port_id = findPort(pkt->getAddrRange());
260
261 // stats updates for the request
262 pktCount[slave_port_id][master_port_id]++;
263 pktSize[slave_port_id][master_port_id] += pkt_size;
264 transDist[pkt_cmd]++;
265
266 // forward the request to the appropriate destination
267 auto master = masterPorts[master_port_id];

--- 35 unchanged lines hidden (view full) ---

303 if (p->trySatisfyFunctional(pkt)) {
304 if (pkt->needsResponse())
305 pkt->makeResponse();
306 return;
307 }
308 }
309
310 // determine the destination port
258
259 // stats updates for the request
260 pktCount[slave_port_id][master_port_id]++;
261 pktSize[slave_port_id][master_port_id] += pkt_size;
262 transDist[pkt_cmd]++;
263
264 // forward the request to the appropriate destination
265 auto master = masterPorts[master_port_id];

--- 35 unchanged lines hidden (view full) ---

301 if (p->trySatisfyFunctional(pkt)) {
302 if (pkt->needsResponse())
303 pkt->makeResponse();
304 return;
305 }
306 }
307
308 // determine the destination port
311 AddrRange addr_range = RangeSize(pkt->getAddr(), pkt->getSize());
312 PortID dest_id = findPort(addr_range);
309 PortID dest_id = findPort(pkt->getAddrRange());
313
314 // forward the request to the appropriate destination
315 masterPorts[dest_id]->sendFunctional(pkt);
316}
317
318NoncoherentXBar*
319NoncoherentXBarParams::create()
320{

--- 13 unchanged lines hidden ---
310
311 // forward the request to the appropriate destination
312 masterPorts[dest_id]->sendFunctional(pkt);
313}
314
315NoncoherentXBar*
316NoncoherentXBarParams::create()
317{

--- 13 unchanged lines hidden ---