On Fri, 10 Jan 2014 10:35:14 -0500 "Gabriel L. Somlo" <gso...@gmail.com> wrote:
> On Fri, Jan 10, 2014 at 01:37:14PM +0100, Paolo Bonzini wrote: > > Il 09/01/2014 22:44, Gabriel L. Somlo ha scritto: > > > 1. hardcode "IRQNoFlags(){2, 8}" and require -no-hpet to prevent XP > > > from bluescreening. Basically, this means we don't support XP on > > > a VM where HPET is enabled. > > > > > > 2. conditionally insert "IRQNoFlags(){2, 8}" if _OSI("Darwin") returns > > > 0xFFFFFFFF, which is only necessary if we want to run OS X on piix+smp > > > (all other combinations of (piix vs. q35) x (up vs. smp) work fine > > > already). > > > > _OSI is bad, but (1) is worse. > > Agreed. > > > > I still don't get why on real hardware where the HPET has > > > "IRQNoFlags(){2, 8}" in its _CRS method XP seems to be OK... > > > > My laptop has this: > > > > [...] > > > > Name (BUF0, ResourceTemplate () > > { > > Memory32Fixed (ReadOnly, > > 0xFED00000, // Address Base > > 0x00000400, // Address Length > > _Y27) > > }) > > Method (_CRS, 0, Serialized) // _CRS: Current Resource > > Settings > > { > > CreateDWordField (BUF0, > > \_SB.PCI0.LPC.HPET._Y27._BAS, HPT0) // _BAS: Base Address > > Store (\HPET, HPT0) // HPET comes from a table > > that BIOS fills in reserved memory > > Return (BUF0) > > } > > } > > > > so no IRQs, and my workstation is similar. They are respectively from > > Lenovo and Fujitsu. Looks like an Apple quirk. > > Hmmm, I could have sworn I saw IRQNoFlags on one of my old Dell > laptops (Dell Latitude D630), but I just had another look and it's > not there, so I was clearly misremembering that ! > > I think you're right, of all the hardware I currently have access to, > only the various Apple machines have IRQNoFlags in HPET._CRS ! > > Given that, I'm starting to feel better and better about using _OSI(). > > Michael: regarding your comment about "ConcatenateResTemplate" not > being supported by XP: Can I safely assume that as long as it's always > on the branch NOT taken by XP, we're OK having it in there ? E.g., there is harder route to get a clue why XP BSODs, one can use AMLI debugger to see what is happening in XP on boot http://msdn.microsoft.com/en-us/library/windows/hardware/ff537808%28v=vs.85%29.aspx that was how I found out about not supported ConcatenateResTemplate first. > > if _OSI("Darwin") then > ConcatenateResTemplate... > else > stuff_that_XP_cares_about > > Once I have that sorted out, I'll send a patch. > > Thanks, > --Gabriel