Go to the documentation of this file.
28 #ifndef __ARCH_ARM_FASTMODEL_GIC_GIC_HH__
29 #define __ARCH_ARM_FASTMODEL_GIC_GIC_HH__
31 #pragma GCC diagnostic push
32 #pragma GCC diagnostic ignored "-Woverloaded-virtual"
34 #pragma GCC diagnostic pop
40 #include "params/FastModelGIC.hh"
41 #include "params/SCFastModelGIC.hh"
42 #include "scx_evs_GIC.h"
54 class SCGIC :
public scx_evs_GIC
63 public svp_gicv3_comms::gicv3_comms_fw_if
67 svp_gicv3_comms::gicv3_comms_initiator_socket<>>
Initiators;
69 svp_gicv3_comms::gicv3_comms_target_socket<>>
Targets;
95 scx_evs_GIC::end_of_elaboration();
96 scx_evs_GIC::start_of_simulation();
99 const SCFastModelGICParams &
113 64, svp_gicv3_comms::gicv3_comms_fw_if,
114 svp_gicv3_comms::gicv3_comms_bw_if, 1,
129 void sendInt(uint32_t num)
override;
130 void clearInt(uint32_t num)
override;
132 void sendPPInt(uint32_t num, uint32_t cpu)
override;
133 void clearPPInt(uint32_t num, uint32_t cpu)
override;
144 #endif // __ARCH_ARM_FASTMODEL_GIC_GIC_HH__
void sendInt(uint32_t num) override
Post an interrupt from a device that is connected to the GIC.
void before_end_of_elaboration() override
void clearInt(uint32_t num) override
Clear an interrupt from a device that is connected to the GIC.
const PortID InvalidPortID
bool supportsVersion(GicVersion version) override
Check if version supported.
sc_core::sc_vector< svp_gicv3_comms::gicv3_comms_initiator_socket<> > Initiators
uint64_t Tick
Tick count type.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
static int countUnbound(const Initiators &inits)
void sendPPInt(uint32_t num, uint32_t cpu) override
Interface call for private peripheral interrupts.
sc_core::sc_vector< svp_gicv3_comms::gicv3_comms_target_socket<> > Targets
SCGIC(const SCFastModelGICParams ¶ms, sc_core::sc_module_name _name)
std::unique_ptr< Terminator > terminator
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
std::vector< std::unique_ptr< TlmGicInitiator > > redistributors
SignalInterruptInitiatorSocket signalInterrupt
std::list< AddrRange > AddrRangeList
Convenience typedef for a collection of address ranges.
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
AddrRangeList getAddrRanges() const override
Every PIO device is obliged to provide an implementation that returns the address ranges the device r...
Ports are used to interface objects to each other.
void start_of_simulation() override
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
Terminator(sc_core::sc_module_name _name, Initiators &inits)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
const SCFastModelGICParams & params()
const Params * params() const
void clearPPInt(uint32_t num, uint32_t cpu) override
void sendTowardsCPU(uint8_t len, const uint8_t *data) override
sc_gem5::TlmInitiatorBaseWrapper< 64, svp_gicv3_comms::gicv3_comms_fw_if, svp_gicv3_comms::gicv3_comms_bw_if, 1, sc_core::SC_ONE_OR_MORE_BOUND > TlmGicInitiator
GIC(const FastModelGICParams ¶ms)
void end_of_elaboration() override
const SCFastModelGICParams & _params
Generated on Wed Sep 30 2020 14:01:58 for gem5 by doxygen 1.8.17