gem5  v20.0.0.2
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
CpuLocalTimer::Timer Class Reference

#include <timer_cpulocal.hh>

Inheritance diagram for CpuLocalTimer::Timer:
Serializable

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 (const std::string &name, CpuLocalTimer *_parent, ArmInterruptPin *int_timer, ArmInterruptPin *int_watchdog)
 
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 CpuLocalTimerparent
 Pointer to parent class. More...
 
ArmInterruptPinintTimer
 Interrupt to cause/clear. More...
 
ArmInterruptPinintWatchdog
 
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
 
EventFunctionWrapper timerZeroEvent
 
EventFunctionWrapper watchdogZeroEvent
 

Friends

class CpuLocalTimer
 

Additional Inherited Members

- Static Public Member Functions inherited from Serializable
static const std::string & currentSection ()
 Gets the fully-qualified name of the active section. More...
 
static void serializeAll (const std::string &cpt_dir)
 
static void unserializeGlobals (CheckpointIn &cp)
 

Detailed Description

Definition at line 56 of file timer_cpulocal.hh.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
TimerLoadReg 
TimerCounterReg 
TimerControlReg 
TimerIntStatusReg 
WatchdogLoadReg 
WatchdogCounterReg 
WatchdogControlReg 
WatchdogIntStatusReg 
WatchdogResetStatusReg 
WatchdogDisableReg 
Size 

Definition at line 60 of file timer_cpulocal.hh.

Constructor & Destructor Documentation

◆ Timer()

CpuLocalTimer::Timer::Timer ( const std::string &  name,
CpuLocalTimer _parent,
ArmInterruptPin int_timer,
ArmInterruptPin int_watchdog 
)

Definition at line 73 of file timer_cpulocal.cc.

References name(), timerAtZero(), watchdogAtZero(), and watchdogZeroEvent.

Member Function Documentation

◆ BitUnion32()

CpuLocalTimer::Timer::BitUnion32 ( TimerCtrl  )

◆ EndBitUnion()

CpuLocalTimer::Timer::EndBitUnion ( TimerCtrl  )

◆ name()

std::string CpuLocalTimer::Timer::name ( ) const
inline

Definition at line 138 of file timer_cpulocal.hh.

References read(), serialize(), unserialize(), and write().

Referenced by Timer().

◆ read()

void CpuLocalTimer::Timer::read ( PacketPtr  pkt,
Addr  daddr 
)

◆ restartTimerCounter()

void CpuLocalTimer::Timer::restartTimerCounter ( uint32_t  val)

Restart the counter ticking at val.

Parameters
valthe value to start at

Definition at line 263 of file timer_cpulocal.cc.

References Clocked::clockPeriod(), curTick(), EventManager::deschedule(), DPRINTF, parent, power(), EventManager::schedule(), Event::scheduled(), timerControl, timerZeroEvent, and X86ISA::val.

Referenced by timerAtZero(), and write().

◆ restartWatchdogCounter()

void CpuLocalTimer::Timer::restartWatchdogCounter ( uint32_t  val)

◆ serialize()

void CpuLocalTimer::Timer::serialize ( CheckpointOut cp) const
overridevirtual

Serialize an object.

Output an object's state into the current checkpoint section.

Parameters
cpCheckpoint state

Implements Serializable.

Definition at line 354 of file timer_cpulocal.cc.

References DPRINTF, pendingIntTimer, pendingIntWatchdog, rawIntTimer, rawIntWatchdog, rawResetWatchdog, Event::scheduled(), SERIALIZE_SCALAR, timerControl, timerLoadValue, timerZeroEvent, watchdogControl, watchdogDisableReg, watchdogLoadValue, watchdogZeroEvent, and Event::when().

Referenced by name(), and CpuLocalTimer::params().

◆ timerAtZero()

void CpuLocalTimer::Timer::timerAtZero ( )

Called when the counter reaches 0.

Definition at line 300 of file timer_cpulocal.cc.

References DPRINTF, intTimer, pendingIntTimer, ArmInterruptPin::raise(), rawIntTimer, restartTimerCounter(), timerControl, and timerLoadValue.

Referenced by Timer().

◆ unserialize()

void CpuLocalTimer::Timer::unserialize ( CheckpointIn cp)
overridevirtual

Unserialize an object.

Read an object's state from the current checkpoint section.

Parameters
cpCheckpoint state

Implements Serializable.

Definition at line 390 of file timer_cpulocal.cc.

References DPRINTF, parent, pendingIntTimer, pendingIntWatchdog, rawIntTimer, rawIntWatchdog, rawResetWatchdog, EventManager::schedule(), timerControl, timerLoadValue, timerZeroEvent, UNSERIALIZE_SCALAR, watchdogControl, watchdogDisableReg, watchdogLoadValue, and watchdogZeroEvent.

Referenced by name(), and CpuLocalTimer::params().

◆ watchdogAtZero()

void CpuLocalTimer::Timer::watchdogAtZero ( )

◆ write()

void CpuLocalTimer::Timer::write ( PacketPtr  pkt,
Addr  daddr 
)

Friends And Related Function Documentation

◆ CpuLocalTimer

friend class CpuLocalTimer
friend

Definition at line 149 of file timer_cpulocal.hh.

Referenced by CpuLocalTimer::params(), and CpuLocalTimer::unserialize().

Member Data Documentation

◆ autoReload

Bitfield< 1 > CpuLocalTimer::Timer::autoReload

Definition at line 76 of file timer_cpulocal.hh.

◆ intEnable

Bitfield< 2 > CpuLocalTimer::Timer::intEnable

Definition at line 77 of file timer_cpulocal.hh.

◆ intTimer

ArmInterruptPin* CpuLocalTimer::Timer::intTimer

Interrupt to cause/clear.

Definition at line 98 of file timer_cpulocal.hh.

Referenced by timerAtZero().

◆ intWatchdog

ArmInterruptPin* CpuLocalTimer::Timer::intWatchdog

Definition at line 99 of file timer_cpulocal.hh.

Referenced by watchdogAtZero().

◆ parent

EndBitUnion (WatchdogCtrl) protected CpuLocalTimer* CpuLocalTimer::Timer::parent

Pointer to parent class.

Definition at line 89 of file timer_cpulocal.hh.

Referenced by read(), restartTimerCounter(), restartWatchdogCounter(), and unserialize().

◆ pendingIntTimer

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 114 of file timer_cpulocal.hh.

Referenced by serialize(), timerAtZero(), unserialize(), and write().

◆ pendingIntWatchdog

bool CpuLocalTimer::Timer::pendingIntWatchdog

Definition at line 115 of file timer_cpulocal.hh.

Referenced by serialize(), unserialize(), watchdogAtZero(), and write().

◆ prescalar

Bitfield< 15, 8 > CpuLocalTimer::Timer::prescalar

Definition at line 79 of file timer_cpulocal.hh.

◆ rawIntTimer

bool CpuLocalTimer::Timer::rawIntTimer

If timer has caused an interrupt.

This is irrespective of interrupt enable

Definition at line 107 of file timer_cpulocal.hh.

Referenced by read(), serialize(), timerAtZero(), unserialize(), and write().

◆ rawIntWatchdog

bool CpuLocalTimer::Timer::rawIntWatchdog

Definition at line 108 of file timer_cpulocal.hh.

Referenced by read(), serialize(), unserialize(), watchdogAtZero(), and write().

◆ rawResetWatchdog

bool CpuLocalTimer::Timer::rawResetWatchdog

Definition at line 109 of file timer_cpulocal.hh.

Referenced by read(), serialize(), unserialize(), watchdogAtZero(), and write().

◆ reserved [1/2]

Bitfield<7,3> CpuLocalTimer::Timer::reserved

Definition at line 78 of file timer_cpulocal.hh.

◆ reserved [2/2]

Bitfield<7,4> CpuLocalTimer::Timer::reserved

Definition at line 87 of file timer_cpulocal.hh.

◆ timerControl

TimerCtrl CpuLocalTimer::Timer::timerControl

Control register as specified above.

Definition at line 102 of file timer_cpulocal.hh.

Referenced by read(), restartTimerCounter(), serialize(), timerAtZero(), unserialize(), and write().

◆ timerLoadValue

uint32_t CpuLocalTimer::Timer::timerLoadValue

Value to load into counters when periodic mode reaches 0.

Definition at line 118 of file timer_cpulocal.hh.

Referenced by read(), serialize(), timerAtZero(), unserialize(), and write().

◆ timerZeroEvent

EventFunctionWrapper CpuLocalTimer::Timer::timerZeroEvent

Definition at line 123 of file timer_cpulocal.hh.

Referenced by read(), restartTimerCounter(), serialize(), and unserialize().

◆ watchdogControl

WatchdogCtrl CpuLocalTimer::Timer::watchdogControl

◆ watchdogDisableReg

uint32_t CpuLocalTimer::Timer::watchdogDisableReg

Definition at line 110 of file timer_cpulocal.hh.

Referenced by serialize(), unserialize(), and write().

◆ watchdogLoadValue

uint32_t CpuLocalTimer::Timer::watchdogLoadValue

Definition at line 119 of file timer_cpulocal.hh.

Referenced by read(), serialize(), unserialize(), watchdogAtZero(), and write().

◆ watchdogMode

Bitfield<3> CpuLocalTimer::Timer::watchdogMode

Definition at line 86 of file timer_cpulocal.hh.

◆ watchdogZeroEvent

EventFunctionWrapper CpuLocalTimer::Timer::watchdogZeroEvent

Definition at line 126 of file timer_cpulocal.hh.

Referenced by read(), restartWatchdogCounter(), serialize(), Timer(), and unserialize().


The documentation for this class was generated from the following files:

Generated on Mon Jun 8 2020 15:45:21 for gem5 by doxygen 1.8.13