Add RTC event for uip bit
dev/tsunami_io.cc: Add RTC event to change the state of a uip bit dev/tsunami_io.hh: Add RTC event to change state of an uip bit --HG-- extra : convert_revision : acde7bdfe152d3e08f7ed53b4c8e910378f6ae67
This commit is contained in:
parent
f9f4a74986
commit
9b397ce7f4
2 changed files with 45 additions and 0 deletions
|
@ -22,6 +22,38 @@
|
|||
#include "sim/system.hh"
|
||||
|
||||
using namespace std;
|
||||
TsunamiIO::RTCEvent::RTCEvent()
|
||||
: Event(&mainEventQueue)
|
||||
{
|
||||
DPRINTF(Tsunami, "RTC Event Initilizing\n");
|
||||
rtc_uip = 0;
|
||||
schedule(curTick + (curTick % ticksPerSecond));
|
||||
}
|
||||
|
||||
void
|
||||
TsunamiIO::RTCEvent::process()
|
||||
{
|
||||
DPRINTF(Tsunami, "Timer Interrupt\n");
|
||||
if (rtc_uip == 0) {
|
||||
rtc_uip = 1; //Signal a second has occured
|
||||
schedule(curTick + (curTick % ticksPerSecond) - 10);
|
||||
}
|
||||
else
|
||||
rtc_uip = 0; //Done signaling second has occured
|
||||
schedule(curTick + (curTick % ticksPerSecond));
|
||||
}
|
||||
|
||||
const char *
|
||||
TsunamiIO::RTCEvent::description()
|
||||
{
|
||||
return "tsunami RTC changte second";
|
||||
}
|
||||
|
||||
uint8_t
|
||||
TsunamiIO::RTCEvent::rtc_uip_value()
|
||||
{
|
||||
return rtc_uip;
|
||||
}
|
||||
|
||||
TsunamiIO::ClockEvent::ClockEvent()
|
||||
: Event(&mainEventQueue)
|
||||
|
|
|
@ -64,6 +64,19 @@ class TsunamiIO : public MmapDevice
|
|||
|
||||
};
|
||||
|
||||
class RTCEvent : public Event
|
||||
{
|
||||
protected:
|
||||
Tick interval;
|
||||
uint8_t rtc_uip;
|
||||
|
||||
public:
|
||||
RTCEvent();
|
||||
|
||||
virtual void process();
|
||||
virtual const char *description();
|
||||
uint8_t rtc_uip_value();
|
||||
};
|
||||
|
||||
uint8_t mask1;
|
||||
uint8_t mask2;
|
||||
|
|
Loading…
Reference in a new issue