qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] Add option to disable FDC from ISA bus and ACPI


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH] Add option to disable FDC from ISA bus and ACPI on i386
Date: Thu, 9 Jan 2014 03:51:17 +0200

On Wed, Jan 08, 2014 at 06:39:25PM -0500, Gabriel L. Somlo wrote:
> On Wed, Jan 08, 2014 at 11:13:54PM +0100, Paolo Bonzini wrote:
> > Have you played with the HPET device?  It would be nice to have Mac OS X
> > support in QEMU 2.0.
> 
> I remember telling you that the HPET needed an extra ACPI patch
> (enclosed again below for reference) to work with OS X, and that
> this patch conflicts with XP.
> 
> In the mean time, after some tinkering, it turns out that Q35 works
> fine without the patch. On PIIX, xnu crashes during boot with a "no
> HPET found" panic unless the patch is applied.
> 
> At this point, I'm tempted to just write off PIIX + OS X and declare
> Q35 as the only "supported" machine type, to keep things simple and
> avoid complicating the HPET ACPI code with if/then/else logic that
> depends on the return value of SMC._STA(), etc.
> 
> Let me know what you all think.
> 
> Thanks,
> --Gabriel

I still see reports of a bunch of issues with ahci so q35 is less
stable at this point I think.
I was hoping we can figure out a configuration that makes
os x work without hurting xp *and* without just rudely
detecting os x through the SMC._STA hack.


> P.S. Another OS X issue is getting e1000 to "link up" (but in an earlier
> conversation it was decided that guest-specific hacks belong in the BIOS
> rather than in QEMU, so I still have a "todo" item to figure out where
> to put that patch, and how :)
> 
> ###############################################################################
> # Modify DSDT entry for HPET: conditionally insert "IRQNoFlags() {2, 8}" into
> # _CRS method only if an AppleSMC chip is present and enabled (otherwise, this
> # will cause WinXP to BSOD).
> # NOTE: not needed with q35, but necessary on piix !!!
> ###############################################################################
> diff --git a/hw/i386/acpi-dsdt-hpet.dsl b/hw/i386/acpi-dsdt-hpet.dsl
> index dfde174..2a0158a 100644
> --- a/hw/i386/acpi-dsdt-hpet.dsl
> +++ b/hw/i386/acpi-dsdt-hpet.dsl
> @@ -38,14 +38,23 @@ Scope(\_SB) {
>              }
>              Return (0x0F)
>          }
> -        Name(_CRS, ResourceTemplate() {
> -#if 0       /* This makes WinXP BSOD for not yet figured reasons. */
> -            IRQNoFlags() {2, 8}
> -#endif
> +        Name(RESP, ResourceTemplate() {
>              Memory32Fixed(ReadOnly,
>                  0xFED00000,         // Address Base
>                  0x00000400,         // Address Length
>                  )
>          })
> +        Name(RESI, ResourceTemplate() {
> +            IRQNoFlags() {2, 8}
> +        })
> +        Method(_CRS, 0) {
> +            Store(\_SB.PCI0.ISA.SMC._STA, Local0)
> +            If (LEqual(Local0, 0x0B)) {        // AppleSMC present, add IRQ
> +                ConcatenateResTemplate(RESP, RESI, Local1)
> +                Return (Local1)
> +            } else {
> +                Return (RESP)
> +            }
> +        }
>      }
>  }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]