Message ID | 1354529518-25534-1-git-send-email-kraxel@redhat.com |
---|---|
State | New |
Headers | show |
On Mon, Dec 03, 2012 at 11:11:55AM +0100, Gerd Hoffmann wrote: > Hi, > > Most q35 seabios patches just landed upstream. So here we go with a > last-minute pull to plumb the missing q35 bits. It obviously updates > seabios again. It also adds autoloading for the acpi dsdt table. > > With this pull "qemu -M q35" JustWorks[tm]. > > please pull, > Gerd > Hi, Feel free to add my Acked-by: Jason Baron <jbaron@redhat.com> to the series. I've just been looking at WindowsXP support and there are a few issues that need to be resolved to make it work with the current q35 code. 1) legacy ide mode I can currently create a ide controller on the command-line using '-device'. However, on the real h/w there is an IDE compatibility mode which essentially advertises an ide controller at the same location that the ahci lives at. In fact, it changes the PCI device id. To deal with the fact that AHCI has 6 ports and thus 6 possible devices, it then adds a second controller for the remaining 2 disks. This shouldn't be too hard to emulate. But I'm wondering what we want the qemu interface to look like? A -machine options such as: '-machine q35,diskmode=ahci,ide,raid'? 2) HPET ACPI error This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the folloing ACPI message (removing it makes it go away): " A problem has been detected and windows has been shut down to prevent damage to your computer. If this is the first time you've seen this Stop error screen, restart your computer. If this screen appears again, follow these steps: Check To be sure you have adequate disk space. If a driver is identified in The stop message, disable the driver or check with the manufacturer for driver updates. Try changing video adapters. Check with your hardware vendor for any BIOS updates. Disable BIOS memory options such as caching or shadowing. If you need to use safe mode to remove or disable components, restart your computer, press F8 To select Advanced startup opTions, and then select safe mode. Technical information: *** STOP: Ox0000007E (OxFFFFFFFFC0000005,OxFFFFFADF8FCEDA83,OxFFFFFADF90631540,O xFFFFFADF90630F50) *** acpi.sys - Address FFFFFADF8FCEDA83 base at FFFFFADF8FCDA000, DateStamp 42435eae " 3) irq table The irq table commit that makes windows 7 work, upsets Windows XP. If I back out seabios commit: 2114f50148c42e374586359d23b522483ca10e8d I do not get the following error: " A problem has been detected and windows has been shut down To prevent damage to your computer. If this is The first time you've seen this stop error screen, restart your computer. If this screen appears again, follow these steps: The BIOS in this sysTem is not fully ACPI compliant. Please contact your system vendor for an updated BIOS. If you are unable to obtain an updated BIOS or the latest BIOS supplied by your vendor is not ACPI compliant, you can turn off ACPI mode during textmode setup. To do this, press The F7 key when you are prompted To install storage drivers. The system will not notify you that the F7 key was pressed - it will silently disable ACPI and allow you to continue your installation. Technical informaTion: *** STOP: 0x000000A5 (Ox0000000000010006,OxFFFFFADF9C461108,0x0000000000000000,0 x0000000000000000) " Thanks, -Jason
Hi, > 1) legacy ide mode > > I can currently create a ide controller on the command-line using > '-device'. However, on the real h/w there is an IDE compatibility mode > which essentially advertises an ide controller at the same location that > the ahci lives at. In fact, it changes the PCI device id. To deal with > the fact that AHCI has 6 ports and thus 6 possible devices, it then adds > a second controller for the remaining 2 disks. This shouldn't be too > hard to emulate. But I'm wondering what we want the qemu interface > to look like? A -machine options such as: > '-machine q35,diskmode=ahci,ide,raid'? I'm wondering whenever we want to deal with that at all? "If your guest is too old to handle ahci natively, just stick to piix." is a sensible policy IMHO. > 2) HPET ACPI error > > This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the > folloing ACPI message (removing it makes it go away): Hmm. That was added to make macos x happy and is also present on real hardware, so I'm wondering what is going on here. > 3) irq table > > The irq table commit that makes windows 7 work, upsets Windows XP. If > I back out seabios commit: 2114f50148c42e374586359d23b522483ca10e8d > I do not get the following error: > > " > A problem has been detected and windows has been shut down To prevent damage > to your computer. > > If this is The first time you've seen this stop error screen, > restart your computer. If this screen appears again, follow > these steps: > > The BIOS in this sysTem is not fully ACPI compliant. Please contact your > system vendor for an updated BIOS. If you are unable to obtain an > updated BIOS or the latest BIOS supplied by your vendor is not ACPI > compliant, you can turn off ACPI mode during textmode setup. To do this, > press The F7 key when you are prompted To install storage drivers. The > system will not notify you that the F7 key was pressed - it will silently > disable ACPI and allow you to continue your installation. > > Technical informaTion: > > *** STOP: 0x000000A5 (Ox0000000000010006,OxFFFFFADF9C461108,0x0000000000000000,0 > x0000000000000000) > " Jan, this is your commit, any idea? cheers, Gerd
On 2012-12-04 08:40, Gerd Hoffmann wrote: > Hi, > >> 1) legacy ide mode >> >> I can currently create a ide controller on the command-line using >> '-device'. However, on the real h/w there is an IDE compatibility mode >> which essentially advertises an ide controller at the same location that >> the ahci lives at. In fact, it changes the PCI device id. To deal with >> the fact that AHCI has 6 ports and thus 6 possible devices, it then adds >> a second controller for the remaining 2 disks. This shouldn't be too >> hard to emulate. But I'm wondering what we want the qemu interface >> to look like? A -machine options such as: >> '-machine q35,diskmode=ahci,ide,raid'? > > I'm wondering whenever we want to deal with that at all? > > "If your guest is too old to handle ahci natively, just stick to piix." > is a sensible policy IMHO. > >> 2) HPET ACPI error >> >> This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the >> folloing ACPI message (removing it makes it go away): > > Hmm. That was added to make macos x happy and is also present on real > hardware, so I'm wondering what is going on here. > >> 3) irq table >> >> The irq table commit that makes windows 7 work, upsets Windows XP. If >> I back out seabios commit: 2114f50148c42e374586359d23b522483ca10e8d >> I do not get the following error: >> >> " >> A problem has been detected and windows has been shut down To prevent damage >> to your computer. >> >> If this is The first time you've seen this stop error screen, >> restart your computer. If this screen appears again, follow >> these steps: >> >> The BIOS in this sysTem is not fully ACPI compliant. Please contact your >> system vendor for an updated BIOS. If you are unable to obtain an >> updated BIOS or the latest BIOS supplied by your vendor is not ACPI >> compliant, you can turn off ACPI mode during textmode setup. To do this, >> press The F7 key when you are prompted To install storage drivers. The >> system will not notify you that the F7 key was pressed - it will silently >> disable ACPI and allow you to continue your installation. >> >> Technical informaTion: >> >> *** STOP: 0x000000A5 (Ox0000000000010006,OxFFFFFADF9C461108,0x0000000000000000,0 >> x0000000000000000) >> " > > Jan, this is your commit, any idea? Not really. This is looong ago. I hacked it in to make Win7 happy, but I may not have tested WinXP by that time. Jan
On Tue, Dec 04, 2012 at 08:40:27AM +0100, Gerd Hoffmann wrote: > Hi, > > > 1) legacy ide mode > > > > I can currently create a ide controller on the command-line using > > '-device'. However, on the real h/w there is an IDE compatibility mode > > which essentially advertises an ide controller at the same location that > > the ahci lives at. In fact, it changes the PCI device id. To deal with > > the fact that AHCI has 6 ports and thus 6 possible devices, it then adds > > a second controller for the remaining 2 disks. This shouldn't be too > > hard to emulate. But I'm wondering what we want the qemu interface > > to look like? A -machine options such as: > > '-machine q35,diskmode=ahci,ide,raid'? > > I'm wondering whenever we want to deal with that at all? > > "If your guest is too old to handle ahci natively, just stick to piix." > is a sensible policy IMHO. > There was some discussion of trying to make q35 the default for 1.4, in which case it may be important to support older OS's such as WinXP. Anthony, do you have any opinion on this? > > 2) HPET ACPI error > > > > This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the > > folloing ACPI message (removing it makes it go away): > > Hmm. That was added to make macos x happy and is also present on real > hardware, so I'm wondering what is going on here. > I also noticed that on Windows 7, the 'IRQNoFlags' line above makes the RTC clock complain that it does not have resources available. While removing the above line, removes that error. thanks, -Jason
On Tue, 04 Dec 2012 08:40:27 +0100 Gerd Hoffmann wrote: >On Mon, 3 Dec 2012 13:47:04 -0500, Jason Baron wrote: >> 2) HPET ACPI error >> >> This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the >> folloing ACPI message (removing it makes it go away): > > Hmm. That was added to make macos x happy and is also present on real > hardware, so I'm wondering what is going on here. Without that line, OS X only works as a single-core, non-SMP guest. This is the "legacy replacement irq mapping" option for HPET (section 2.4.2, page 24 of the IA-PC HPET Specification). The options are 'IRQNoFlags () {2, 8}' for "APIC mapping" or 'IRQNoFlags () {0, 8}' for "8259 mapping". Either one works for SMP + OS X. I don't have an XP install image anymore, but does replacing 2,8 with 0,8 help ? On a few of my machines, this is actually coded as IRQNoFlags () {0} /* or 2 */ IRQNoFlags () {8} Based on my reading of the ACPI manual, this should be syntactically equivalent to the the comma-separated single-line format we're currently using, but could it be that WinXP is picky about the specifics ? Also, as far as I can tell, this change never made it into the "q35-acpi-dsdt.dsl" file, just the "classic" acpi-dsdt.dsl (or, lately, acpi-dsdt-hpet.dsl). I was about to submit another patch for that, but now I guess I won't press it until we sort this out :) --Gabriel
On Tue, Dec 04, 2012 at 09:42:44AM -0500, Gabriel L. Somlo wrote: > On Tue, 04 Dec 2012 08:40:27 +0100 Gerd Hoffmann wrote: > >On Mon, 3 Dec 2012 13:47:04 -0500, Jason Baron wrote: > >> 2) HPET ACPI error > >> > >> This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the > >> folloing ACPI message (removing it makes it go away): > > > > Hmm. That was added to make macos x happy and is also present on real > > hardware, so I'm wondering what is going on here. > > Without that line, OS X only works as a single-core, non-SMP guest. > This is the "legacy replacement irq mapping" option for HPET (section > 2.4.2, page 24 of the IA-PC HPET Specification). > > The options are 'IRQNoFlags () {2, 8}' for "APIC mapping" or > 'IRQNoFlags () {0, 8}' for "8259 mapping". Either one works for SMP + OS X. > > I don't have an XP install image anymore, but does replacing 2,8 with > 0,8 help ? > no. > On a few of my machines, this is actually coded as > > IRQNoFlags () > {0} /* or 2 */ > IRQNoFlags () > {8} > > Based on my reading of the ACPI manual, this should be syntactically > equivalent to the the comma-separated single-line format we're currently > using, but could it be that WinXP is picky about the specifics ? > Didn't seem to help either. I also tried having just a single irq from 0,2,8, and that didn't work either. The only thing that seems to make XP happy is completely removing that line. So I'm not sure what is wrong. > Also, as far as I can tell, this change never made it into the > "q35-acpi-dsdt.dsl" file, just the "classic" acpi-dsdt.dsl (or, lately, > acpi-dsdt-hpet.dsl). I was about to submit another patch for that, but > now I guess I won't press it until we sort this out :) > q35-acpi-dsdt.dsl is the current sebios tree does: #include "acpi-dsdt-hpet.dsl" Thanks, -Jason
Hi, >>> '-machine q35,diskmode=ahci,ide,raid'? >> >> I'm wondering whenever we want to deal with that at all? >> >> "If your guest is too old to handle ahci natively, just stick to piix." >> is a sensible policy IMHO. >> > > There was some discussion of trying to make q35 the default for 1.4, in > which case it may be important to support older OS's such as WinXP. > > Anthony, do you have any opinion on this? The fundamental issue is that you have either good compatibility (makes old guests happy) or good performance (makes modern guests happy) by default. Picking a default which makes everybody happy is impossible. That problem doesn't change no matter whenever the choice is piix vs. q35 or q35+ide vs. q35+ahci. management apps (using libosinfo) can tackle this in a sensible manner by picking virtual hardware depending on the guest capabilities. So I wouldn't worry too much on qemu level. >>> 2) HPET ACPI error >>> >>> This line: 'IRQNoFlags () {2, 8}' in the HPET acpi table is causing the >>> folloing ACPI message (removing it makes it go away): >> >> Hmm. That was added to make macos x happy and is also present on real >> hardware, so I'm wondering what is going on here. >> > > I also noticed that on Windows 7, the 'IRQNoFlags' line above makes the RTC > clock complain that it does not have resources available. While removing the > above line, removes that error. Hmm. The IRQNoFlags for the RTC isn't new though, but I can see that with win7 on piix too. cheers, Gerd
On 12/04/12 16:37, Gerd Hoffmann wrote: >> > I also noticed that on Windows 7, the 'IRQNoFlags' line above makes the RTC >> > clock complain that it does not have resources available. While removing the >> > above line, removes that error. > Hmm. The IRQNoFlags for the RTC isn't new though, but I can see that > with win7 on piix too. Works fine with 1.7.1 though. /me goes bisecting. cheers, Gerd