Skip to content

Commit

Permalink
apic: use emulated lapic version 0x14 on pc machines >= 2.1
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
gsomlo authored and mstsirkin committed May 7, 2014
1 parent 9df11c9 commit aa93200
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 1 deletion.
2 changes: 1 addition & 1 deletion hw/intc/apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
1 change: 1 addition & 0 deletions hw/intc/apic_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
Expand Down
1 change: 1 addition & 0 deletions include/hw/i386/apic_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ struct APICCommonState {
X86CPU *cpu;
uint32_t apicbase;
uint8_t id;
uint8_t version;
uint8_t arb_id;
uint8_t tpr;
uint32_t spurious_vec;
Expand Down
3 changes: 3 additions & 0 deletions include/hw/i386/pc.h
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,9 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);

#define PC_COMPAT_2_0 \
{\
.driver = "apic",\
.property = "version",\
.value = stringify(0x11),\
}

#define PC_COMPAT_1_7 \
Expand Down

0 comments on commit aa93200

Please sign in to comment.