> Am 01.03.2014 um 03:14 schrieb "Gabriel L. Somlo" <gso...@gmail.com>: > > Some guests (e.g. 0S X) insist on a minimum lapic version of 0x14. > This patch bumps the emulated lapic version to 0x14 to accomodate that. > > Signed-off-by: Gabriel L. Somlo <so...@cmu.edu> > --- > > Along with the TCG ioapic polarity fix, this allows me to boot OS X > without KVM acceleration. > > I dug around the Intel docs and searched the Web, and there was nothing > there to indicate any difference in functionality between lapic versions > 0x11 and 0x14. It appears to me that lapic version is loosely correlated > with the "generation" of the CPU it's attached to, and Apple simply decided > to include an extra check that basically says "we don't support CPUs older > than <foo>", where the oldest <foo> they support ships with lapics that > were versioned to 0x14 :) For example: > > http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/osfmk/i386/lapic.c > > Let me know what you think. > > Thanks, > Gabriel > > hw/intc/apic.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/intc/apic.c b/hw/intc/apic.c > index 361ae90..67365b7 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 = 0x14 | ((APIC_LVT_NB - 1) << 16); /* version 0x14 */
Deja vu :). Should we really set this to thd least compatible version or rather to a current one that resembles roughly what we support? Otherwise patches like this will come up for every new osx release. What is the version in Haswell? Alex > break; > case 0x08: > apic_sync_vapic(s, SYNC_FROM_VAPIC); > -- > 1.8.1.4 >