Go to the documentation of this file.
41 #ifndef __DEV_ARM_GICV3_DISTRIBUTOR_H__
42 #define __DEV_ARM_GICV3_DISTRIBUTOR_H__
145 static const uint32_t GICD_CTLR_ENABLEGRP0 = 1 << 0;
202 panic(
"Gicv3Distributor::groupEnabled(): "
215 panic(
"Gicv3Distributor::groupEnabled(): "
271 uint64_t
read(
Addr addr,
size_t size,
bool is_secure_access);
273 bool is_secure_access);
281 #endif //__DEV_ARM_GICV3_DISTRIBUTOR_H__
bool isLevelSensitive(uint32_t int_id) const
static const uint32_t GICD_CTLR_DS
Gicv3CPUInterface * route(uint32_t int_id)
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...
static const AddrRange GICD_IPRIORITYR
std::vector< uint8_t > irqGrpmod
Gicv3::IntStatus intStatus(uint32_t int_id) const
std::vector< bool > irqPendingIspendr
static const AddrRange GICD_NSACR
std::vector< uint8_t > irqNsacr
EndBitUnion(IROUTER) static const uint32_t GICD_CTLR_ENABLEGRP0
void deassertSPI(uint32_t int_id)
static const AddrRange GICD_CPENDSGIR
static const AddrRange GICD_IGROUPR
static const uint32_t GICD_CTLR_ENABLEGRP1
std::vector< bool > irqPending
bool isNotSPI(uint32_t int_id) const
static const AddrRange GICD_ICENABLER
void copy(Gicv3Registers *from, Gicv3Registers *to)
void activateIRQ(uint32_t int_id)
static const AddrRange GICD_ICFGR
static const AddrRange GICD_IGRPMODR
void write(Addr addr, uint64_t data, size_t size, bool is_secure_access)
static const AddrRange GICD_IROUTER
Basic support for object serialization.
static const AddrRange GICD_ICPENDR
void sendInt(uint32_t int_id)
Gicv3::GroupId getIntGroup(int int_id) const
Bitfield< 30, 24 > res0_2
bool groupEnabled(Gicv3::GroupId group) const
static const uint32_t GICD_CTLR_ENABLEGRP1S
static const AddrRange GICD_ITARGETSR
BitUnion64(IROUTER) Bitfield< 63
static const uint32_t IDBITS
void clearIrqCpuInterface(uint32_t int_id)
std::vector< bool > irqEnabled
uint64_t read(Addr addr, size_t size, bool is_secure_access)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
static const AddrRange GICD_ICACTIVER
std::vector< bool > irqActive
void clearInt(uint32_t int_id)
static const uint32_t GICD_CTLR_ENABLEGRP1NS
static const AddrRange GICD_ISACTIVER
static const AddrRange GICD_ISPENDR
static const uint32_t GICD_CTLR_ENABLEGRP1A
static const AddrRange GICD_ISENABLER
Overload hash function for BasicBlockRange type.
std::vector< IROUTER > irqAffinityRouting
bool nsAccessToSecInt(uint32_t int_id, bool is_secure_access) const
std::vector< Gicv3::IntTriggerType > irqConfig
Gicv3Distributor(Gicv3 *gic, uint32_t it_lines)
std::ostream CheckpointOut
std::vector< uint8_t > irqGroup
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
void serialize(CheckpointOut &cp) const override
Serialize an object.
static const uint32_t ADDR_RANGE_SIZE
void deactivateIRQ(uint32_t int_id)
static const AddrRange GICD_SPENDSGIR
std::vector< uint8_t > irqPriority
#define panic(...)
This implements a cprintf based panic() function.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Generated on Sun Jul 30 2023 01:56:54 for gem5 by doxygen 1.8.17