Go to the documentation of this file.
41 #ifndef __DEV_ARM_GICV3_REDISTRIBUTOR_H__
42 #define __DEV_ARM_GICV3_REDISTRIBUTOR_H__
51 class Gicv3CPUInterface;
52 class Gicv3Distributor;
184 static const uint32_t GICR_CTLR_ENABLE_LPIS = 1 << 0;
259 uint64_t
read(
Addr addr,
size_t size,
bool is_secure_access);
269 #endif //__DEV_ARM_GICV3_REDISTRIBUTOR_H__
std::vector< uint8_t > irqGrpmod
static const uint32_t GICR_CTLR_DPG1S
void unserialize(CheckpointIn &cp) override
Unserialize an object.
uint64_t read(Addr addr, size_t size, bool is_secure_access)
std::vector< Gicv3::IntTriggerType > irqConfig
static const uint32_t GICR_WAKER_ProcessorSleep
static const uint32_t GICR_CTLR_DPG0
bool isPendingLPI(uint32_t intid)
std::vector< bool > irqPending
void write(Addr addr, uint64_t data, size_t size, bool is_secure_access)
Gicv3::GroupId getIntGroup(int int_id) const
static const uint32_t RD_base
void clearPPInt(uint32_t int_id)
Gicv3Distributor * distributor
static const uint32_t SGI_base
Gicv3CPUInterface * getCPUInterface() const
Basic support for object serialization.
Gicv3CPUInterface * cpuInterface
void writeEntryLPI(uint32_t intid, uint8_t lpi_entry)
std::vector< uint8_t > irqPriority
bool treatAsEdgeTriggered(uint32_t int_id) const
This helper is used to check if an interrupt should be treated as edge triggered in the following sce...
std::vector< bool > irqActive
std::vector< uint8_t > irqNsacr
This object is a proxy for a port or other object which implements the functional response protocol,...
uint32_t processorNumber() const
void sendPPInt(uint32_t int_id)
BitUnion8(LPIConfigurationTableEntry) Bitfield< 7
EndBitUnion(LPIConfigurationTableEntry) static const uint32_t GICR_CTLR_ENABLE_LPIS
bool isLevelSensitive(uint32_t int_id) const
void copy(Gicv3Registers *from, Gicv3Registers *to)
std::vector< uint8_t > irqGroup
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
std::vector< bool > irqPendingIspendr
Addr lpiConfigurationTablePtr
void deactivateIRQ(uint32_t int_id)
static const uint32_t SMALLEST_LPI_ID
std::vector< bool > irqEnabled
Gicv3Redistributor(Gicv3 *gic, uint32_t cpu_id)
Gicv3::IntStatus intStatus(uint32_t int_id) const
void serialize(CheckpointOut &cp) const override
Serialize an object.
static const uint32_t GICR_CTLR_DPG1NS
std::ostream CheckpointOut
void setClrLPI(uint64_t data, bool set)
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
bool canBeSelectedFor1toNInterrupt(Gicv3::GroupId group) const
uint8_t readEntryLPI(uint32_t intid)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
const uint32_t addrRangeSize
static const uint32_t GICR_WAKER_ChildrenAsleep
void sendSGI(uint32_t int_id, Gicv3::GroupId group, bool ns)
void activateIRQ(uint32_t int_id)
static const AddrRange GICR_IPRIORITYR
uint32_t getAffinity() const
Generated on Sun Jul 30 2023 01:56:54 for gem5 by doxygen 1.8.17