61 params().semihosting_ARM_SVC);
63 params().semihosting_T32_HLT);
65 params().semihosting_Thumb_SVC);
90 if (if_name ==
"ppi") {
94 }
else if (if_name ==
"standbywfi") {
98 }
else if (if_name ==
"amba" || if_name ==
"llpp" || if_name ==
"flash" ||
99 if_name ==
"core_reset" || if_name ==
"poweron_reset" ||
113 for (
int i = 0;
i <
p.cores.size();
i++)
114 p.cores[
i]->setCluster(
this,
i);
117 panic_if(!
e,
"EVS should be of type Iris::BaseCpuEvs");
128 params().dcache_prefetch_enabled);
130 params().dcache_read_access_latency);
132 params().dcache_state_modelled);
134 params().dcache_write_access_latency);
136 params().flash_protection_enable_at_reset);
139 params().icache_prefetch_enabled);
141 params().icache_read_access_latency);
143 params().icache_state_modelled);
145 params().memory_ext_slave_base);
150 params().num_protection_regions_s1);
152 params().num_protection_regions_s2);
155 params().ram_protection_enable_at_reset);
162 if (if_name ==
"spi") {
164 }
else if (if_name ==
"ext_slave" || if_name ==
"top_reset" ||
165 if_name ==
"dbg_reset" || if_name ==
"model_reset") {
Base class for ARM GIC implementations.
Iris::BaseCpuEvs * evs_base_cpu
virtual void setResetAddr(int core, Addr addr, bool secure)=0
Ports are used to interface objects to each other.
Abstract superclass for simulation objects.
CortexR52Cluster(const Params &p)
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
void set_evs_param(const std::string &n, T val)
void set_evs_param(const std::string &n, T val)
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port on this CPU.
void setResetAddr(Addr addr, bool secure=false) override
void setCluster(CortexR52Cluster *_cluster, int _num)
CortexR52Cluster * cluster
virtual gem5::Port & gem5_getPort(const std::string &if_name, int idx=-1)
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
const Params & params() const
virtual Port & getPort(const std::string &if_name, PortID idx=InvalidPortID)
Get a port with a given name and index.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
const PortID InvalidPortID
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
std::string csprintf(const char *format, const Args &...args)