gem5
|
#include <timer_cpulocal.hh>
Public Types | |
enum | { TimerLoadReg = 0x00, TimerCounterReg = 0x04, TimerControlReg = 0x08, TimerIntStatusReg = 0x0C, WatchdogLoadReg = 0x20, WatchdogCounterReg = 0x24, WatchdogControlReg = 0x28, WatchdogIntStatusReg = 0x2C, WatchdogResetStatusReg = 0x30, WatchdogDisableReg = 0x34, Size = 0x38 } |
Public Member Functions | |
BitUnion32 (TimerCtrl) Bitfield< 0 > enable | |
EndBitUnion (TimerCtrl) BitUnion32(WatchdogCtrl) Bitfield< 0 > enable | |
void | timerAtZero () |
Called when the counter reaches 0. More... | |
void | watchdogAtZero () |
void | restartTimerCounter (uint32_t val) |
Restart the counter ticking at val. More... | |
void | restartWatchdogCounter (uint32_t val) |
Timer () | |
std::string | name () const |
void | read (PacketPtr pkt, Addr daddr) |
Handle read for a single timer. More... | |
void | write (PacketPtr pkt, Addr daddr) |
Handle write for a single timer. More... | |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
Public Member Functions inherited from Serializable | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. More... | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. More... | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
Public Attributes | |
Bitfield< 1 > | autoReload |
Bitfield< 2 > | intEnable |
Bitfield< 7, 3 > | reserved |
Bitfield< 15, 8 > | prescalar |
Bitfield< 3 > | watchdogMode |
Bitfield< 7, 4 > | reserved |
EndBitUnion(WatchdogCtrl) protected CpuLocalTimer * | parent |
Pointer to parent class. More... | |
uint32_t | intNumTimer |
Number of interrupt to cause/clear. More... | |
uint32_t | intNumWatchdog |
uint32_t | cpuNum |
Cpu this timer is attached to. More... | |
TimerCtrl | timerControl |
Control register as specified above. More... | |
WatchdogCtrl | watchdogControl |
bool | rawIntTimer |
If timer has caused an interrupt. More... | |
bool | rawIntWatchdog |
bool | rawResetWatchdog |
uint32_t | watchdogDisableReg |
bool | pendingIntTimer |
If an interrupt is currently pending. More... | |
bool | pendingIntWatchdog |
uint32_t | timerLoadValue |
Value to load into counters when periodic mode reaches 0. More... | |
uint32_t | watchdogLoadValue |
EventWrapper< Timer,&Timer::timerAtZero > | timerZeroEvent |
EventWrapper< Timer,&Timer::watchdogAtZero > | watchdogZeroEvent |
Friends | |
class | CpuLocalTimer |
Additional Inherited Members | |
Static Public Member Functions inherited from Serializable | |
static const std::string & | currentSection () |
Get the fully-qualified name of the active section. More... | |
static void | serializeAll (const std::string &cpt_dir) |
static void | unserializeGlobals (CheckpointIn &cp) |
Static Public Attributes inherited from Serializable | |
static int | ckptCount = 0 |
static int | ckptMaxCount = 0 |
static int | ckptPrevCount = -1 |
Definition at line 58 of file timer_cpulocal.hh.
anonymous enum |
Enumerator | |
---|---|
TimerLoadReg | |
TimerCounterReg | |
TimerControlReg | |
TimerIntStatusReg | |
WatchdogLoadReg | |
WatchdogCounterReg | |
WatchdogControlReg | |
WatchdogIntStatusReg | |
WatchdogResetStatusReg | |
WatchdogDisableReg | |
Size |
Definition at line 62 of file timer_cpulocal.hh.
CpuLocalTimer::Timer::Timer | ( | ) |
Definition at line 66 of file timer_cpulocal.cc.
CpuLocalTimer::Timer::BitUnion32 | ( | TimerCtrl | ) |
CpuLocalTimer::Timer::EndBitUnion | ( | TimerCtrl | ) |
|
inline |
Definition at line 140 of file timer_cpulocal.hh.
Handle read for a single timer.
Definition at line 94 of file timer_cpulocal.cc.
References curTick(), DPRINTF, panic, power(), prescalar, and Packet::set().
Referenced by CpuLocalTimer::read().
void CpuLocalTimer::Timer::restartTimerCounter | ( | uint32_t | val | ) |
Restart the counter ticking at val.
val | the value to start at |
Definition at line 248 of file timer_cpulocal.cc.
References curTick(), DPRINTF, power(), and X86ISA::val.
void CpuLocalTimer::Timer::restartWatchdogCounter | ( | uint32_t | val | ) |
Definition at line 266 of file timer_cpulocal.cc.
References curTick(), DPRINTF, power(), and X86ISA::val.
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Implements Serializable.
Definition at line 339 of file timer_cpulocal.cc.
References DPRINTF, and SERIALIZE_SCALAR.
void CpuLocalTimer::Timer::timerAtZero | ( | ) |
Called when the counter reaches 0.
Definition at line 285 of file timer_cpulocal.cc.
References MipsISA::cpuNum, and DPRINTF.
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
cp | Checkpoint state |
Implements Serializable.
Definition at line 377 of file timer_cpulocal.cc.
References DPRINTF, and UNSERIALIZE_SCALAR.
void CpuLocalTimer::Timer::watchdogAtZero | ( | ) |
Definition at line 308 of file timer_cpulocal.cc.
References MipsISA::cpuNum, DPRINTF, and fatal.
Handle write for a single timer.
Definition at line 171 of file timer_cpulocal.cc.
References DPRINTF, Packet::get(), if(), and panic.
Referenced by CpuLocalTimer::write().
|
friend |
Definition at line 151 of file timer_cpulocal.hh.
Bitfield< 1 > CpuLocalTimer::Timer::autoReload |
Definition at line 78 of file timer_cpulocal.hh.
uint32_t CpuLocalTimer::Timer::cpuNum |
Cpu this timer is attached to.
Definition at line 104 of file timer_cpulocal.hh.
Referenced by CpuLocalTimer::CpuLocalTimer().
Bitfield< 2 > CpuLocalTimer::Timer::intEnable |
Definition at line 79 of file timer_cpulocal.hh.
uint32_t CpuLocalTimer::Timer::intNumTimer |
Number of interrupt to cause/clear.
Definition at line 100 of file timer_cpulocal.hh.
Referenced by CpuLocalTimer::CpuLocalTimer().
uint32_t CpuLocalTimer::Timer::intNumWatchdog |
Definition at line 101 of file timer_cpulocal.hh.
Referenced by CpuLocalTimer::CpuLocalTimer().
EndBitUnion (WatchdogCtrl) protected CpuLocalTimer* CpuLocalTimer::Timer::parent |
Pointer to parent class.
Definition at line 91 of file timer_cpulocal.hh.
Referenced by CpuLocalTimer::CpuLocalTimer().
bool CpuLocalTimer::Timer::pendingIntTimer |
If an interrupt is currently pending.
Logical and of Timer or Watchdog Ctrl.enable and rawIntTimer or rawIntWatchdog
Definition at line 119 of file timer_cpulocal.hh.
bool CpuLocalTimer::Timer::pendingIntWatchdog |
Definition at line 120 of file timer_cpulocal.hh.
Bitfield< 15, 8 > CpuLocalTimer::Timer::prescalar |
Definition at line 81 of file timer_cpulocal.hh.
Referenced by read().
bool CpuLocalTimer::Timer::rawIntTimer |
If timer has caused an interrupt.
This is irrespective of interrupt enable
Definition at line 112 of file timer_cpulocal.hh.
bool CpuLocalTimer::Timer::rawIntWatchdog |
Definition at line 113 of file timer_cpulocal.hh.
bool CpuLocalTimer::Timer::rawResetWatchdog |
Definition at line 114 of file timer_cpulocal.hh.
Bitfield<7,3> CpuLocalTimer::Timer::reserved |
Definition at line 80 of file timer_cpulocal.hh.
Bitfield<7,4> CpuLocalTimer::Timer::reserved |
Definition at line 89 of file timer_cpulocal.hh.
TimerCtrl CpuLocalTimer::Timer::timerControl |
Control register as specified above.
Definition at line 107 of file timer_cpulocal.hh.
uint32_t CpuLocalTimer::Timer::timerLoadValue |
Value to load into counters when periodic mode reaches 0.
Definition at line 123 of file timer_cpulocal.hh.
EventWrapper<Timer, &Timer::timerAtZero> CpuLocalTimer::Timer::timerZeroEvent |
Definition at line 128 of file timer_cpulocal.hh.
WatchdogCtrl CpuLocalTimer::Timer::watchdogControl |
Definition at line 108 of file timer_cpulocal.hh.
uint32_t CpuLocalTimer::Timer::watchdogDisableReg |
Definition at line 115 of file timer_cpulocal.hh.
uint32_t CpuLocalTimer::Timer::watchdogLoadValue |
Definition at line 124 of file timer_cpulocal.hh.
Bitfield<3> CpuLocalTimer::Timer::watchdogMode |
Definition at line 88 of file timer_cpulocal.hh.
EventWrapper<Timer, &Timer::watchdogAtZero> CpuLocalTimer::Timer::watchdogZeroEvent |
Definition at line 131 of file timer_cpulocal.hh.