Go to the documentation of this file.
29 #ifndef __DEV_8254_HH__
30 #define __DEV_8254_HH__
38 #include "debug/Intel8254Timer.hh"
104 void setTo(
int clocks);
162 void setRW(
int rw_val);
267 #endif // __DEV_8254_HH__
void latchCount()
Latch the current count (if one is not already latched)
virtual ~Intel8254Timer()
uint8_t mode
Current mode of operation.
Programmable Interval Timer (Intel 8254)
void process()
Event process.
int currentCount()
Get the current count for this counter.
void startup()
Start ticking.
void writeCounter(unsigned int num, const uint8_t data)
EndBitUnion(CtrlReg) enum SelectVal
Counter * counter
Pointer back to Counter.
const std::string & name() const
BitUnion8(CtrlReg) Bitfield< 7
uint16_t initial_count
Initial count value.
Intel8254Timer * parent
Pointer to container.
virtual const char * description() const
Event description.
void setMode(int mode_val)
Set operational mode.
uint64_t Tick
Tick count type.
Intel8254Timer(EventManager *em, const std::string &name, Counter *counter0, Counter *counter1, Counter *counter2)
virtual void counterInterrupt(unsigned int num)
uint8_t readCounter(unsigned int num)
bool outputHigh(unsigned int num)
const std::string & name() const
void serialize(const std::string &base, CheckpointOut &cp) const
Serialize this object to the given output stream.
uint16_t latched_count
Latched count.
Event for counter interrupt.
uint8_t read()
Read a count byte.
Counter(Intel8254Timer *p, const std::string &name, unsigned int num)
bool output_high
Output goes high when the counter reaches zero.
void startup()
Start ticking.
void unserialize(const std::string &base, CheckpointIn &cp)
Reconstruct the state of this object from a checkpoint.
double Counter
All counters are of 64-bit values.
void setRW(int rw_val)
Set the read/write mode.
void serialize(const std::string &base, CheckpointOut &cp) const
Serialize this object to the given output stream.
bool latch_on
State of the count latch.
std::ostream CheckpointOut
uint8_t read_byte
Determine which byte of a 16-bit count value to read/write.
bool outputHigh()
Is the output high?
void unserialize(const std::string &base, CheckpointIn &cp)
Reconstruct the state of this object from a checkpoint.
uint16_t period
Interrupt period.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Counter * counter[3]
PIT has three seperate counters.
void writeControl(const CtrlReg data)
Write control word.
void setBCD(int bcd_val)
Set count encoding.
void write(const uint8_t data)
Write a count byte.
Tick offset
When to start ticking.
bool running
True after startup is called.
Generated on Tue Sep 7 2021 14:53:46 for gem5 by doxygen 1.8.17