public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: jurriaan <thunder7-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: A8N-SLI Deluxe: poweroff OK with 1006 bios, fails with 1011 and later bioses
Date: Sun, 7 Aug 2005 08:48:02 +0200	[thread overview]
Message-ID: <20050807064802.GA4188@amd64.of.nowhere> (raw)

[-- Attachment #1: Type: text/plain, Size: 655 bytes --]

My Asus A8N-SLI Deluxe motherboard doesn't power off when shutting down
with a bios later than the original 1006.

I would like to use a newer bios, since they support X2 chips, for
example.

I have decompiled the 1006 dsdt and the 1011 dsdt, and somewhere there
must be a difference that causes this.

I've tried to read the acpi specification to find out where I should
start, but I'm not getting it. What parts in the dsdt have to do with
powering off the system? Where do I look?

I'll attach 1006.dsl and the diff.

Thanks,
Jurriaan
-- 
Apple I (c) Copyright 1767, Sir Isaac Newton.
Debian (Unstable) GNU/Linux 2.6.13-rc4-mm1 5505 bogomips load 0.40

[-- Attachment #2: a8nsli_deluxe_1006.dsl.bz2 --]
[-- Type: application/octet-stream, Size: 12204 bytes --]

[-- Attachment #3: a8nsli_deluxe_1006_1011.diff --]
[-- Type: text/plain, Size: 16751 bytes --]

--- 1006.dsl	2005-08-06 20:45:36.000000000 +0200
+++ 1011.dsl	2005-08-06 20:45:48.000000000 +0200
@@ -2,13 +2,14 @@
  * Intel ACPI Component Architecture
  * AML Disassembler version 20050624
  *
- * Disassembly of dsdt.1006, Sat Aug  6 20:45:36 2005
+ * Disassembly of dsdt.1011, Sat Aug  6 20:45:48 2005
  */
 DefinitionBlock ("DSDT.aml", "DSDT", 1, "NVIDIA", "AWRDACPI", 4096)
 {
     Scope (\_PR)
     {
-        Processor (\_PR.CPU0, 0x00, 0x00004010, 0x06) {}
+        Processor (\_PR.CPU0, 0x00, 0x00000000, 0x00) {}
+        Processor (\_PR.CPU1, 0x01, 0x00000000, 0x00) {}
     }
 
     Name (\_S0, Package (0x04)
@@ -153,7 +154,7 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
         Return (Local3)
     }
 
-    OperationRegion (\GP1, SystemIO, 0x44C0, 0x32)
+    OperationRegion (\GP1, SystemIO, 0x44C0, 0x3D)
     Field (\GP1, ByteAcc, NoLock, Preserve)
     {
         GP00,   8, 
@@ -205,7 +206,18 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
         GP46,   8, 
         GP47,   8, 
         GP48,   8, 
-        GP49,   8
+        GP49,   8, 
+        GP50,   8, 
+        GP51,   8, 
+        GP52,   8, 
+        GP53,   8, 
+        GP54,   8, 
+        GP55,   8, 
+        GP56,   8, 
+        GP57,   8, 
+        GP58,   8, 
+        GP59,   8, 
+        GP60,   8
     }
 
     Name (OSFX, 0x01)
@@ -481,106 +493,8 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
         }
     }
 
-    Scope (\_PR.CPU0)
-    {
-        Name (_PCT, Package (0x02)
-        {
-            ResourceTemplate ()
-            {
-                Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
-            }, 
-
-            ResourceTemplate ()
-            {
-                Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
-            }
-        })
-        Method (_PPC, 0, NotSerialized)
-        {
-            Return (0x00)
-        }
-
-        Name (PPSS, Package (0x06)
-        {
-            Package (0x06)
-            {
-                0xFFFF, 
-                0xFFFFFFFF, 
-                0xFF, 
-                0xFF, 
-                0xFFFFFFFF, 
-                0x03FF
-            }, 
-
-            Package (0x06)
-            {
-                0xFFFF, 
-                0xFFFFFFFF, 
-                0xFF, 
-                0xFF, 
-                0xFFFFFFFF, 
-                0x03FF
-            }, 
-
-            Package (0x06)
-            {
-                0xFFFF, 
-                0xFFFFFFFF, 
-                0xFF, 
-                0xFF, 
-                0xFFFFFFFF, 
-                0x03FF
-            }, 
-
-            Package (0x06)
-            {
-                0xFFFF, 
-                0xFFFFFFFF, 
-                0xFF, 
-                0xFF, 
-                0xFFFFFFFF, 
-                0x03FF
-            }, 
-
-            Package (0x06)
-            {
-                0xFFFF, 
-                0xFFFFFFFF, 
-                0xFF, 
-                0xFF, 
-                0xFFFFFFFF, 
-                0x03FF
-            }, 
-
-            Package (0x06)
-            {
-                0xFFFF, 
-                0xFFFFFFFF, 
-                0xFF, 
-                0xFF, 
-                0xFFFFFFFF, 
-                0x03FF
-            }
-        })
-    }
-
     Scope (\_SB)
     {
-        Device (MBIO)
-        {
-            Name (_HID, EisaId ("PNP0C02"))
-            Name (_UID, 0x05)
-            Name (_CRS, ResourceTemplate ()
-            {
-                IO (Decode16, 0x4000, 0x4000, 0x01, 0x80)
-                IO (Decode16, 0x4080, 0x4080, 0x01, 0x80)
-                IO (Decode16, 0x4400, 0x4400, 0x01, 0x80)
-                IO (Decode16, 0x4480, 0x4480, 0x01, 0x80)
-                IO (Decode16, 0x4800, 0x4800, 0x01, 0x80)
-                IO (Decode16, 0x4880, 0x4880, 0x01, 0x80)
-            })
-        }
-
         Device (PWRB)
         {
             Name (_HID, EisaId ("PNP0C0C"))
@@ -606,6 +520,44 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
                 }
             }
 
+            OperationRegion (BRCR, PCI_Config, 0xD0, 0x04)
+            Scope (\)
+            {
+                Field (\_SB.PCI0.BRCR, ByteAcc, NoLock, Preserve)
+                {
+                    GPUB,   32
+                }
+            }
+
+            Device (MBIO)
+            {
+                Name (_HID, EisaId ("PNP0C02"))
+                Name (_UID, 0x05)
+                Method (_CRS, 0, NotSerialized)
+                {
+                    Name (BUF0, ResourceTemplate ()
+                    {
+                        IO (Decode16, 0x4000, 0x4000, 0x01, 0x80)
+                        IO (Decode16, 0x4080, 0x4080, 0x01, 0x80)
+                        IO (Decode16, 0x4400, 0x4400, 0x01, 0x80)
+                        IO (Decode16, 0x4480, 0x4480, 0x01, 0x80)
+                        IO (Decode16, 0x4800, 0x4800, 0x01, 0x80)
+                        IO (Decode16, 0x4880, 0x4880, 0x01, 0x80)
+                        Memory32Fixed (ReadWrite, 0xA0000000, 0x00000000)
+                    })
+                    CreateDWordField (BUF0, 0x34, BRAB)
+                    CreateDWordField (BUF0, 0x38, BRAL)
+                    If (GPUB)
+                    {
+                        ShiftLeft (GPUB, 0x10, Local0)
+                        Store (Local0, BRAB)
+                        Store (0x10000000, BRAL)
+                    }
+
+                    Return (BUF0)
+                }
+            }
+
             Name (NATA, Package (0x01)
             {
                 0x00060000
@@ -3026,6 +2978,18 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
                     If (LEqual (Arg0, Local0))
                     {
                         Store (VCOR, Local0)
+                        Store (0x00, Local1)
+                        While (LEqual (Local0, 0xFF))
+                        {
+                            Store (VCOR, Local0)
+                            If (LEqual (Local1, 0x000186A0))
+                            {
+                                Break
+                            }
+
+                            Add (Local1, 0x01, Local1)
+                        }
+
                         Multiply (Local0, 0x10, Local0)
                         Return (Local0)
                     }
@@ -3034,6 +2998,18 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
                     If (LEqual (Arg0, Local0))
                     {
                         Store (V33V, Local0)
+                        Store (0x00, Local1)
+                        While (LEqual (Local0, 0xFF))
+                        {
+                            Store (V33V, Local0)
+                            If (LEqual (Local1, 0x000186A0))
+                            {
+                                Break
+                            }
+
+                            Add (Local1, 0x01, Local1)
+                        }
+
                         Multiply (Local0, 0x10, Local0)
                         Return (Local0)
                     }
@@ -3042,6 +3018,18 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
                     If (LEqual (Arg0, Local0))
                     {
                         Store (V50V, Local0)
+                        Store (0x00, Local1)
+                        While (LEqual (Local0, 0xFF))
+                        {
+                            Store (V50V, Local0)
+                            If (LEqual (Local1, 0x000186A0))
+                            {
+                                Break
+                            }
+
+                            Add (Local1, 0x01, Local1)
+                        }
+
                         Multiply (Local0, 0x10, Local0)
                         Store (0x22, Local1)
                         Store (0x32, Local2)
@@ -3055,6 +3043,18 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
                     If (LEqual (Arg0, Local0))
                     {
                         Store (V12V, Local0)
+                        Store (0x00, Local1)
+                        While (LEqual (Local0, 0xFF))
+                        {
+                            Store (V12V, Local0)
+                            If (LEqual (Local1, 0x000186A0))
+                            {
+                                Break
+                            }
+
+                            Add (Local1, 0x01, Local1)
+                        }
+
                         Multiply (Local0, 0x10, Local0)
                         Store (0x1E, Local1)
                         Store (0x0A, Local2)
@@ -3098,6 +3098,18 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
                     If (LEqual (Arg0, Local0))
                     {
                         Store (TSR1, Local0)
+                        Store (0x00, Local1)
+                        While (LEqual (Local0, 0x80))
+                        {
+                            Store (TSR1, Local0)
+                            If (LEqual (Local1, 0x000186A0))
+                            {
+                                Break
+                            }
+
+                            Add (Local1, 0x01, Local1)
+                        }
+
                         Multiply (Local0, 0x0A, Local0)
                         Return (Local0)
                     }
@@ -3106,6 +3118,18 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
                     If (LEqual (Arg0, Local0))
                     {
                         Store (MBTE, Local0)
+                        Store (0x00, Local1)
+                        While (LEqual (Local0, 0x80))
+                        {
+                            Store (MBTE, Local0)
+                            If (LEqual (Local1, 0x000186A0))
+                            {
+                                Break
+                            }
+
+                            Add (Local1, 0x01, Local1)
+                        }
+
                         Multiply (Local0, 0x0A, Local0)
                         Return (Local0)
                     }
@@ -3733,6 +3757,124 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
                     MMCM,   8
                 }
 
+                Method (GSLI, 1, NotSerialized)
+                {
+                    If (LEqual (Arg0, 0x03060000))
+                    {
+                        Store (0x00, Local1)
+                        Store (ESLI (), Local0)
+                        If (LEqual (Local0, 0x40))
+                        {
+                            Or (Local1, 0x01, Local1)
+                        }
+
+                        Store (NVSL (), Local2)
+                        If (LEqual (Local2, 0x00))
+                        {
+                            Store (PCBV (), Local3)
+                            If (LEqual (Local3, 0x01))
+                            {
+                                Store (CSLI (), Local0)
+                                If (LEqual (Local0, 0x40))
+                                {
+                                    Or (Local1, 0x02, Local1)
+                                }
+                            }
+                            Else
+                            {
+                                Store (DSLI (), Local0)
+                                If (LEqual (Local0, 0x40))
+                                {
+                                    Or (Local1, 0x02, Local1)
+                                }
+                            }
+                        }
+                        Else
+                        {
+                            Store (DSLI (), Local0)
+                            If (LEqual (Local0, 0x40))
+                            {
+                                Or (Local1, 0x02, Local1)
+                            }
+                        }
+
+                        Store (Local1, Index (VCNT, 0x02))
+                        Return (VCNT)
+                    }
+
+                    If (LEqual (Arg0, 0x03060001))
+                    {
+                        Store (0x00, Local1)
+                        Store (NVSL (), Local0)
+                        If (LEqual (Local0, 0x10))
+                        {
+                            Or (Local1, 0x01, Local1)
+                        }
+
+                        Store (Local1, Index (SLIS, 0x02))
+                        Return (SLIS)
+                    }
+                    Else
+                    {
+                        Return (0x00)
+                    }
+                }
+
+                Name (VCNT, Package (0x04)
+                {
+                    0x03060000, 
+                    0x01, 
+                    0x01, 
+                    0x01
+                })
+                Name (SLIS, Package (0x06)
+                {
+                    0x03060001, 
+                    0x00, 
+                    0x01, 
+                    0x01, 
+                    "Disabled", 
+                    "Enabled"
+                })
+                Method (SSLI, 2, NotSerialized)
+                {
+                    If (LEqual (Arg0, 0x03060001))
+                    {
+                        If (Arg1)
+                        {
+                            Store (SLIC, Local0)
+                            Not (0x60, Local2)
+                            And (Local0, Local2, Local0)
+                            Store (0x00, Local1)
+                            ShiftLeft (Local1, 0x05, Local1)
+                            Or (Local0, Local1, Local0)
+                            Store (Local0, SLIC)
+                            Return (0x03)
+                        }
+                        Else
+                        {
+                            Store (SLIC, Local0)
+                            Not (0x60, Local2)
+                            And (Local0, Local2, Local0)
+                            Store (0x01, Local1)
+                            ShiftLeft (Local1, 0x05, Local1)
+                            Or (Local0, Local1, Local0)
+                            Store (Local0, SLIC)
+                            Return (0x03)
+                        }
+                    }
+                    Else
+                    {
+                        Return (0x01)
+                    }
+                }
+
+                IndexField (CM2I, CM2D, ByteAcc, NoLock, Preserve)
+                {
+                    Offset (0xBD), 
+                    SLIC,   8
+                }
+
                 Name (CQFN, Package (0x06)
                 {
                     0x04060003, 
@@ -4187,6 +4329,31 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
                 Return (Local0)
             }
 
+            Method (CRSB, 1, NotSerialized)
+            {
+                If (LEqual (Arg0, 0x01))
+                {
+                    Return (0x11)
+                }
+
+                If (LEqual (Arg0, 0x02))
+                {
+                    Return (0x12)
+                }
+
+                If (LEqual (Arg0, 0x08))
+                {
+                    Return (0x10)
+                }
+
+                If (LEqual (Arg0, 0x0D))
+                {
+                    Return (0x13)
+                }
+
+                Return (Arg0)
+            }
+
             Method (CRSA, 1, Serialized)
             {
                 Store (0x00, Local0)
@@ -4934,7 +5101,9 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
 
                 Method (_CRS, 0, NotSerialized)
                 {
-                    Return (BUF1)
+                    CreateWordField (IRZ1, 0x05, IRQ1)
+                    Store (CRSB (INTA), IRQ1)
+                    Return (IRZ1)
                 }
 
                 Method (_SRS, 1, NotSerialized)
@@ -4971,7 +5140,9 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
 
                 Method (_CRS, 0, NotSerialized)
                 {
-                    Return (BUF2)
+                    CreateWordField (IRZ1, 0x05, IRQ1)
+                    Store (CRSB (INTB), IRQ1)
+                    Return (IRZ1)
                 }
 
                 Method (_SRS, 1, NotSerialized)
@@ -5008,7 +5179,9 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
 
                 Method (_CRS, 0, NotSerialized)
                 {
-                    Return (BUF3)
+                    CreateWordField (IRZ1, 0x05, IRQ1)
+                    Store (CRSB (INTC), IRQ1)
+                    Return (IRZ1)
                 }
 
                 Method (_SRS, 1, NotSerialized)
@@ -5045,7 +5218,9 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, 
 
                 Method (_CRS, 0, NotSerialized)
                 {
-                    Return (BUF4)
+                    CreateWordField (IRZ1, 0x05, IRQ1)
+                    Store (CRSB (INTD), IRQ1)
+                    Return (IRZ1)
                 }
 
                 Method (_SRS, 1, NotSerialized)

             reply	other threads:[~2005-08-07  6:48 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-07  6:48 jurriaan [this message]
     [not found] ` <20050807064802.GA4188-9lYvA+wzQ+BL6ehbpA6KYA@public.gmane.org>
2005-08-09 19:40   ` A8N-SLI Deluxe: poweroff OK with 1006 bios, fails with 1011 and later bioses jurriaan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050807064802.GA4188@amd64.of.nowhere \
    --to=thunder7-qwit8jrvyhvmr6xm/wnwpw@public.gmane.org \
    --cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox