44a45
> #include "sim/full_system.hh"
85a87,89
> if (FullSystem) {
> ThreadID size = threadContexts.size();
> for (ThreadID i = 0; i < size; ++i) {
87,96c91,93
< ThreadID size = threadContexts.size();
< for (ThreadID i = 0; i < size; ++i) {
< ThreadContext *tc = threadContexts[i];
<
< // initialize CPU, including PC
< TheISA::initCPU(tc, tc->contextId());
< }
<
< // Initialise the ThreadContext's memory proxies
< tcBase()->initMemProxies(tcBase());
---
> ThreadContext *tc = threadContexts[i];
> // initialize CPU, including PC
> TheISA::initCPU(tc, tc->contextId());
97a95,96
> }
> }
99c98,100
< AddrRangeList pmAddrList = physmemPort.getPeer()->getAddrRanges();
---
> bool snoop = false;
> AddrRangeList pmAddrList;
> physmemPort.getPeerAddressRanges(pmAddrList, snoop);
107a109,161
> bool
> AtomicSimpleCPU::CpuPort::recvTiming(PacketPtr pkt)
> {
> panic("AtomicSimpleCPU doesn't expect recvTiming callback!");
> return true;
> }
>
> Tick
> AtomicSimpleCPU::CpuPort::recvAtomic(PacketPtr pkt)
> {
> //Snooping a coherence request, just return
> return 0;
> }
>
> void
> AtomicSimpleCPU::CpuPort::recvFunctional(PacketPtr pkt)
> {
> //No internal storage to update, just return
> return;
> }
>
> void
> AtomicSimpleCPU::CpuPort::recvStatusChange(Status status)
> {
> if (status == RangeChange) {
> if (!snoopRangeSent) {
> snoopRangeSent = true;
> sendStatusChange(Port::RangeChange);
> }
> return;
> }
>
> panic("AtomicSimpleCPU doesn't expect recvStatusChange callback!");
> }
>
> void
> AtomicSimpleCPU::CpuPort::recvRetry()
> {
> panic("AtomicSimpleCPU doesn't expect recvRetry callback!");
> }
>
> void
> AtomicSimpleCPU::DcachePort::setPeer(Port *port)
> {
> Port::setPeer(port);
>
> if (FullSystem) {
> // Update the ThreadContext's memory ports (Functional/Virtual
> // Ports)
> cpu->tcBase()->connectMemPorts(cpu->tcBase());
> }
> }
>
115a170,173
>
> icachePort.snoopRangeSent = false;
> dcachePort.snoopRangeSent = false;
>
177c235
< BaseCPU::takeOverFrom(oldCPU);
---
> BaseCPU::takeOverFrom(oldCPU, &icachePort, &dcachePort);
203c261
< AtomicSimpleCPU::activateContext(ThreadID thread_num, int delay)
---
> AtomicSimpleCPU::activateContext(int thread_num, int delay)
223c281
< AtomicSimpleCPU::suspendContext(ThreadID thread_num)
---
> AtomicSimpleCPU::suspendContext(int thread_num)
564c622
< if (workload.size() != 1)
---
> if (!FullSystem && workload.size() != 1)