Deleted Added
sdiff udiff text old ( 13808:0a44fbc3a853 ) new ( 13847:c9b92a513019 )
full compact
1/*
2 * Copyright (c) 2011-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

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

716{
717 // responses and snoop responses never block on forwarding them,
718 // so the retry will always be coming from a port to which we
719 // tried to forward a request
720 reqLayers[master_port_id]->recvRetry();
721}
722
723Tick
724CoherentXBar::recvAtomic(PacketPtr pkt, PortID slave_port_id)
725{
726 DPRINTF(CoherentXBar, "%s: src %s packet %s\n", __func__,
727 slavePorts[slave_port_id]->name(), pkt->print());
728
729 unsigned int pkt_size = pkt->hasData() ? pkt->getSize() : 0;
730 unsigned int pkt_cmd = pkt->cmdToIndex();
731
732 MemCmd snoop_response_cmd = MemCmd::InvalidCmd;

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

795 // make sure that the write request (e.g., WriteClean)
796 // will stop at the memory below if this crossbar is its
797 // destination
798 if (pkt->isWrite() && is_destination) {
799 pkt->clearWriteThrough();
800 }
801
802 // forward the request to the appropriate destination
803 response_latency = masterPorts[master_port_id]->sendAtomic(pkt);
804 } else {
805 // if it does not need a response we sink the packet above
806 assert(pkt->needsResponse());
807
808 pkt->makeResponse();
809 }
810 }
811

--- 322 unchanged lines hidden ---