dram_ctrl.cc (11189:4237221d3e31) | dram_ctrl.cc (11190:0964165d1857) |
---|---|
1/* 2 * Copyright (c) 2010-2015 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 --- 572 unchanged lines hidden (view full) --- 581 for (auto i = writeQueue.begin() ; i != writeQueue.end() ; ++i) { 582 DPRINTF(DRAM, "Write %lu\n", (*i)->addr); 583 } 584} 585 586bool 587DRAMCtrl::recvTimingReq(PacketPtr pkt) 588{ | 1/* 2 * Copyright (c) 2010-2015 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 --- 572 unchanged lines hidden (view full) --- 581 for (auto i = writeQueue.begin() ; i != writeQueue.end() ; ++i) { 582 DPRINTF(DRAM, "Write %lu\n", (*i)->addr); 583 } 584} 585 586bool 587DRAMCtrl::recvTimingReq(PacketPtr pkt) 588{ |
589 /// @todo temporary hack to deal with memory corruption issues until 590 /// 4-phase transactions are complete 591 for (int x = 0; x < pendingDelete.size(); x++) 592 delete pendingDelete[x]; 593 pendingDelete.clear(); 594 | |
595 // This is where we enter from the outside world 596 DPRINTF(DRAM, "recvTimingReq: request %s addr %lld size %d\n", 597 pkt->cmdString(), pkt->getAddr(), pkt->getSize()); 598 599 // simply drop inhibited packets and clean evictions 600 if (pkt->memInhibitAsserted() || 601 pkt->cmd == MemCmd::CleanEvict) { 602 DPRINTF(DRAM, "Inhibited packet or clean evict -- Dropping it now\n"); | 589 // This is where we enter from the outside world 590 DPRINTF(DRAM, "recvTimingReq: request %s addr %lld size %d\n", 591 pkt->cmdString(), pkt->getAddr(), pkt->getSize()); 592 593 // simply drop inhibited packets and clean evictions 594 if (pkt->memInhibitAsserted() || 595 pkt->cmd == MemCmd::CleanEvict) { 596 DPRINTF(DRAM, "Inhibited packet or clean evict -- Dropping it now\n"); |
603 pendingDelete.push_back(pkt); | 597 pendingDelete.reset(pkt); |
604 return true; 605 } 606 607 // Calc avg gap between requests 608 if (prevArrival != 0) { 609 totGap += curTick() - prevArrival; 610 } 611 prevArrival = curTick(); --- 255 unchanged lines hidden (view full) --- 867 pkt->headerDelay = pkt->payloadDelay = 0; 868 869 // queue the packet in the response queue to be sent out after 870 // the static latency has passed 871 port.schedTimingResp(pkt, response_time); 872 } else { 873 // @todo the packet is going to be deleted, and the DRAMPacket 874 // is still having a pointer to it | 598 return true; 599 } 600 601 // Calc avg gap between requests 602 if (prevArrival != 0) { 603 totGap += curTick() - prevArrival; 604 } 605 prevArrival = curTick(); --- 255 unchanged lines hidden (view full) --- 861 pkt->headerDelay = pkt->payloadDelay = 0; 862 863 // queue the packet in the response queue to be sent out after 864 // the static latency has passed 865 port.schedTimingResp(pkt, response_time); 866 } else { 867 // @todo the packet is going to be deleted, and the DRAMPacket 868 // is still having a pointer to it |
875 pendingDelete.push_back(pkt); | 869 pendingDelete.reset(pkt); |
876 } 877 878 DPRINTF(DRAM, "Done\n"); 879 880 return; 881} 882 883void --- 1369 unchanged lines hidden --- | 870 } 871 872 DPRINTF(DRAM, "Done\n"); 873 874 return; 875} 876 877void --- 1369 unchanged lines hidden --- |