|
@@ -399,6 +399,10 @@ static void cmos_ioport_write(void *opaque, uint32_t addr, uint32_t data)
|
|
s->cmos_data[s->cmos_index] = data;
|
|
s->cmos_data[s->cmos_index] = data;
|
|
check_update_timer(s);
|
|
check_update_timer(s);
|
|
break;
|
|
break;
|
|
|
|
+ case RTC_IBM_PS2_CENTURY_BYTE:
|
|
|
|
+ s->cmos_index = RTC_CENTURY;
|
|
|
|
+ /* fall through */
|
|
|
|
+ case RTC_CENTURY:
|
|
case RTC_SECONDS:
|
|
case RTC_SECONDS:
|
|
case RTC_MINUTES:
|
|
case RTC_MINUTES:
|
|
case RTC_HOURS:
|
|
case RTC_HOURS:
|
|
@@ -598,6 +602,10 @@ static uint32_t cmos_ioport_read(void *opaque, uint32_t addr)
|
|
return 0xff;
|
|
return 0xff;
|
|
} else {
|
|
} else {
|
|
switch(s->cmos_index) {
|
|
switch(s->cmos_index) {
|
|
|
|
+ case RTC_IBM_PS2_CENTURY_BYTE:
|
|
|
|
+ s->cmos_index = RTC_CENTURY;
|
|
|
|
+ /* fall through */
|
|
|
|
+ case RTC_CENTURY:
|
|
case RTC_SECONDS:
|
|
case RTC_SECONDS:
|
|
case RTC_MINUTES:
|
|
case RTC_MINUTES:
|
|
case RTC_HOURS:
|
|
case RTC_HOURS:
|
|
@@ -661,10 +669,6 @@ void rtc_set_memory(ISADevice *dev, int addr, int val)
|
|
s->cmos_data[addr] = val;
|
|
s->cmos_data[addr] = val;
|
|
}
|
|
}
|
|
|
|
|
|
-/* PC cmos mappings */
|
|
|
|
-#define REG_IBM_CENTURY_BYTE 0x32
|
|
|
|
-#define REG_IBM_PS2_CENTURY_BYTE 0x37
|
|
|
|
-
|
|
|
|
static void rtc_set_date_from_host(ISADevice *dev)
|
|
static void rtc_set_date_from_host(ISADevice *dev)
|
|
{
|
|
{
|
|
RTCState *s = DO_UPCAST(RTCState, dev, dev);
|
|
RTCState *s = DO_UPCAST(RTCState, dev, dev);
|
|
@@ -681,8 +685,7 @@ static void rtc_set_date_from_host(ISADevice *dev)
|
|
rtc_set_cmos(s, &tm);
|
|
rtc_set_cmos(s, &tm);
|
|
|
|
|
|
val = rtc_to_bcd(s, (tm.tm_year / 100) + 19);
|
|
val = rtc_to_bcd(s, (tm.tm_year / 100) + 19);
|
|
- rtc_set_memory(dev, REG_IBM_CENTURY_BYTE, val);
|
|
|
|
- rtc_set_memory(dev, REG_IBM_PS2_CENTURY_BYTE, val);
|
|
|
|
|
|
+ rtc_set_memory(dev, RTC_CENTURY, val);
|
|
}
|
|
}
|
|
|
|
|
|
static int rtc_post_load(void *opaque, int version_id)
|
|
static int rtc_post_load(void *opaque, int version_id)
|