mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
replace TABs with spaces
Bring the files in line with the QEMU coding style, with spaces for indentation. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/378 Signed-off-by: Yeqi Fu <fufuyqqqqqq@gmail.com> Message-Id: <20230315032649.57568-1-fufuyqqqqqq@gmail.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
5cb993ff13
commit
48805df9c2
32 changed files with 2022 additions and 2022 deletions
150
hw/rtc/m48t59.c
150
hw/rtc/m48t59.c
|
@ -93,9 +93,9 @@ static void alarm_cb (void *opaque)
|
|||
|
||||
qemu_set_irq(NVRAM->IRQ, 1);
|
||||
if ((NVRAM->buffer[0x1FF5] & 0x80) == 0 &&
|
||||
(NVRAM->buffer[0x1FF4] & 0x80) == 0 &&
|
||||
(NVRAM->buffer[0x1FF3] & 0x80) == 0 &&
|
||||
(NVRAM->buffer[0x1FF2] & 0x80) == 0) {
|
||||
(NVRAM->buffer[0x1FF4] & 0x80) == 0 &&
|
||||
(NVRAM->buffer[0x1FF3] & 0x80) == 0 &&
|
||||
(NVRAM->buffer[0x1FF2] & 0x80) == 0) {
|
||||
/* Repeat once a month */
|
||||
qemu_get_timedate(&tm, NVRAM->time_offset);
|
||||
tm.tm_mon++;
|
||||
|
@ -105,21 +105,21 @@ static void alarm_cb (void *opaque)
|
|||
}
|
||||
next_time = qemu_timedate_diff(&tm) - NVRAM->time_offset;
|
||||
} else if ((NVRAM->buffer[0x1FF5] & 0x80) != 0 &&
|
||||
(NVRAM->buffer[0x1FF4] & 0x80) == 0 &&
|
||||
(NVRAM->buffer[0x1FF3] & 0x80) == 0 &&
|
||||
(NVRAM->buffer[0x1FF2] & 0x80) == 0) {
|
||||
(NVRAM->buffer[0x1FF4] & 0x80) == 0 &&
|
||||
(NVRAM->buffer[0x1FF3] & 0x80) == 0 &&
|
||||
(NVRAM->buffer[0x1FF2] & 0x80) == 0) {
|
||||
/* Repeat once a day */
|
||||
next_time = 24 * 60 * 60;
|
||||
} else if ((NVRAM->buffer[0x1FF5] & 0x80) != 0 &&
|
||||
(NVRAM->buffer[0x1FF4] & 0x80) != 0 &&
|
||||
(NVRAM->buffer[0x1FF3] & 0x80) == 0 &&
|
||||
(NVRAM->buffer[0x1FF2] & 0x80) == 0) {
|
||||
(NVRAM->buffer[0x1FF4] & 0x80) != 0 &&
|
||||
(NVRAM->buffer[0x1FF3] & 0x80) == 0 &&
|
||||
(NVRAM->buffer[0x1FF2] & 0x80) == 0) {
|
||||
/* Repeat once an hour */
|
||||
next_time = 60 * 60;
|
||||
} else if ((NVRAM->buffer[0x1FF5] & 0x80) != 0 &&
|
||||
(NVRAM->buffer[0x1FF4] & 0x80) != 0 &&
|
||||
(NVRAM->buffer[0x1FF3] & 0x80) != 0 &&
|
||||
(NVRAM->buffer[0x1FF2] & 0x80) == 0) {
|
||||
(NVRAM->buffer[0x1FF4] & 0x80) != 0 &&
|
||||
(NVRAM->buffer[0x1FF3] & 0x80) != 0 &&
|
||||
(NVRAM->buffer[0x1FF2] & 0x80) == 0) {
|
||||
/* Repeat once a minute */
|
||||
next_time = 60;
|
||||
} else {
|
||||
|
@ -161,13 +161,13 @@ static void watchdog_cb (void *opaque)
|
|||
|
||||
NVRAM->buffer[0x1FF0] |= 0x80;
|
||||
if (NVRAM->buffer[0x1FF7] & 0x80) {
|
||||
NVRAM->buffer[0x1FF7] = 0x00;
|
||||
NVRAM->buffer[0x1FFC] &= ~0x40;
|
||||
NVRAM->buffer[0x1FF7] = 0x00;
|
||||
NVRAM->buffer[0x1FFC] &= ~0x40;
|
||||
/* May it be a hw CPU Reset instead ? */
|
||||
qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
|
||||
} else {
|
||||
qemu_set_irq(NVRAM->IRQ, 1);
|
||||
qemu_set_irq(NVRAM->IRQ, 0);
|
||||
qemu_set_irq(NVRAM->IRQ, 1);
|
||||
qemu_set_irq(NVRAM->IRQ, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -262,80 +262,80 @@ void m48t59_write(M48t59State *NVRAM, uint32_t addr, uint32_t val)
|
|||
case 0x1FF9:
|
||||
case 0x07F9:
|
||||
/* seconds (BCD) */
|
||||
tmp = from_bcd(val & 0x7F);
|
||||
if (tmp >= 0 && tmp <= 59) {
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_sec = tmp;
|
||||
set_time(NVRAM, &tm);
|
||||
}
|
||||
tmp = from_bcd(val & 0x7F);
|
||||
if (tmp >= 0 && tmp <= 59) {
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_sec = tmp;
|
||||
set_time(NVRAM, &tm);
|
||||
}
|
||||
if ((val & 0x80) ^ (NVRAM->buffer[addr] & 0x80)) {
|
||||
if (val & 0x80) {
|
||||
NVRAM->stop_time = time(NULL);
|
||||
} else {
|
||||
NVRAM->time_offset += NVRAM->stop_time - time(NULL);
|
||||
NVRAM->stop_time = 0;
|
||||
}
|
||||
}
|
||||
if (val & 0x80) {
|
||||
NVRAM->stop_time = time(NULL);
|
||||
} else {
|
||||
NVRAM->time_offset += NVRAM->stop_time - time(NULL);
|
||||
NVRAM->stop_time = 0;
|
||||
}
|
||||
}
|
||||
NVRAM->buffer[addr] = val & 0x80;
|
||||
break;
|
||||
case 0x1FFA:
|
||||
case 0x07FA:
|
||||
/* minutes (BCD) */
|
||||
tmp = from_bcd(val & 0x7F);
|
||||
if (tmp >= 0 && tmp <= 59) {
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_min = tmp;
|
||||
set_time(NVRAM, &tm);
|
||||
}
|
||||
tmp = from_bcd(val & 0x7F);
|
||||
if (tmp >= 0 && tmp <= 59) {
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_min = tmp;
|
||||
set_time(NVRAM, &tm);
|
||||
}
|
||||
break;
|
||||
case 0x1FFB:
|
||||
case 0x07FB:
|
||||
/* hours (BCD) */
|
||||
tmp = from_bcd(val & 0x3F);
|
||||
if (tmp >= 0 && tmp <= 23) {
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_hour = tmp;
|
||||
set_time(NVRAM, &tm);
|
||||
}
|
||||
tmp = from_bcd(val & 0x3F);
|
||||
if (tmp >= 0 && tmp <= 23) {
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_hour = tmp;
|
||||
set_time(NVRAM, &tm);
|
||||
}
|
||||
break;
|
||||
case 0x1FFC:
|
||||
case 0x07FC:
|
||||
/* day of the week / century */
|
||||
tmp = from_bcd(val & 0x07);
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_wday = tmp;
|
||||
set_time(NVRAM, &tm);
|
||||
tmp = from_bcd(val & 0x07);
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_wday = tmp;
|
||||
set_time(NVRAM, &tm);
|
||||
NVRAM->buffer[addr] = val & 0x40;
|
||||
break;
|
||||
case 0x1FFD:
|
||||
case 0x07FD:
|
||||
/* date (BCD) */
|
||||
tmp = from_bcd(val & 0x3F);
|
||||
if (tmp != 0) {
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_mday = tmp;
|
||||
set_time(NVRAM, &tm);
|
||||
}
|
||||
tmp = from_bcd(val & 0x3F);
|
||||
if (tmp != 0) {
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_mday = tmp;
|
||||
set_time(NVRAM, &tm);
|
||||
}
|
||||
break;
|
||||
case 0x1FFE:
|
||||
case 0x07FE:
|
||||
/* month */
|
||||
tmp = from_bcd(val & 0x1F);
|
||||
if (tmp >= 1 && tmp <= 12) {
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_mon = tmp - 1;
|
||||
set_time(NVRAM, &tm);
|
||||
}
|
||||
tmp = from_bcd(val & 0x1F);
|
||||
if (tmp >= 1 && tmp <= 12) {
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_mon = tmp - 1;
|
||||
set_time(NVRAM, &tm);
|
||||
}
|
||||
break;
|
||||
case 0x1FFF:
|
||||
case 0x07FF:
|
||||
/* year */
|
||||
tmp = from_bcd(val);
|
||||
if (tmp >= 0 && tmp <= 99) {
|
||||
get_time(NVRAM, &tm);
|
||||
tmp = from_bcd(val);
|
||||
if (tmp >= 0 && tmp <= 99) {
|
||||
get_time(NVRAM, &tm);
|
||||
tm.tm_year = from_bcd(val) + NVRAM->base_year - 1900;
|
||||
set_time(NVRAM, &tm);
|
||||
}
|
||||
set_time(NVRAM, &tm);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
/* Check lock registers state */
|
||||
|
@ -346,7 +346,7 @@ void m48t59_write(M48t59State *NVRAM, uint32_t addr, uint32_t val)
|
|||
do_write:
|
||||
if (addr < NVRAM->size) {
|
||||
NVRAM->buffer[addr] = val & 0xFF;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -367,34 +367,34 @@ uint32_t m48t59_read(M48t59State *NVRAM, uint32_t addr)
|
|||
switch (addr) {
|
||||
case 0x1FF0:
|
||||
/* flags register */
|
||||
goto do_read;
|
||||
goto do_read;
|
||||
case 0x1FF1:
|
||||
/* unused */
|
||||
retval = 0;
|
||||
retval = 0;
|
||||
break;
|
||||
case 0x1FF2:
|
||||
/* alarm seconds */
|
||||
goto do_read;
|
||||
goto do_read;
|
||||
case 0x1FF3:
|
||||
/* alarm minutes */
|
||||
goto do_read;
|
||||
goto do_read;
|
||||
case 0x1FF4:
|
||||
/* alarm hours */
|
||||
goto do_read;
|
||||
goto do_read;
|
||||
case 0x1FF5:
|
||||
/* alarm date */
|
||||
goto do_read;
|
||||
goto do_read;
|
||||
case 0x1FF6:
|
||||
/* interrupts */
|
||||
goto do_read;
|
||||
goto do_read;
|
||||
case 0x1FF7:
|
||||
/* A read resets the watchdog */
|
||||
set_up_watchdog(NVRAM, NVRAM->buffer[0x1FF7]);
|
||||
goto do_read;
|
||||
/* A read resets the watchdog */
|
||||
set_up_watchdog(NVRAM, NVRAM->buffer[0x1FF7]);
|
||||
goto do_read;
|
||||
case 0x1FF8:
|
||||
case 0x07F8:
|
||||
/* control */
|
||||
goto do_read;
|
||||
goto do_read;
|
||||
case 0x1FF9:
|
||||
case 0x07F9:
|
||||
/* seconds (BCD) */
|
||||
|
@ -446,7 +446,7 @@ uint32_t m48t59_read(M48t59State *NVRAM, uint32_t addr)
|
|||
do_read:
|
||||
if (addr < NVRAM->size) {
|
||||
retval = NVRAM->buffer[addr];
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
trace_m48txx_nvram_mem_read(addr, retval);
|
||||
|
|
|
@ -112,19 +112,19 @@ static void menelaus_rtc_hz(void *opaque)
|
|||
s->rtc.alm_sec --;
|
||||
s->rtc.next += 1000;
|
||||
timer_mod(s->rtc.hz_tm, s->rtc.next);
|
||||
if ((s->rtc.ctrl >> 3) & 3) { /* EVERY */
|
||||
if ((s->rtc.ctrl >> 3) & 3) { /* EVERY */
|
||||
menelaus_rtc_update(s);
|
||||
if (((s->rtc.ctrl >> 3) & 3) == 1 && !s->rtc.tm.tm_sec)
|
||||
s->status |= 1 << 8; /* RTCTMR */
|
||||
s->status |= 1 << 8; /* RTCTMR */
|
||||
else if (((s->rtc.ctrl >> 3) & 3) == 2 && !s->rtc.tm.tm_min)
|
||||
s->status |= 1 << 8; /* RTCTMR */
|
||||
s->status |= 1 << 8; /* RTCTMR */
|
||||
else if (!s->rtc.tm.tm_hour)
|
||||
s->status |= 1 << 8; /* RTCTMR */
|
||||
s->status |= 1 << 8; /* RTCTMR */
|
||||
} else
|
||||
s->status |= 1 << 8; /* RTCTMR */
|
||||
if ((s->rtc.ctrl >> 1) & 1) { /* RTC_AL_EN */
|
||||
s->status |= 1 << 8; /* RTCTMR */
|
||||
if ((s->rtc.ctrl >> 1) & 1) { /* RTC_AL_EN */
|
||||
if (s->rtc.alm_sec == 0)
|
||||
s->status |= 1 << 9; /* RTCALM */
|
||||
s->status |= 1 << 9; /* RTCALM */
|
||||
/* TODO: wake-up */
|
||||
}
|
||||
if (s->rtc.next_comp <= 0) {
|
||||
|
@ -140,19 +140,19 @@ static void menelaus_reset(I2CSlave *i2c)
|
|||
|
||||
s->reg = 0x00;
|
||||
|
||||
s->vcore[0] = 0x0c; /* XXX: X-loader needs 0x8c? check! */
|
||||
s->vcore[0] = 0x0c; /* XXX: X-loader needs 0x8c? check! */
|
||||
s->vcore[1] = 0x05;
|
||||
s->vcore[2] = 0x02;
|
||||
s->vcore[3] = 0x0c;
|
||||
s->vcore[4] = 0x03;
|
||||
s->dcdc[0] = 0x33; /* Depends on wiring */
|
||||
s->dcdc[0] = 0x33; /* Depends on wiring */
|
||||
s->dcdc[1] = 0x03;
|
||||
s->dcdc[2] = 0x00;
|
||||
s->ldo[0] = 0x95;
|
||||
s->ldo[1] = 0x7e;
|
||||
s->ldo[2] = 0x00;
|
||||
s->ldo[3] = 0x00; /* Depends on wiring */
|
||||
s->ldo[4] = 0x03; /* Depends on wiring */
|
||||
s->ldo[3] = 0x00; /* Depends on wiring */
|
||||
s->ldo[4] = 0x03; /* Depends on wiring */
|
||||
s->ldo[5] = 0x00;
|
||||
s->ldo[6] = 0x00;
|
||||
s->ldo[7] = 0x00;
|
||||
|
@ -203,70 +203,70 @@ static void menelaus_gpio_set(void *opaque, int line, int level)
|
|||
}
|
||||
|
||||
if (!s->pwrbtn_state && level) {
|
||||
s->status |= 1 << 11; /* PSHBTN */
|
||||
s->status |= 1 << 11; /* PSHBTN */
|
||||
menelaus_update(s);
|
||||
}
|
||||
s->pwrbtn_state = level;
|
||||
}
|
||||
|
||||
#define MENELAUS_REV 0x01
|
||||
#define MENELAUS_VCORE_CTRL1 0x02
|
||||
#define MENELAUS_VCORE_CTRL2 0x03
|
||||
#define MENELAUS_VCORE_CTRL3 0x04
|
||||
#define MENELAUS_VCORE_CTRL4 0x05
|
||||
#define MENELAUS_VCORE_CTRL5 0x06
|
||||
#define MENELAUS_DCDC_CTRL1 0x07
|
||||
#define MENELAUS_DCDC_CTRL2 0x08
|
||||
#define MENELAUS_DCDC_CTRL3 0x09
|
||||
#define MENELAUS_LDO_CTRL1 0x0a
|
||||
#define MENELAUS_LDO_CTRL2 0x0b
|
||||
#define MENELAUS_LDO_CTRL3 0x0c
|
||||
#define MENELAUS_LDO_CTRL4 0x0d
|
||||
#define MENELAUS_LDO_CTRL5 0x0e
|
||||
#define MENELAUS_LDO_CTRL6 0x0f
|
||||
#define MENELAUS_LDO_CTRL7 0x10
|
||||
#define MENELAUS_LDO_CTRL8 0x11
|
||||
#define MENELAUS_SLEEP_CTRL1 0x12
|
||||
#define MENELAUS_SLEEP_CTRL2 0x13
|
||||
#define MENELAUS_DEVICE_OFF 0x14
|
||||
#define MENELAUS_OSC_CTRL 0x15
|
||||
#define MENELAUS_DETECT_CTRL 0x16
|
||||
#define MENELAUS_INT_MASK1 0x17
|
||||
#define MENELAUS_INT_MASK2 0x18
|
||||
#define MENELAUS_INT_STATUS1 0x19
|
||||
#define MENELAUS_INT_STATUS2 0x1a
|
||||
#define MENELAUS_INT_ACK1 0x1b
|
||||
#define MENELAUS_INT_ACK2 0x1c
|
||||
#define MENELAUS_GPIO_CTRL 0x1d
|
||||
#define MENELAUS_GPIO_IN 0x1e
|
||||
#define MENELAUS_GPIO_OUT 0x1f
|
||||
#define MENELAUS_BBSMS 0x20
|
||||
#define MENELAUS_RTC_CTRL 0x21
|
||||
#define MENELAUS_RTC_UPDATE 0x22
|
||||
#define MENELAUS_RTC_SEC 0x23
|
||||
#define MENELAUS_RTC_MIN 0x24
|
||||
#define MENELAUS_RTC_HR 0x25
|
||||
#define MENELAUS_RTC_DAY 0x26
|
||||
#define MENELAUS_RTC_MON 0x27
|
||||
#define MENELAUS_RTC_YR 0x28
|
||||
#define MENELAUS_RTC_WKDAY 0x29
|
||||
#define MENELAUS_RTC_AL_SEC 0x2a
|
||||
#define MENELAUS_RTC_AL_MIN 0x2b
|
||||
#define MENELAUS_RTC_AL_HR 0x2c
|
||||
#define MENELAUS_RTC_AL_DAY 0x2d
|
||||
#define MENELAUS_RTC_AL_MON 0x2e
|
||||
#define MENELAUS_RTC_AL_YR 0x2f
|
||||
#define MENELAUS_RTC_COMP_MSB 0x30
|
||||
#define MENELAUS_RTC_COMP_LSB 0x31
|
||||
#define MENELAUS_S1_PULL_EN 0x32
|
||||
#define MENELAUS_S1_PULL_DIR 0x33
|
||||
#define MENELAUS_S2_PULL_EN 0x34
|
||||
#define MENELAUS_S2_PULL_DIR 0x35
|
||||
#define MENELAUS_MCT_CTRL1 0x36
|
||||
#define MENELAUS_MCT_CTRL2 0x37
|
||||
#define MENELAUS_MCT_CTRL3 0x38
|
||||
#define MENELAUS_MCT_PIN_ST 0x39
|
||||
#define MENELAUS_DEBOUNCE1 0x3a
|
||||
#define MENELAUS_REV 0x01
|
||||
#define MENELAUS_VCORE_CTRL1 0x02
|
||||
#define MENELAUS_VCORE_CTRL2 0x03
|
||||
#define MENELAUS_VCORE_CTRL3 0x04
|
||||
#define MENELAUS_VCORE_CTRL4 0x05
|
||||
#define MENELAUS_VCORE_CTRL5 0x06
|
||||
#define MENELAUS_DCDC_CTRL1 0x07
|
||||
#define MENELAUS_DCDC_CTRL2 0x08
|
||||
#define MENELAUS_DCDC_CTRL3 0x09
|
||||
#define MENELAUS_LDO_CTRL1 0x0a
|
||||
#define MENELAUS_LDO_CTRL2 0x0b
|
||||
#define MENELAUS_LDO_CTRL3 0x0c
|
||||
#define MENELAUS_LDO_CTRL4 0x0d
|
||||
#define MENELAUS_LDO_CTRL5 0x0e
|
||||
#define MENELAUS_LDO_CTRL6 0x0f
|
||||
#define MENELAUS_LDO_CTRL7 0x10
|
||||
#define MENELAUS_LDO_CTRL8 0x11
|
||||
#define MENELAUS_SLEEP_CTRL1 0x12
|
||||
#define MENELAUS_SLEEP_CTRL2 0x13
|
||||
#define MENELAUS_DEVICE_OFF 0x14
|
||||
#define MENELAUS_OSC_CTRL 0x15
|
||||
#define MENELAUS_DETECT_CTRL 0x16
|
||||
#define MENELAUS_INT_MASK1 0x17
|
||||
#define MENELAUS_INT_MASK2 0x18
|
||||
#define MENELAUS_INT_STATUS1 0x19
|
||||
#define MENELAUS_INT_STATUS2 0x1a
|
||||
#define MENELAUS_INT_ACK1 0x1b
|
||||
#define MENELAUS_INT_ACK2 0x1c
|
||||
#define MENELAUS_GPIO_CTRL 0x1d
|
||||
#define MENELAUS_GPIO_IN 0x1e
|
||||
#define MENELAUS_GPIO_OUT 0x1f
|
||||
#define MENELAUS_BBSMS 0x20
|
||||
#define MENELAUS_RTC_CTRL 0x21
|
||||
#define MENELAUS_RTC_UPDATE 0x22
|
||||
#define MENELAUS_RTC_SEC 0x23
|
||||
#define MENELAUS_RTC_MIN 0x24
|
||||
#define MENELAUS_RTC_HR 0x25
|
||||
#define MENELAUS_RTC_DAY 0x26
|
||||
#define MENELAUS_RTC_MON 0x27
|
||||
#define MENELAUS_RTC_YR 0x28
|
||||
#define MENELAUS_RTC_WKDAY 0x29
|
||||
#define MENELAUS_RTC_AL_SEC 0x2a
|
||||
#define MENELAUS_RTC_AL_MIN 0x2b
|
||||
#define MENELAUS_RTC_AL_HR 0x2c
|
||||
#define MENELAUS_RTC_AL_DAY 0x2d
|
||||
#define MENELAUS_RTC_AL_MON 0x2e
|
||||
#define MENELAUS_RTC_AL_YR 0x2f
|
||||
#define MENELAUS_RTC_COMP_MSB 0x30
|
||||
#define MENELAUS_RTC_COMP_LSB 0x31
|
||||
#define MENELAUS_S1_PULL_EN 0x32
|
||||
#define MENELAUS_S1_PULL_DIR 0x33
|
||||
#define MENELAUS_S2_PULL_EN 0x34
|
||||
#define MENELAUS_S2_PULL_DIR 0x35
|
||||
#define MENELAUS_MCT_CTRL1 0x36
|
||||
#define MENELAUS_MCT_CTRL2 0x37
|
||||
#define MENELAUS_MCT_CTRL3 0x38
|
||||
#define MENELAUS_MCT_PIN_ST 0x39
|
||||
#define MENELAUS_DEBOUNCE1 0x3a
|
||||
|
||||
static uint8_t menelaus_read(void *opaque, uint8_t addr)
|
||||
{
|
||||
|
@ -293,7 +293,7 @@ static uint8_t menelaus_read(void *opaque, uint8_t addr)
|
|||
return 0;
|
||||
|
||||
case MENELAUS_OSC_CTRL:
|
||||
return s->osc | (1 << 7); /* CLK32K_GOOD */
|
||||
return s->osc | (1 << 7); /* CLK32K_GOOD */
|
||||
|
||||
case MENELAUS_DETECT_CTRL:
|
||||
return s->detect;
|
||||
|
@ -334,9 +334,9 @@ static uint8_t menelaus_read(void *opaque, uint8_t addr)
|
|||
return to_bcd(s->rtc.tm.tm_min);
|
||||
case MENELAUS_RTC_HR:
|
||||
menelaus_rtc_update(s);
|
||||
if ((s->rtc.ctrl >> 2) & 1) /* MODE12_n24 */
|
||||
if ((s->rtc.ctrl >> 2) & 1) /* MODE12_n24 */
|
||||
return to_bcd((s->rtc.tm.tm_hour % 12) + 1) |
|
||||
(!!(s->rtc.tm.tm_hour >= 12) << 7); /* PM_nAM */
|
||||
(!!(s->rtc.tm.tm_hour >= 12) << 7); /* PM_nAM */
|
||||
else
|
||||
return to_bcd(s->rtc.tm.tm_hour);
|
||||
case MENELAUS_RTC_DAY:
|
||||
|
@ -356,7 +356,7 @@ static uint8_t menelaus_read(void *opaque, uint8_t addr)
|
|||
case MENELAUS_RTC_AL_MIN:
|
||||
return to_bcd(s->rtc.alm.tm_min);
|
||||
case MENELAUS_RTC_AL_HR:
|
||||
if ((s->rtc.ctrl >> 2) & 1) /* MODE12_n24 */
|
||||
if ((s->rtc.ctrl >> 2) & 1) /* MODE12_n24 */
|
||||
return to_bcd((s->rtc.alm.tm_hour % 12) + 1) |
|
||||
(!!(s->rtc.alm.tm_hour >= 12) << 7);/* AL_PM_nAM */
|
||||
else
|
||||
|
@ -541,7 +541,7 @@ static void menelaus_write(void *opaque, uint8_t addr, uint8_t value)
|
|||
break;
|
||||
|
||||
case MENELAUS_RTC_CTRL:
|
||||
if ((s->rtc.ctrl ^ value) & 1) { /* RTC_EN */
|
||||
if ((s->rtc.ctrl ^ value) & 1) { /* RTC_EN */
|
||||
if (value & 1)
|
||||
menelaus_rtc_start(s);
|
||||
else
|
||||
|
@ -603,7 +603,7 @@ static void menelaus_write(void *opaque, uint8_t addr, uint8_t value)
|
|||
default:
|
||||
fprintf(stderr, "%s: bad RTC_UPDATE value %02x\n",
|
||||
__func__, value);
|
||||
s->status |= 1 << 10; /* RTCERR */
|
||||
s->status |= 1 << 10; /* RTCERR */
|
||||
menelaus_update(s);
|
||||
}
|
||||
s->rtc.sec_offset = qemu_timedate_diff(&tm);
|
||||
|
@ -615,7 +615,7 @@ static void menelaus_write(void *opaque, uint8_t addr, uint8_t value)
|
|||
s->rtc.tm.tm_min = from_bcd(value & 0x7f);
|
||||
break;
|
||||
case MENELAUS_RTC_HR:
|
||||
s->rtc.tm.tm_hour = (s->rtc.ctrl & (1 << 2)) ? /* MODE12_n24 */
|
||||
s->rtc.tm.tm_hour = (s->rtc.ctrl & (1 << 2)) ? /* MODE12_n24 */
|
||||
MIN(from_bcd(value & 0x3f), 12) + ((value >> 7) ? 11 : -1) :
|
||||
from_bcd(value & 0x3f);
|
||||
break;
|
||||
|
@ -640,7 +640,7 @@ static void menelaus_write(void *opaque, uint8_t addr, uint8_t value)
|
|||
menelaus_alm_update(s);
|
||||
break;
|
||||
case MENELAUS_RTC_AL_HR:
|
||||
s->rtc.alm.tm_hour = (s->rtc.ctrl & (1 << 2)) ? /* MODE12_n24 */
|
||||
s->rtc.alm.tm_hour = (s->rtc.ctrl & (1 << 2)) ? /* MODE12_n24 */
|
||||
MIN(from_bcd(value & 0x3f), 12) + ((value >> 7) ? 11 : -1) :
|
||||
from_bcd(value & 0x3f);
|
||||
menelaus_alm_update(s);
|
||||
|
@ -792,14 +792,14 @@ static int menelaus_post_load(void *opaque, int version_id)
|
|||
{
|
||||
MenelausState *s = opaque;
|
||||
|
||||
if (s->rtc.ctrl & 1) /* RTC_EN */
|
||||
if (s->rtc.ctrl & 1) /* RTC_EN */
|
||||
menelaus_rtc_stop(s);
|
||||
|
||||
s->rtc.next = s->rtc_next_vmstate;
|
||||
|
||||
menelaus_alm_update(s);
|
||||
menelaus_update(s);
|
||||
if (s->rtc.ctrl & 1) /* RTC_EN */
|
||||
if (s->rtc.ctrl & 1) /* RTC_EN */
|
||||
menelaus_rtc_start(s);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue