pagetable_walker.cc (8948:e95ee70f876c) | pagetable_walker.cc (8949:3fa1ee293096) |
---|---|
1/* 2 * Copyright (c) 2012 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 --- 478 unchanged lines hidden (view full) --- 487 endWalk(); 488 } else { 489 PacketPtr oldRead = read; 490 //If we didn't return, we're setting up another read. 491 Request::Flags flags = oldRead->req->getFlags(); 492 flags.set(Request::UNCACHEABLE, uncacheable); 493 RequestPtr request = 494 new Request(nextRead, oldRead->getSize(), flags, walker->masterId); | 1/* 2 * Copyright (c) 2012 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 --- 478 unchanged lines hidden (view full) --- 487 endWalk(); 488 } else { 489 PacketPtr oldRead = read; 490 //If we didn't return, we're setting up another read. 491 Request::Flags flags = oldRead->req->getFlags(); 492 flags.set(Request::UNCACHEABLE, uncacheable); 493 RequestPtr request = 494 new Request(nextRead, oldRead->getSize(), flags, walker->masterId); |
495 read = new Packet(request, MemCmd::ReadReq, Packet::Broadcast); | 495 read = new Packet(request, MemCmd::ReadReq); |
496 read->allocate(); 497 // If we need to write, adjust the read packet to write the modified 498 // value back to memory. 499 if (doWrite) { 500 write = oldRead; 501 write->set<uint64_t>(pte); 502 write->cmd = MemCmd::WriteReq; | 496 read->allocate(); 497 // If we need to write, adjust the read packet to write the modified 498 // value back to memory. 499 if (doWrite) { 500 write = oldRead; 501 write->set<uint64_t>(pte); 502 write->cmd = MemCmd::WriteReq; |
503 write->setDest(Packet::Broadcast); | 503 write->clearDest(); |
504 } else { 505 write = NULL; 506 delete oldRead->req; 507 delete oldRead; 508 } 509 } 510 return fault; 511} --- 44 unchanged lines hidden (view full) --- 556 } 557 558 nextState = Ready; 559 entry.vaddr = vaddr; 560 561 Request::Flags flags = Request::PHYSICAL; 562 if (cr3.pcd) 563 flags.set(Request::UNCACHEABLE); | 504 } else { 505 write = NULL; 506 delete oldRead->req; 507 delete oldRead; 508 } 509 } 510 return fault; 511} --- 44 unchanged lines hidden (view full) --- 556 } 557 558 nextState = Ready; 559 entry.vaddr = vaddr; 560 561 Request::Flags flags = Request::PHYSICAL; 562 if (cr3.pcd) 563 flags.set(Request::UNCACHEABLE); |
564 RequestPtr request = new Request(topAddr, dataSize, flags, walker->masterId); 565 read = new Packet(request, MemCmd::ReadReq, Packet::Broadcast); | 564 RequestPtr request = new Request(topAddr, dataSize, flags, 565 walker->masterId); 566 read = new Packet(request, MemCmd::ReadReq); |
566 read->allocate(); 567} 568 569bool 570Walker::WalkerState::recvPacket(PacketPtr pkt) 571{ 572 assert(pkt->isResponse()); 573 if (!pkt->wasNacked()) { --- 134 unchanged lines hidden --- | 567 read->allocate(); 568} 569 570bool 571Walker::WalkerState::recvPacket(PacketPtr pkt) 572{ 573 assert(pkt->isResponse()); 574 if (!pkt->wasNacked()) { --- 134 unchanged lines hidden --- |