Go to the documentation of this file.
43 template <
class Types>
50 template <
class Types>
54 panic(
"Not implemented for R52.");
57 template <
class Types>
62 panic_if(!gem5CpuCluster,
"Cluster should be of type CortexR52Cluster");
65 template <
class Types>
69 llpp(evs->llpp[cpu],
name +
".llpp", -1),
70 flash(evs->flash[cpu],
name +
".flash", -1),
71 amba(evs->amba[cpu],
name +
".amba", -1)
80 template <
class Types>
98 template <
class Types>
103 panic_if(Base::amba[0]->transport_dbg(*trans) != trans->get_data_length(),
104 "Didn't send entire functional packet!");
108 template <
class Types>
112 if (if_name ==
"llpp") {
113 return this->corePins.at(idx)->llpp;
114 }
else if (if_name ==
"flash") {
115 return this->corePins.at(idx)->flash;
116 }
else if (if_name ==
"amba") {
117 return this->corePins.at(idx)->amba;
118 }
else if (if_name ==
"spi") {
119 return *this->spis.at(idx);
120 }
else if (if_name.substr(0, 3) ==
"ppi") {
123 cpu = std::stoi(if_name.substr(4));
124 }
catch (
const std::invalid_argument &
a) {
125 panic(
"Couldn't find CPU number in %s.", if_name);
127 return *this->corePins.at(cpu)->ppis.at(idx);
129 return Base::gem5_getPort(if_name, idx);
IntSinkPin< CorePins > CoreInt
void setSysCounterFrq(uint64_t sys_counter_frq) override
std::vector< std::unique_ptr< CoreInt > > ppis
std::vector< std::unique_ptr< ClstrInt > > spis
static const int SpiCount
ClockRateControlInitiatorSocket clockRateControl
tlm::tlm_generic_payload * packet2payload(PacketPtr packet)
Convert a gem5 packet to a TLM payload by copying all the relevant information to new tlm payload.
static const int PpiCount
std::string csprintf(const char *format, const Args &...args)
void sendFunc(PacketPtr pkt) override
typename Types::Base Base
static const int CoreCount
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
uint64_t Tick
Tick count type.
void setCluster(SimObject *cluster) override
ScxEvsCortexR52(const Params &p)
typename Types::Params Params
Abstract superclass for simulation objects.
GEM5_DEPRECATED_NAMESPACE(GuestABI, guest_abi)
const std::string & name()
IntSinkPin< ScxEvsCortexR52 > ClstrInt
SignalInterruptInitiatorSocket signalInterrupt
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
virtual void bind(base_target_socket_type &s)
Ports are used to interface objects to each other.
std::vector< std::unique_ptr< CorePins > > corePins
CorePins(Evs *_evs, int _cpu)
Port & gem5_getPort(const std::string &if_name, int idx) override
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
void setClkPeriod(Tick clk_period) override
#define panic(...)
This implements a cprintf based panic() function.
Generated on Wed Jul 28 2021 12:10:19 for gem5 by doxygen 1.8.17