Go to the documentation of this file.
32 #include "iris/detail/IrisCppAdapter.h"
33 #include "iris/detail/IrisObjects.h"
40 ::
BaseISA *isa, iris::IrisConnectionInterface *iris_if,
41 const std::string &iris_path) :
66 iris::MemorySpaceId in = iris::IRIS_UINT64_MAX;
67 iris::MemorySpaceId out = iris::IRIS_UINT64_MAX;
70 if (space.canonicalMsn == in_msn)
72 else if (space.canonicalMsn == out_msn)
76 panic_if(in == iris::IRIS_UINT64_MAX || out == iris::IRIS_UINT64_MAX,
77 "Canonical IRIS memory space numbers not found.");
79 return ThreadContext::translateAddress(paddr, out,
vaddr, in);
94 iris::ResourceReadResult result;
96 return result.data.at(0);
102 iris::ResourceWriteResult result;
112 result = ((ArmISA::CPSR)result).nz;
115 result =
bits(result, 31, 28);
151 auto cmsn = space.canonicalMsn;
160 "Unable to find address space(s) for breakpoints.");
constexpr T insertBits(T val, unsigned first, unsigned last, B bit_val)
Returns val with bits first to last set to the LSBs of bit_val.
RegVal readCCRegFlat(RegIndex idx) const override
const std::vector< iris::MemorySpaceId > & getBpSpaceIds() const override
CortexR52TC(::BaseCPU *cpu, int id, System *system, ::BaseMMU *mmu, ::BaseISA *isa, iris::IrisConnectionInterface *iris_if, const std::string &iris_path)
static ExceptionLevel currEL(const ThreadContext *tc)
RegVal readIntReg(RegIndex reg_idx) const override
void setCCRegFlat(RegIndex idx, RegVal val) override
std::vector< iris::MemorySpaceInfo > memorySpaces
@ PhysicalMemorySecureMsn
static IdxNameMap intReg32IdxNameMap
static IdxNameMap ccRegIdxNameMap
RegVal readMiscRegNoEffect(RegIndex) const override
ThreadContext is the external interface to all thread state for anything outside of the CPU.
static std::vector< iris::MemorySpaceId > bpSpaceIds
RegVal readCCRegFlat(RegIndex idx) const override
std::map< int, std::string > IdxNameMap
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
iris::IrisCppAdapter & call() const
void initFromIrisInstance(const ResourceMap &resources) override
bool translateAddress(Addr &paddr, Addr vaddr) override
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
@ PhysicalMemoryNonSecureMsn
void extractResourceMap(ResourceIds &ids, const ResourceMap &resources, const IdxNameMap &idx_names)
iris::ResourceId extractResourceId(const ResourceMap &resources, const std::string &name)
constexpr T bits(T val, unsigned first, unsigned last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
std::map< std::string, iris::ResourceInfo > ResourceMap
void setCCRegFlat(RegIndex idx, RegVal val) override
bool isSecure(ThreadContext *tc)
void setIntReg(RegIndex reg_idx, RegVal val) override
Generated on Tue Jun 22 2021 15:28:19 for gem5 by doxygen 1.8.17