kvm: Fix the memory interface used by KVM
The CpuPort class was removed before the KVM patches were committed, which means that the KVM interface currently doesn't compile. This changeset adds the BaseKvmCPU::KVMCpuPort class which derives from MasterPort. This class is used on the data and instruction ports instead of the old CpuPort.
This commit is contained in:
parent
1ae30c68c1
commit
98483ba858
1 changed files with 31 additions and 4 deletions
|
@ -93,8 +93,8 @@ class BaseKvmCPU : public BaseCPU
|
||||||
|
|
||||||
void verifyMemoryMode() const;
|
void verifyMemoryMode() const;
|
||||||
|
|
||||||
CpuPort &getDataPort() { return dataPort; }
|
MasterPort &getDataPort() { return dataPort; }
|
||||||
CpuPort &getInstPort() { return instPort; }
|
MasterPort &getInstPort() { return instPort; }
|
||||||
|
|
||||||
void wakeup();
|
void wakeup();
|
||||||
void activateContext(ThreadID thread_num, Cycles delay);
|
void activateContext(ThreadID thread_num, Cycles delay);
|
||||||
|
@ -403,11 +403,38 @@ class BaseKvmCPU : public BaseCPU
|
||||||
}
|
}
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* KVM memory port. Uses the default MasterPort behavior, but
|
||||||
|
* panics on timing accesses.
|
||||||
|
*/
|
||||||
|
class KVMCpuPort : public MasterPort
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
KVMCpuPort(const std::string &_name, BaseKvmCPU *_cpu)
|
||||||
|
: MasterPort(_name, _cpu)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
bool recvTimingResp(PacketPtr pkt)
|
||||||
|
{
|
||||||
|
panic("The KVM CPU doesn't expect recvTimingResp!\n");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void recvRetry()
|
||||||
|
{
|
||||||
|
panic("The KVM CPU doesn't expect recvRetry!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
/** Port for data requests */
|
/** Port for data requests */
|
||||||
CpuPort dataPort;
|
KVMCpuPort dataPort;
|
||||||
|
|
||||||
/** Unused dummy port for the instruction interface */
|
/** Unused dummy port for the instruction interface */
|
||||||
CpuPort instPort;
|
KVMCpuPort instPort;
|
||||||
|
|
||||||
/** Pre-allocated MMIO memory request */
|
/** Pre-allocated MMIO memory request */
|
||||||
Request mmio_req;
|
Request mmio_req;
|
||||||
|
|
Loading…
Reference in a new issue