summaryrefslogtreecommitdiffstats
path: root/hw/intc
diff options
context:
space:
mode:
authorGabriel L. Somlo2014-05-05 16:52:51 +0200
committerMichael S. Tsirkin2014-05-07 17:36:37 +0200
commitaa93200b88fb1071eaf21bf766711762ed4630e2 (patch)
treea7963bbfbb776768ac2616950b1839b7becaf7fe /hw/intc
parentpc: add compat_props placeholder for 2.0 machine type (diff)
downloadqemu-aa93200b88fb1071eaf21bf766711762ed4630e2.tar.gz
qemu-aa93200b88fb1071eaf21bf766711762ed4630e2.tar.xz
qemu-aa93200b88fb1071eaf21bf766711762ed4630e2.zip
apic: use emulated lapic version 0x14 on pc machines >= 2.1
Add "version" property to local apic, and have it default to 0x14 for pc machines starting at 2.1. For compatibility with previous releases, pc machines up to 2.0 will have their local apic version set to 0x11. Signed-off-by: Gabriel L. Somlo <somlo@cmu.edu> Acked-by: Alexander Graf <agraf@suse.de> Reviewed-by: Andreas Färber <afaerber@suse.de> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/intc')
-rw-r--r--hw/intc/apic.c2
-rw-r--r--hw/intc/apic_common.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/hw/intc/apic.c b/hw/intc/apic.c
index 2f40cbad2d..ef19e5515c 100644
--- a/hw/intc/apic.c
+++ b/hw/intc/apic.c
@@ -675,7 +675,7 @@ static uint32_t apic_mem_readl(void *opaque, hwaddr addr)
val = s->id << 24;
break;
case 0x03: /* version */
- val = 0x11 | ((APIC_LVT_NB - 1) << 16); /* version 0x11 */
+ val = s->version | ((APIC_LVT_NB - 1) << 16);
break;
case 0x08:
apic_sync_vapic(s, SYNC_FROM_VAPIC);
diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c
index 7ecce2dcce..71376533ca 100644
--- a/hw/intc/apic_common.c
+++ b/hw/intc/apic_common.c
@@ -380,6 +380,7 @@ static const VMStateDescription vmstate_apic_common = {
static Property apic_properties_common[] = {
DEFINE_PROP_UINT8("id", APICCommonState, id, -1),
+ DEFINE_PROP_UINT8("version", APICCommonState, version, 0x14),
DEFINE_PROP_BIT("vapic", APICCommonState, vapic_control, VAPIC_ENABLE_BIT,
true),
DEFINE_PROP_END_OF_LIST(),