|
@@ -388,7 +388,8 @@ static void hpet_ram_writel(void *opaque, target_phys_addr_t addr,
|
|
|
switch ((addr - 0x100) % 0x20) {
|
|
|
case HPET_TN_CFG:
|
|
|
dprintf("qemu: hpet_ram_writel HPET_TN_CFG\n");
|
|
|
- timer->config = hpet_fixup_reg(new_val, old_val, 0x3e4e);
|
|
|
+ timer->config = hpet_fixup_reg(new_val, old_val,
|
|
|
+ HPET_TN_CFG_WRITE_MASK);
|
|
|
if (new_val & HPET_TN_32BIT) {
|
|
|
timer->cmp = (uint32_t)timer->cmp;
|
|
|
timer->period = (uint32_t)timer->period;
|
|
@@ -456,7 +457,8 @@ static void hpet_ram_writel(void *opaque, target_phys_addr_t addr,
|
|
|
case HPET_ID:
|
|
|
return;
|
|
|
case HPET_CFG:
|
|
|
- s->config = hpet_fixup_reg(new_val, old_val, 0x3);
|
|
|
+ s->config = hpet_fixup_reg(new_val, old_val,
|
|
|
+ HPET_CFG_WRITE_MASK);
|
|
|
if (activating_bit(old_val, new_val, HPET_CFG_ENABLE)) {
|
|
|
/* Enable main counter and interrupt generation. */
|
|
|
s->hpet_offset = ticks_to_ns(s->hpet_counter)
|