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>
50 struct FVPBasePwrCtrlParams;
190 #endif // __DEV_ARM_FVP_BASE_PWR_CTRL_HH__
void powerCoreOn(ThreadContext *const tc, PwrStatus *const pwrs)
Powers on a core.
void clearWakeRequest(ThreadContext *const tc)
Triggered by the GIC when GICR_WAKER.ProcessorSleep becomes 0.
ArmSystem & system
Reference to the arm system.
void startup() override
startup() is the final initialization call before simulation.
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
BitUnion32(PwrStatus) Bitfield< 30 > l1
std::vector< PwrStatus > corePwrStatus
Per-core power status.
void setStandByWfi(ThreadContext *const tc)
Triggered by the ISA when a WFI instruction is executed and (1) there are no pending interrupts and (...
void powerCoreOff(ThreadContext *const tc, PwrStatus *const pwrs)
Powers off a core.
bool setWakeRequest(ThreadContext *const tc)
Triggered by the GIC when GICR_WAKER.ProcessorSleep is 1 and there are pending interrupts for the cor...
PwrStatus * getCorePwrStatus(ThreadContext *const tc)
Retrieves the power status of a certain core and resizes the entries if needed.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
const Params & params() const
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
EndBitUnion(PciCommandRegister) union PCIConfig
EndBitUnion(PwrStatus) enum Offset struct gem5::FVPBasePwrCtrl::Registers regs
uint64_t Tick
Tick count type.
FVPBasePwrCtrl(const FVPBasePwrCtrlParams ¶ms)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
static constexpr uint32_t MPID_MSK
Mask for extracting the MPID from a 32-bit value.
ThreadContext * getThreadContextByMPID(uint32_t mpid) const
Retrieves the thread context reference for a CPU core by MPID.
void startCoreUp(ThreadContext *const tc)
Starts a core up.
void clearStandByWfi(ThreadContext *const tc)
Triggered when an interrupt is posted to the core.
std::unordered_map< uint32_t, size_t > poweredCoresPerCluster
Number of powered cores per cluster.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Generated on Sun Jul 30 2023 01:56:54 for gem5 by doxygen 1.8.17