qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PULL 1/5] acpi-build: append description for non-hotpl


From: Gabriel L. Somlo
Subject: Re: [Qemu-devel] [PULL 1/5] acpi-build: append description for non-hotplug
Date: Wed, 19 Feb 2014 14:45:29 -0500
User-agent: Mutt/1.5.21 (2010-09-15)

On Wed, Feb 19, 2014 at 09:02:15PM +0200, Michael S. Tsirkin wrote:
> On Wed, Feb 19, 2014 at 03:50:22PM +0200, Michael S. Tsirkin wrote:
> > On Mon, Feb 17, 2014 at 09:51:39AM -0500, Gabriel L. Somlo wrote:
> > > With this latest version of your patch, I crash during OS X boot with
> > > "unable to find driver for this 
> > > platform:\"ACPI\".\n"@/SourceCache/xnu/xnu-2050.48.12/iokit/Kernel/IOPlatformExpert.cpp:1514"
> > > 
> > Any chance below helps on top?
> > Another alternative is that DSDT referencing
> > SSDT does not work for apple.
> > I hope it's not that, that would be annoying...
> 
> OK I think it's that unfortunately.
> The following on top should help.
> Can you confirm please?
> 
> Thanks a lot for the report!
> 
> commit a0ad25b1e5d0eb21cbba001799341bd6b557e995
> Author: Michael S. Tsirkin <address@hidden>
> Date:   Wed Feb 19 17:20:56 2014 +0200
> 
>     Don't call SSDT from DSDT
>     
>     Windows XP doesn't like this.
>     Apparently, neither does Mac OSX.
>     
>     Signed-off-by: Michael S. Tsirkin <address@hidden>
>     Tested-by: "Gabriel L. Somlo" <address@hidden>

Sorry, still the same error :(

However, I think OS X can reference SSDT from DSDT just fine:

diff --git a/hw/i386/acpi-dsdt-isa.dsl b/hw/i386/acpi-dsdt-isa.dsl
index deb37de..06e37f5 100644
--- a/hw/i386/acpi-dsdt-isa.dsl
+++ b/hw/i386/acpi-dsdt-isa.dsl
@@ -13,6 +13,8 @@
  * with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
+External(\_SB.FOBR, IntObj)
+
 /* Common legacy ISA style devices. */
 Scope(\_SB.PCI0.ISA) {
 
@@ -20,7 +22,13 @@ Scope(\_SB.PCI0.ISA) {
         Name(_HID, EisaId("APP0001"))
         /* _STA will be patched to 0x0B if AppleSMC is present */
         ACPI_EXTRACT_NAME_BYTE_CONST DSDT_APPLESMC_STA
-        Name(_STA, 0xF0)
+        Name(_STF, 0xF0) /* get this out of the way temporarily */
+        Method(_STA, 0, NotSerialized) {
+            If (LGreater(\_SB.FOBR, Zero)) {
+                Return (0x0)
+            }
+            Return (0x0B)
+        }
         Name(_CRS, ResourceTemplate () {
             IO (Decode16, 0x0300, 0x0300, 0x01, 0x20)
             IRQNoFlags() { 6 }
diff --git a/hw/i386/ssdt-misc.dsl b/hw/i386/ssdt-misc.dsl
index a4484b8..a0be34b 100644
--- a/hw/i386/ssdt-misc.dsl
+++ b/hw/i386/ssdt-misc.dsl
@@ -22,6 +22,10 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", 
"BXSSDTSUSP", 0x1)
  * PCI memory ranges
  ****************************************************************/
 
+    Scope(\_SB) {
+       Name(FOBR, Zero)
+    }
+
     Scope(\) {
        ACPI_EXTRACT_NAME_DWORD_CONST acpi_pci32_start
        Name(P0S, 0x12345678)
---

The above works great. If I set FOBR to e.g. 0x13, the boot process
hangs due to the lack of an available SMC, but otherwise does not
crash and burn (like, witha "can't find driver for platform" error).
With FOBR set to Zero, OS X boots up all the way and works without any
issues...

Thanks,
--Gabriel



reply via email to

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