Go to the documentation of this file.
38 #ifndef __DEV_ARM_FVP_BASE_PWR_CTRL_HH__
39 #define __DEV_ARM_FVP_BASE_PWR_CTRL_HH__
41 #include <unordered_map>
47 class FVPBasePwrCtrlParams;
183 #endif // __DEV_ARM_FVP_BASE_PWR_CTRL_HH__
void powerCoreOn(ThreadContext *const tc, PwrStatus *const pwrs)
Powers on a core.
ArmSystem & system
Reference to the arm system.
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
void clearWakeRequest(ThreadContext *const tc)
Triggered by the GIC when GICR_WAKER.ProcessorSleep becomes 0.
uint64_t Tick
Tick count type.
BitUnion32(PwrStatus) Bitfield< 30 > l1
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
void clearStandByWfi(ThreadContext *const tc)
Triggered when an interrupt is posted to the core.
void setStandByWfi(ThreadContext *const tc)
Triggered by the ISA when a WFI instruction is executed and (1) there are no pending interrupts and (...
static constexpr uint32_t MPID_MSK
Mask for extracting the MPID from a 32-bit value.
void powerCoreOff(ThreadContext *const tc, PwrStatus *const pwrs)
Powers off a core.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const Params * params() const
bool setWakeRequest(ThreadContext *const tc)
Triggered by the GIC when GICR_WAKER.ProcessorSleep is 1 and there are pending interrupts for the cor...
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
std::unordered_map< uint32_t, size_t > poweredCoresPerCluster
Number of powered cores per cluster.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
PwrStatus * getCorePwrStatus(ThreadContext *const tc)
Retrieves the power status of a certain core and resizes the entries if needed.
ThreadContext * getThreadContextByMPID(uint32_t mpid) const
Retrieves the thread context reference for a CPU core by MPID.
FVPBasePwrCtrl(FVPBasePwrCtrlParams *const params)
std::vector< PwrStatus > corePwrStatus
Per-core power status.
EndBitUnion(UserDescFlags) struct UserDesc32
EndBitUnion(PwrStatus) enum Offset struct FVPBasePwrCtrl::Registers regs
void startCoreUp(ThreadContext *const tc)
Starts a core up.
Generated on Wed Sep 30 2020 14:02:10 for gem5 by doxygen 1.8.17