* [Qemu-devel] [6357] hpet config mask fix
@ 2009-01-16 21:38 Aurelien Jarno
0 siblings, 0 replies; only message in thread
From: Aurelien Jarno @ 2009-01-16 21:38 UTC (permalink / raw)
To: qemu-devel
Revision: 6357
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6357
Author: aurel32
Date: 2009-01-16 21:38:58 +0000 (Fri, 16 Jan 2009)
Log Message:
-----------
hpet config mask fix
I discovered a bug in the hpet code that caused Windows to boot without
hpet. The config mask I was using was preventing the guest from placing
the hpet into 32 bit mode.
(Beth Kon)
Modified Paths:
--------------
trunk/hw/hpet.c
trunk/hw/hpet_emul.h
Modified: trunk/hw/hpet.c
===================================================================
--- trunk/hw/hpet.c 2009-01-16 21:13:58 UTC (rev 6356)
+++ trunk/hw/hpet.c 2009-01-16 21:38:58 UTC (rev 6357)
@@ -388,7 +388,8 @@
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 @@
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)
Modified: trunk/hw/hpet_emul.h
===================================================================
--- trunk/hw/hpet_emul.h 2009-01-16 21:13:58 UTC (rev 6356)
+++ trunk/hw/hpet_emul.h 2009-01-16 21:38:58 UTC (rev 6357)
@@ -36,6 +36,7 @@
#define HPET_TN_CFG 0x000
#define HPET_TN_CMP 0x008
#define HPET_TN_ROUTE 0x010
+#define HPET_CFG_WRITE_MASK 0x3
#define HPET_TN_ENABLE 0x004
@@ -45,6 +46,7 @@
#define HPET_TN_SETVAL 0x040
#define HPET_TN_32BIT 0x100
#define HPET_TN_INT_ROUTE_MASK 0x3e00
+#define HPET_TN_CFG_WRITE_MASK 0x3f4e
#define HPET_TN_INT_ROUTE_SHIFT 9
#define HPET_TN_INT_ROUTE_CAP_SHIFT 32
#define HPET_TN_CFG_BITS_READONLY_OR_RESERVED 0xffff80b1U
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-01-16 21:39 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-16 21:38 [Qemu-devel] [6357] hpet config mask fix Aurelien Jarno
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).