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