summary refs log tree commit diff stats
path: root/hw/timer/hpet.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2024-07-10 10:53:05 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2024-07-22 19:19:44 +0200
commit9eb7fad3546a89ee7cf0e90f5b1daccf89725cea (patch)
tree4ffdf168c0322469c7824739a2495a4d41526d18 /hw/timer/hpet.c
parentf0ccf770789e48b7a73497b465fdc892d28c1339 (diff)
downloadfocaccia-qemu-9eb7fad3546a89ee7cf0e90f5b1daccf89725cea.tar.gz
focaccia-qemu-9eb7fad3546a89ee7cf0e90f5b1daccf89725cea.zip
hpet: ignore high bits of comparator in 32-bit mode
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/timer/hpet.c')
-rw-r--r--hw/timer/hpet.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c
index 58073df02b..bbb1e5f089 100644
--- a/hw/timer/hpet.c
+++ b/hw/timer/hpet.c
@@ -585,6 +585,10 @@ static void hpet_ram_write(void *opaque, hwaddr addr,
             }
             break;
         case HPET_TN_CMP + 4: // comparator register high order
+            if (timer->config & HPET_TN_32BIT) {
+                trace_hpet_ram_write_invalid_tn_cmp();
+                break;
+            }
             trace_hpet_ram_write_tn_cmp(4);
             if (!timer_is_periodic(timer)
                 || (timer->config & HPET_TN_SETVAL)) {