@@ -686,7 +686,7 @@ ISADevice *rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq)
static Property mc146818rtc_properties[] = {
DEFINE_PROP_INT32("base_year", RTCState, base_year, 1980),
DEFINE_PROP_LOSTTICKPOLICY("lost_tick_policy", RTCState,
- lost_tick_policy, LOST_TICK_DISCARD),
+ lost_tick_policy, LOST_TICK_SLEW),
DEFINE_PROP_END_OF_LIST(),
};
@@ -559,7 +559,16 @@ static void configure_rtc(QemuOpts *opts)
qdev_prop_register_global_list(slew_lost_ticks);
} else if (!strcmp(value, "none")) {
- /* discard is default */
+ static GlobalProperty discard_lost_ticks[] = {
+ {
+ .driver = "mc146818rtc",
+ .property = "lost_tick_policy",
+ .value = "discard",
+ },
+ { /* end of list */ }
+ };
+
+ qdev_prop_register_global_list(discard_lost_ticks);
} else {
fprintf(stderr, "qemu: invalid option value '%s'\n", value);
exit(1);
Windows 2008+ is very sensitive to missed ticks. The RTC is used by default as the time source. If driftfix is not enabled, Windows is prone to blue screening. Signed-off-by: CrÃstian Viana <vianac@linux.vnet.ibm.com> --- hw/mc146818rtc.c | 2 +- vl.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-)