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"
|
#include "sim/system.hh"
|
||||||
|
|
||||||
using namespace std;
|
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()
|
TsunamiIO::ClockEvent::ClockEvent()
|
||||||
: Event(&mainEventQueue)
|
: 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 mask1;
|
||||||
uint8_t mask2;
|
uint8_t mask2;
|
||||||
|
|
Loading…
Reference in a new issue