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 ---