gem5  v21.2.0.0
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
gem5::fastmodel::ScxEvsCortexR52< Types > Class Template Reference

#include <evs.hh>

Inheritance diagram for gem5::fastmodel::ScxEvsCortexR52< Types >:
gem5::Iris::BaseCpuEvs

Classes

struct  CorePins
 

Public Member Functions

 ScxEvsCortexR52 (const Params &p)
 
 ScxEvsCortexR52 (const sc_core::sc_module_name &mod_name, const Params &p)
 
void raiseInterruptPin (int num)
 
void lowerInterruptPin (int num)
 
Portgem5_getPort (const std::string &if_name, int idx) override
 
void end_of_elaboration () override
 
void start_of_simulation () override
 
void sendFunc (PacketPtr pkt) override
 
void setClkPeriod (Tick clk_period) override
 
void setSysCounterFrq (uint64_t sys_counter_frq) override
 
void setCluster (SimObject *cluster) override
 
void setResetAddr (int core, Addr addr, bool secure) override
 

Private Types

using Base = typename Types::Base
 
using Params = typename Types::Params
 
using Evs = ScxEvsCortexR52< Types >
 
using ClstrInt = IntSinkPin< ScxEvsCortexR52 >
 

Private Member Functions

 SC_HAS_PROCESS (ScxEvsCortexR52)
 

Private Attributes

ClockRateControlInitiatorSocket clockRateControl
 
SignalInterruptInitiatorSocket signalInterrupt
 
std::vector< std::unique_ptr< CorePins > > corePins
 
std::vector< std::unique_ptr< ClstrInt > > spis
 
CortexR52Clustergem5CpuCluster
 
const Paramsparams
 
AmbaTarget ext_slave
 
SignalSender top_reset
 

Static Private Attributes

static const int CoreCount = Types::CoreCount
 
static const int PpiCount = 9
 
static const int SpiCount = 960
 

Detailed Description

template<class Types>
class gem5::fastmodel::ScxEvsCortexR52< Types >

Definition at line 63 of file evs.hh.

Member Typedef Documentation

◆ Base

template<class Types >
using gem5::fastmodel::ScxEvsCortexR52< Types >::Base = typename Types::Base
private

Definition at line 69 of file evs.hh.

◆ ClstrInt

template<class Types >
using gem5::fastmodel::ScxEvsCortexR52< Types >::ClstrInt = IntSinkPin<ScxEvsCortexR52>
private

Definition at line 118 of file evs.hh.

◆ Evs

template<class Types >
using gem5::fastmodel::ScxEvsCortexR52< Types >::Evs = ScxEvsCortexR52<Types>
private

Definition at line 71 of file evs.hh.

◆ Params

template<class Types >
using gem5::fastmodel::ScxEvsCortexR52< Types >::Params = typename Types::Params
private

Definition at line 70 of file evs.hh.

Constructor & Destructor Documentation

◆ ScxEvsCortexR52() [1/2]

template<class Types >
gem5::fastmodel::ScxEvsCortexR52< Types >::ScxEvsCortexR52 ( const Params p)
inline

Definition at line 131 of file evs.hh.

◆ ScxEvsCortexR52() [2/2]

template<class Types >
gem5::fastmodel::ScxEvsCortexR52< Types >::ScxEvsCortexR52 ( const sc_core::sc_module_name mod_name,
const Params p 
)

Member Function Documentation

◆ end_of_elaboration()

template<class Types >
void gem5::fastmodel::ScxEvsCortexR52< Types >::end_of_elaboration ( )
inlineoverride

Definition at line 149 of file evs.hh.

◆ gem5_getPort()

template<class Types >
Port & gem5::fastmodel::ScxEvsCortexR52< Types >::gem5_getPort ( const std::string &  if_name,
int  idx 
)
override

Definition at line 129 of file evs.cc.

References gem5::ArmISA::a, and panic.

◆ lowerInterruptPin()

template<class Types >
void gem5::fastmodel::ScxEvsCortexR52< Types >::lowerInterruptPin ( int  num)
inline

Definition at line 141 of file evs.hh.

◆ raiseInterruptPin()

template<class Types >
void gem5::fastmodel::ScxEvsCortexR52< Types >::raiseInterruptPin ( int  num)
inline

Definition at line 135 of file evs.hh.

◆ SC_HAS_PROCESS()

template<class Types >
gem5::fastmodel::ScxEvsCortexR52< Types >::SC_HAS_PROCESS ( ScxEvsCortexR52< Types >  )
private

◆ sendFunc()

template<class Types >
void gem5::fastmodel::ScxEvsCortexR52< Types >::sendFunc ( PacketPtr  pkt)
overridevirtual

Implements gem5::Iris::BaseCpuEvs.

Definition at line 119 of file evs.cc.

References sc_gem5::packet2payload(), and panic_if.

◆ setClkPeriod()

template<class Types >
void gem5::fastmodel::ScxEvsCortexR52< Types >::setClkPeriod ( Tick  clk_period)
overridevirtual

Implements gem5::Iris::BaseCpuEvs.

Definition at line 45 of file evs.cc.

References gem5::sim_clock::as_int::s.

◆ setCluster()

template<class Types >
void gem5::fastmodel::ScxEvsCortexR52< Types >::setCluster ( SimObject cluster)
overridevirtual

Implements gem5::Iris::BaseCpuEvs.

Definition at line 59 of file evs.cc.

References panic_if.

◆ setResetAddr()

template<class Types >
void gem5::fastmodel::ScxEvsCortexR52< Types >::setResetAddr ( int  core,
Addr  addr,
bool  secure 
)
overridevirtual

Implements gem5::Iris::BaseCpuEvs.

Definition at line 67 of file evs.cc.

References gem5::X86ISA::addr.

◆ setSysCounterFrq()

template<class Types >
void gem5::fastmodel::ScxEvsCortexR52< Types >::setSysCounterFrq ( uint64_t  sys_counter_frq)
overridevirtual

Implements gem5::Iris::BaseCpuEvs.

Definition at line 52 of file evs.cc.

References panic.

◆ start_of_simulation()

template<class Types >
void gem5::fastmodel::ScxEvsCortexR52< Types >::start_of_simulation ( )
inlineoverride

Definition at line 154 of file evs.hh.

Member Data Documentation

◆ clockRateControl

template<class Types >
ClockRateControlInitiatorSocket gem5::fastmodel::ScxEvsCortexR52< Types >::clockRateControl
private

Definition at line 75 of file evs.hh.

Referenced by gem5::fastmodel::ScxEvsCortexR52< Types >::ScxEvsCortexR52().

◆ CoreCount

template<class Types >
const int gem5::fastmodel::ScxEvsCortexR52< Types >::CoreCount = Types::CoreCount
staticprivate

Definition at line 66 of file evs.hh.

Referenced by gem5::fastmodel::ScxEvsCortexR52< Types >::ScxEvsCortexR52().

◆ corePins

template<class Types >
std::vector<std::unique_ptr<CorePins> > gem5::fastmodel::ScxEvsCortexR52< Types >::corePins
private

Definition at line 116 of file evs.hh.

Referenced by gem5::fastmodel::ScxEvsCortexR52< Types >::ScxEvsCortexR52().

◆ ext_slave

template<class Types >
AmbaTarget gem5::fastmodel::ScxEvsCortexR52< Types >::ext_slave
private

Definition at line 126 of file evs.hh.

◆ gem5CpuCluster

template<class Types >
CortexR52Cluster* gem5::fastmodel::ScxEvsCortexR52< Types >::gem5CpuCluster
private

Definition at line 122 of file evs.hh.

◆ params

template<class Types >
const Params& gem5::fastmodel::ScxEvsCortexR52< Types >::params
private

Definition at line 124 of file evs.hh.

◆ PpiCount

template<class Types >
const int gem5::fastmodel::ScxEvsCortexR52< Types >::PpiCount = 9
staticprivate

◆ signalInterrupt

template<class Types >
SignalInterruptInitiatorSocket gem5::fastmodel::ScxEvsCortexR52< Types >::signalInterrupt
private

◆ SpiCount

template<class Types >
const int gem5::fastmodel::ScxEvsCortexR52< Types >::SpiCount = 960
staticprivate

Definition at line 68 of file evs.hh.

Referenced by gem5::fastmodel::ScxEvsCortexR52< Types >::ScxEvsCortexR52().

◆ spis

template<class Types >
std::vector<std::unique_ptr<ClstrInt> > gem5::fastmodel::ScxEvsCortexR52< Types >::spis
private

Definition at line 120 of file evs.hh.

Referenced by gem5::fastmodel::ScxEvsCortexR52< Types >::ScxEvsCortexR52().

◆ top_reset

template<class Types >
SignalSender gem5::fastmodel::ScxEvsCortexR52< Types >::top_reset
private

Definition at line 128 of file evs.hh.

Referenced by gem5::fastmodel::ScxEvsCortexR52< Types >::ScxEvsCortexR52().


The documentation for this class was generated from the following files:

Generated on Tue Dec 21 2021 11:35:28 for gem5 by doxygen 1.8.17