43 #ifndef __DEV_ARM_GICV3_CPU_INTERFACE_H__ 44 #define __DEV_ARM_GICV3_CPU_INTERFACE_H__ 86 Bitfield<19> ExtRange;
110 Bitfield<63, 1>
res0;
115 Bitfield<63, 2> res0;
121 Bitfield<63, 3> res0;
128 Bitfield<63, 4> res0;
136 Bitfield<63, 4> res0;
143 static const uint8_t PRIORITY_BITS = 5;
221 Bitfield<59, 56> res0_1;
223 Bitfield<47, 45> res0_0;
229 static const uint64_t ICH_LR_EL2_STATE_INVALID = 0;
235 Bitfield<31, 30>
State;
238 Bitfield<27, 24> res0_1;
240 Bitfield<15, 13> res0_0;
246 Bitfield<63, 8>
res0;
258 Bitfield<63, 32> res0_2;
262 Bitfield<17, 10> res0_1;
264 Bitfield<8, 5> res0_0;
273 Bitfield<63, 32> res0_1;
281 Bitfield<18, 5> res0_0;
286 Bitfield<63, 19> res0_2;
288 Bitfield<17, 16> res0_1;
293 Bitfield<7, 2> res0_0;
355 #endif //__DEV_ARM_GICV3_CPU_INTERFACE_H__
bool isSecureBelowEL3() const
static const uint64_t ICH_LR_EL2_STATE_ACTIVE
void setThreadContext(ThreadContext *tc) override
void virtualActivateIRQ(uint32_t lrIdx)
Bitfield< 31, 27 > EOIcount
static const uint8_t GIC_MIN_BPR_NS
uint8_t virtualDropPriority()
RegVal bpr1(Gicv3::GroupId group)
EndBitUnion(ICC_CTLR_EL1) BitUnion64(ICC_CTLR_EL3) Bitfield< 63
Bitfield< 13, 11 > IDbits
static const uint64_t ICH_LR_EL2_STATE_PENDING
void setMiscReg(int misc_reg, RegVal val) override
Write to a system register belonging to this device.
static const AddrRange GICH_APR
Bitfield< 28, 26 > PREbits
RegVal readMiscReg(int misc_reg) override
Read a system register belonging to this device.
Bitfield< 3 > EOImode_EL1S
Base class for devices that use the MiscReg interfaces.
void deactivateIRQ(uint32_t intid, Gicv3::GroupId group)
void unserialize(CheckpointIn &cp) override
Unserialize an object.
uint32_t virtualGroupPriorityMask(Gicv3::GroupId group) const
void resetHppi(uint32_t intid)
bool getHCREL2IMO() const
ThreadContext is the external interface to all thread state for anything outside of the CPU...
uint64_t eoiMaintenanceInterruptStatus() const
int highestActiveGroup() const
uint32_t groupPriorityMask(Gicv3::GroupId group)
static const uint8_t VIRTUAL_NUM_LIST_REGS
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
uint8_t virtualHighestActivePriority() const
Bitfield< 4 > EOImode_EL1NS
bool getHCREL2FMO() const
bool inSecureState() const
uint32_t getHPPIR1() const
Gicv3Distributor * distributor
BitUnion64(ICC_CTLR_EL1) Bitfield< 63
void serialize(CheckpointOut &cp) const override
Serialize an object.
static const uint8_t GIC_MIN_VBPR
uint8_t highestActivePriority() const
void virtualIncrementEOICount()
void activateIRQ(uint32_t int_id)
static const uint8_t VIRTUAL_PREEMPTION_BITS
Bitfield< 44, 32 > pINTID
static const uint8_t VIRTUAL_PRIORITY_BITS
BitUnion32(ICH_LRC) Bitfield< 31
Bitfield< 2 > EOImode_EL3
Bitfield< 10, 8 > PRIbits
Basic support for object serialization.
static const uint8_t GIC_MIN_BPR
RegVal readBankedMiscReg(MiscRegIndex misc_reg) const
static const AddrRange GICC_NSAPR
bool groupEnabled(Gicv3::GroupId group) const
int virtualFindActive(uint32_t intid) const
Bitfield< 26, 15 > res0_1
std::ostream CheckpointOut
bool virtualIsEOISplitMode() const
static const AddrRange GICC_APR
ArmISA::InterruptTypes intSignalType(Gicv3::GroupId group) const
void dropPriority(Gicv3::GroupId group)
bool hppviCanPreempt(int lrIdx) const
bool haveEL(ArmISA::ExceptionLevel el) const
Bitfield< 4, 0 > ListRegs
ICH_MISR_EL2 maintenanceInterruptStatus() const
ArmInterruptPin * maintenanceInterrupt
EndBitUnion(ICV_CTLR_EL1) protected void generateSGI(RegVal val, Gicv3::GroupId group)
Bitfield< 17, 16 > res0_2
void setBankedMiscReg(MiscRegIndex misc_reg, RegVal val) const
uint32_t getHPPIR0() const
Bitfield< 55, 48 > Priority
static const uint64_t ICH_LR_EL2_STATE_ACTIVE_PENDING
Bitfield< 0 > EnableGrp1NS
Generic representation of an Arm interrupt pin.
Bitfield< 1 > EnableGrp1S
void virtualDeactivateIRQ(int lrIdx)
Gicv3Redistributor * redistributor
static const AddrRange GICH_LR
bool isEOISplitMode() const