Jump to content
fantomas

[Tuto] QE_CI Exotic Patch via Clover

86 posts in this topic

Recommended Posts

-----------------------------

Mise à jour 12/07/2018

-----------------------------

 

La sortie de macOS 10.14 Beta m'oblige à mettre ce topic à jour. Plus de détails dans ce post.

 

Capture d’écran 2018-07-13 à 03.45.57.png

 


 

-----------------------------

Mise à jour 09/06/2017

 

-----------------------------

 

La sortie de macOS 10.13 Beta m'oblige à mettre ce topic à jour. Plus de détails dans ce post.

 

QE_CI_HD4830_10.13_Beta.png

 

 


 

-----------------------------

Mise à jour 15/06/2016

-----------------------------

 

Une petite mise à jour du topic pour confirmer le bon fonctionnement du patch à la volé de Clover (r3561) avec macOS Sierra.

 

clover_exotic_patch_on_the_fly_hd48xx.png

 

 


 

-----------------------------

Mise à jour 24/08/2015

-----------------------------

 

ok, très bien,

 

comme pour la HD6770, la nouvelle méthode du patch à la volé est de nouveau fonctionnel et avec les dernières versions de Clover.

 

pour ma part, je suis sur El Capitan DB7 et Clover r3259

 

post-193719-0-12403300-1440445282_thumb.

 

 

par contre, je suis toujours obligé de m’aider de l’astuce avec FakeSMC pour que mes kexts soient toujours chargés, mais au moins cela marche.    :)

 

 

 

 

iMac:~ fantomas1$ kextstat |grep AMD

   50    2 0xffffff7f82254000 0x125000   0x125000   com.apple.kext.AMDSupport (1.3.6) 39F651CE-4D8C-3F07-AA1A-DA5E31560DB5

   51    0 0xffffff7f823bc000 0x17f000   0x17f000   com.apple.kext.AMD4800Controller (1.3.6) 5E857144-9C17-3942-BBD6-EA0BF7A16400

   65    0 0xffffff7f82387000 0x22000    0x22000    com.apple.kext.AMDFramebuffer (1.3.6) 56B10DD0-F2F5-352D-90CC-F21BA40DE828

iMac:~ fantomas1$ kextstat |grep ATI

   58    0 0xffffff7f8199d000 0x230000   0x230000   com.apple.ATIRadeonX2000 (10.0.0) 11CD5686-6CFF-3FD7-9D4C-6166FA4FA130

iMac:~ fantomas1$ ioreg |grep ATY

    | |   |   | +-o ATY,Cardinal@0 

    | |   |   | | +-o ATY_Cardinal 

    | |   |   | +-o ATY,Cardinal@1 

    | |   |   | | +-o ATY_Cardinal 

 

 

 

et pour config.plist, cela donne ça :

 

post-193719-0-74278400-1440445582_thumb.

 

 

ceci est juste un exemple avec ma HD4830, il va de soi que vous devez mettre Device-ID de votre carte graphique !!!

 

 


 

 

 

Salut à tou(te)s

 

Comme certain(e)s le savent, les cartes graphiques dites "Exotiques" ne sont pas supportés par le système d'exploitation d'Apple.

En sus d'ajouter l'identifient de la carte graphique (Device ID) dans l'Info.plist du ou des kexts concernés, il faut aussi interagir sur la partie "binaire" du kext par le biais du "patching".

 

Dans notre cas, les cartes graphiques exotiques sont les cartes AMD (anciennement ATI) de la série HD 48xx, et plus précisément les HD 4830, HD4850, HD4870x2 et HD4890.*

 

Donc le but est de faire fonctionner ces cartes graphiques de manière stable et fluide en activant QE_CI, chose nécessaire pour en profiter pleinement du système d'exploitation.

 

Juste avant de commencer, vous l'avez peut-être remarqué, la HD4870 n'est pas sur la liste suscitée et pour cause c'est que cette carte graphique est nativement supportée par le système d'exploitation d'Apple. Son Device ID est 0x94401002 que vous pouvez trouvé dans l'Info.plist des kexts concernés et c'est celui-ci que nous allons utiliser afin de le remplacer par le Device ID de notre carte graphique.

 

** Ce tuto est fait pour fonctionner sous OS X Mavericks, mais il doit fonctionner aussi avec les autres. La seule chose différente c'est l'adresse binaire à patcher.    

 


 

Très bien, comme le titre le suggère, nous allons voir comment faire reconnaître ces cartes graphiques sous Clover et obtenir par la même un QE_CI activé et parfaitement fonctionnelle.

 

Je vais utiliser ma Sapphire HD4830 512 MB GDDR3 PCI-E (comme cobaye   :dev: ) pour ce test et qui a pour Device ID 0x944c1002.

 

Pour que ce test réussisse, nous allons donc utiliser ces 2 kexts, à savoir AMD4800Controller.kext (pour la partie QE) et ATIRadeonX2000.kext (pour la partie CI) et allons ajouter notre Device ID dans l'Info.plist. via le tweak "KernelAndKextPatches"

 

Donc les valeurs à entrer dans notre config.plist sont celle-ci :

<key>KernelAndKextPatches</key>
    <array>
        <dict>
            <key>Name</key>
            <string>AMD4800Controller</string>
            <key>InfoPlistPatch</key>
            <string>Yes</string>
            <key>Find</key>
            <string>0x94401002</string>
            <key>Replace</key>
            <string>0x944C1002</string>
        </dict>
        <dict>
            <key>Name</key>
            <string>ATIRadeonX2000</string>
            <key>InfoPlistPatch</key>
            <string>Yes</string>
            <key>Find</key>
            <string>0x94401002</string>
            <key>Replace</key>
            <string>0x944C1002</string>
        </dict>
    </array>

Comme vous pouvez le voir, la clé "InfoPlistPatch" sert à injecter notre Device ID "uniquement" dans Info.plist, sans y toucher à la partie "binaire" de nos kexts. La clé "Find" a pour fonction de trouver le Device ID que l'on veut remplacer par le notre en utilisant la clé "Replace".

 

Très bien, maintenant comme nous l'avons dit au début de ce tutoriel, ajouter notre Device ID n'est pas suffisant pour faire fonctionner pleinement notre carte graphique, il faut encore interagir sur la partie "binaire" de nos kexts. Dans notre cas, il va falloir agir uniquement sur un kext, çàd sur ATIRadeonX2000.kext et plus particulièrement sur ATIRadeonX2000.kext/Contents/MacOS/ATIRadeonX2000

 

Et pour cela, nous allons faire comme ceci :

<key>KextsToPatch</key>
<array>
<dict>
    <key>Name</key>
    <string>ATIRadeonX2000</string>
    <key>Find</key>
    <data>0F8394010000</data>
    <key>Replace</key>
    <data>909090909090</data>
</dict>
</array>

Là nous pouvons voir que la clé "InfoPlistPatch" n'est pas utilisée et donc ces valeurs n'auront aucun effet sur l'Info.plist mais agiront uniquement au niveau de la partie "binaire". 

 

Et voici les valeurs en leur forme complète que vous devrez ajouter dans votre config.plist

<key>KernelAndKextPatches</key>
    <array>
        <dict>
            <key>Name</key>
            <string>AMD4800Controller</string>
            <key>InfoPlistPatch</key>
            <string>Yes</string>
            <key>Find</key>
            <string>0x94401002</string>
            <key>Replace</key>
            <string>0x944C1002</string>
        </dict>
        <dict>
            <key>Name</key>
            <string>ATIRadeonX2000</string>
            <key>InfoPlistPatch</key>
            <string>Yes</string>
            <key>Find</key>
            <string>0x94401002</string>
            <key>Replace</key>
            <string>0x944C1002</string>
        </dict>
        <dict>
            <key>Name</key>
            <string>ATIRadeonX2000</string>
            <key>Find</key>
            <data>0F8394010000</data>
            <key>Replace</key>
            <data>909090909090</data>
       </dict>
    </array>

Très bien, maintenant il ne nous reste plus qu'à autoriser l'injection des kexts, sans quoi le patch ne fonctionnera pas. Et nous allons le faire via le tweak "InjectKexts" comme ceci :

<key>SystemParameters</key>    --> clé principale
<dict>
      <key>InjectSystemID</key>
      <true/>
      <key>InjectKexts</key>   --> sous clé
      <string>Yes</string>
</dict>

 


 

Si certain(e)s d'entre vous préfèrent utiliser le logiciel "Clover Configurator" pour plus de facilité, voici comment entrer ces valeurs :

 

Allez sur l'onglet "Kernel And Kext Patches" et faites comme ceci :

 

KernelAndKextPatches_tab.png 

 

*Ne faites pas attention sur le majuscule/minuscule, cela ne fait aucune différence

 

 

Et pour injecter les kexts, aller sur l'onglet "System Parameters" et mettez l'option Inject Kexts sur Yes comme ceci :

 

System_Parameters_tab.png

 

 

Voilà, vous n'avez plus qu'à enregistrer les ajustements, redémarrer votre pc et apprécier le résultat.

 


 

MAIS ... seulement voilà ... il y a un problème ... 

 

Quoi ? 

 

Initialement, les kexts ne sont pas présents dans le kernelcache à cause de "OSBundleRequired=Safe Boot" (ils ne sont pas chargés en local par défaut mais en mode sans échec) et donc le patchage "à la volé" (on the fly) ne fonctionnera pas.

 

Donc quoi, tout ça pour rien ?

 

Non, bien-sûr, voici l'astuce pour remédier à cela :

 

Dans un premier temps, il vous faut booter l'OS sans kernelcache. Si vous utiliser Clover Configurator, il vous suffit juste de cocher l'option "No Caches" dans l'onglet "System and Parameters" ou bien vous le faites directement dans votre config.plist :

<key>SystemParameters</key>
<dict>
      <key>InjectSystemID</key>
      <true/>
      <key>InjectKexts</key>
      <string>Yes</string>
      <key>NoCaches</key>
      <true/>
</dict>

Ceci aura donc pour effet de bloquer kernelcache et obliger boot.efi de charger le kernel et les kexts séparément. Clover et FSInject vont ensuite intercepter tous les chargements des kexts par boot.efi et changer "OSBundleRequired=Safe Boot" en "OSBundleRequired=Root" à la volé (on the fly) et forceront boot .efi à charger les kexts. Et ensuite dans un second temps, Clover va patcher l'Info.plist de ces deux kexts et la partie binaire de ATIRadeonX2000, kernel va les charger et ils seront rattachés à votre carte graphique.

 

Une fois ceci fait (donc les kexts utilisés), il vous suffit de faire sudo touch /System/Library/Extensions. Ceci créera un nouveau kernelcache qui cette fois-ci contiendra vos kexts utilisés. Ensuite il ne vous reste plus qu'à redémarrer normalement (en décochant l'option No Caches dans Clover Configurator) et le patch fonctionnera à merveille.

 


 

Oui, mais ... là aussi ...

 

Quoi encore ?

 

Seulement voilà, pour une raison ou une autre, il peut arriver que kernelcache se reconstruit tout seul et le patch "à la volé" ne fonctionne plus.

 

Alors je fais quoi moi en attendant ?

 

L'astuce la plus efficace pour le moment est d'injecter les infos de vos kexts à l'intérieur de l'Info.plist de FakeSMC.kext comme des IOKitPersonalities additionnels.

 

????Kézako????

 

Ces infos vous les trouverez dans l'Info.plist de ces 2 kexts, sous IOKitPersonalities. Les voici :

 

Pour AMD4800Controller.kext

<key>Controller</key>
<dict>
        <key>ATY,Cardinal</key>
        <dict>
                <key>aty_config</key>
                <dict>
                        <key>CFG_NO_PP</key>
                        <true/>
                </dict>
         </dict>
         <key>CFBundleIdentifier</key>
         <string>com.apple.kext.AMD4800Controller</string>
         <key>IOClass</key>
         <string>AMD4800Controller</string>
         <key>IOMatchCategory</key>
         <string>IOFramebuffer</string>
         <key>IOName</key>
         <string>AMD4800Controller</string>
         <key>IOPCIMatch</key>
         <string>0x94401002 0x944a1002</string>
         <key>IOProbeScore</key>
         <integer>65050</integer>
         <key>IOProviderClass</key>
         <string>IOPCIDevice</string>
         <key>aty_config</key>
         <dict>
                 <key>CFG_NO_PP</key>
                 <false/>
                 <key>CFG_PAA</key>
                 <integer>0</integer>
                 <key>CFG_USE_USCN</key>
                 <false/>
         </dict>
         <key>aty_properties</key>
         <dict>
                 <key>PP_GFXClockGatingEnabled</key>
                 <integer>1</integer>
         </dict>
</dict>

Et pour ATIRadeonX2000.kext

<key>ATIRadeonX2000</key>
<dict>
        <key>ATIEnableWideBlitSupport</key>
        <true/>
        <key>ATIUseTearingWideBlit</key>
        <false/>
        <key>CFBundleIdentifier</key>
        <string>com.apple.ATIRadeonX2000</string>
        <key>GpuDebugPolicy</key>
        <integer>0</integer>
        <key>IOCFPlugInTypes</key>
        <dict>
                <key>ACCF0000-0000-0000-0000-000a2789904e</key>
                <string>ATIRadeonX2000GA.plugin</string>
        </dict>
        <key>IOClass</key>
        <string>ATIRadeonX2000</string>
        <key>IODVDBundleName</key>
        <string>ATIRadeonX2000VADriver</string>
        <key>IOKitDebug</key>
        <integer>0</integer>
        <key>IOMatchCategory</key>
        <string>IOAccelerator</string>
        <key>IOPCIMatch</key>
        <string>0x94001002 0x94011002 0x94021002 0x94031002 0x95811002 0x95831002 0x95881002 0x94c81002 0x94c91002 0x95001002 0x95011002 0x95051002 0x95071002 0x95041002 0x95061002 0x95981002 0x94881002 0x95991002 0x95911002 0x95931002 0x94401002 0x94421002 0x944A1002 0x945A1002 0x94901002 0x949E1002 0x94801002 0x95401002 0x95411002 0x954E1002 0x954F1002 0x95521002 0x95531002 0x94a01002</string>
        <key>IOProviderClass</key>
        <string>IOPCIDevice</string>
        <key>IOSourceVersion</key>
        <string>8.24.11</string>
        <key>IOVARendererID</key>
        <integer>16908288</integer>
        <key>sensor-properties</key>
        <array>
                <dict>
                       <key>device_type</key>
                       <data>
                       Z3B1LXNlbnNvcg==
                       </data>
                       <key>location</key>
                       <string>GPU</string>
                       <key>name</key>
                       <string>gpu-sensor</string>
                       <key>polling-period</key>
                       <data>
                       AAAAAQAAAAA=
                       </data>
                       <key>reg</key>
                       <data>
                       AAAAAg==
                       </data>
                       <key>sample-period</key>
                       <data>
                       AAAAAACYmAA=
                       </data>
                       <key>sensor-id</key>
                       <data>
                       AAAABg==
                       </data>
                       <key>version</key>
                       <data>
                       AAAAAg==
                       </data>
                       <key>zone</key>
                       <data>
                       AAAAAg==
                       </data>
               </dict>
       </array
</dict>

 

Et voici donc l'Info.plist de FakeSMC.kext dans son intégrité, vous pouvez jeter un oeil, histoire de voir à quoi cela ressemble :

 

FakeSMC_Info.plist.zip

 

Et pour les moins casse-têtes, voici FakeSMC.kext modifié que j'utilise pour charger les 2 kexts :

 

FakeSMC.kext.zip

 

 

Voilà, avec ceci, vous n'aurez plus besoin de savoir si oui ou non les kexts sont dans le kernelcache.

 


 

Crédits attribués à :

 

netkas  pour son incontournable QE_CI Exotic patch (même s'il n'importe plus son support)

 

Slice  & co. pour leur bébé nommé Clover

 

dmazar  pour son astuce avec FakeSMC.kext   (pour plus d'info, voir ici)

 

duffs (rarement ici, plus sur le site de netkas) pour son astuce de comment patcher la partie binaire avec Clover, ce fût lors de la sortie de OS X Mavericks DP1

 

nyolc8  pour le support de QE_CI Exotic patch pour Mavericks

 

fantomas1  pour ......... pour ... quoi déjà ? Ah ben non ... non ... pour rien ...

Edited by fantomas1
topic mis à jour le 12/07/2018

Share this post


Link to post
Share on other sites
Advertisement

i tired but really that AMD4800controller doesn't load,,

even i can see them injecting 

0:760  0:000  KextToPatch 1: ATIRadeonX2000 (QE CI PATCH) Info.plist patch, data len: 10
0:760  0:000  KextToPatch 2: AMD4800Controller (QE CI PATCH) Info.plist patch, data len: 10
0:760  0:000  KextToPatch 3: ATIRadeonX2000 (QE CI PATCH) Kext bin patch, data len: 6

but AMD4800Controller doesn't load actually ( using nocache=Yes) 

 

maybe this is a problem 

6:925  0:000  FSInjection: blocking caches, using kexts path: 'EFI\CLOVER\kexts\10.9'

Share this post


Link to post
Share on other sites

Yes that would be awesome if u can check my pc using teamviewer 

 

some progress thanks to you


now AMD4800controller is loaded but AMDframebuffer is not loaded lol :)

Share this post


Link to post
Share on other sites

:)

 

Aller !! je relance le débat , hormis  Chameleon ou Clover , j'ai toujours le problème récurent du rafraichissement , étant motivé pour résoudre ce problème depuis 2010 !! la patience est une vertu parait-il ?! :D , j'en suis au  device id 0x94421002  écrit dans info.plist du AMDController4800.kext , il y a bien une solution quand même ?  cette 4850 1024 mérite que l'on se casse la tête non ?

 

975336Capture4850.png

 

421545CaptureHD.png

* Intel ACPI Component Architecture
 * AML Disassembler version 20091214
 *
 * Disassembly of ./dsdt.aml, Sun Mar 30 03:31:54 2014
 *
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x00004A26 (18982)
 *     Revision         0x01 **** ACPI 1.0, no 64-bit math support
 *     Checksum         0x0A
 *     OEM ID           "GBT   "
 *     OEM Table ID     "GBTUACPI"
 *     OEM Revision     0x00001000 (4096)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20120420 (538051616)
 */
DefinitionBlock ("./dsdt.aml", "DSDT", 1, "GBT   ", "GBTUACPI", 0x00001000)
{
    Scope (_PR)
    {
        Processor (CPU0, 0x00, 0x00000410, 0x06) {}
        Processor (CPU1, 0x01, 0x00000410, 0x06) {}
        Processor (CPU2, 0x02, 0x00000410, 0x06) {}
        Processor (CPU3, 0x03, 0x00000410, 0x06) {}
        Processor (CPU4, 0x04, 0x00000410, 0x06) {}
        Processor (CPU5, 0x05, 0x00000410, 0x06) {}
        Processor (CPU6, 0x06, 0x00000410, 0x06) {}
        Processor (CPU7, 0x07, 0x00000410, 0x06) {}
    }

    Name (_S0, Package (0x04)
    {
        Zero, 
        Zero, 
        Zero, 
        Zero
    })
    Name (SS1, Package (0x04)
    {
        One, 
        Zero, 
        Zero, 
        Zero
    })
    Name (_S3, Package (0x04)
    {
        0x05, 
        Zero, 
        Zero, 
        Zero
    })
    Name (_S4, Package (0x04)
    {
        0x06, 
        Zero, 
        Zero, 
        Zero
    })
    Name (_S5, Package (0x04)
    {
        0x07, 
        Zero, 
        Zero, 
        Zero
    })
    Name (FLAG, Zero)
    Name (STAT, Zero)
    OperationRegion (SMOD, SystemMemory, 0x000FF840, One)
    Field (SMOD, ByteAcc, NoLock, Preserve)
    {
            ,   7, 
        SUSF,   1
    }

    OperationRegion (LBOC, SystemMemory, 0x000FF820, 0x02)
    Field (LBOC, ByteAcc, NoLock, Preserve)
    {
        UBMC,   1, 
                Offset (0x02)
    }

    OperationRegion (DEBG, SystemIO, 0x80, One)
    Field (DEBG, ByteAcc, NoLock, Preserve)
    {
        DBG1,   8
    }

    OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000)
    Field (RCRB, DWordAcc, Lock, Preserve)
    {
                Offset (0x3404), 
            ,   7, 
        HPTF,   1
    }

    OperationRegion (ELKM, SystemMemory, 0x000FFFEA, One)
    Field (ELKM, ByteAcc, NoLock, Preserve)
    {
            ,   1, 
            ,   1, 
        ELSO,   1, 
            ,   1, 
            ,   1, 
            ,   1, 
            ,   1
    }

    OperationRegion (EXTM, SystemMemory, 0x000FF830, 0x10)
    Field (EXTM, WordAcc, NoLock, Preserve)
    {
        ROM1,   16, 
        RMS1,   16, 
        ROM2,   16, 
        RMS2,   16, 
        ROM3,   16, 
        RMS3,   16, 
        AMEM,   32
    }

    OperationRegion (SMIC, SystemIO, 0xB2, One)
    Field (SMIC, ByteAcc, NoLock, Preserve)
    {
        SCP,    8
    }

    OperationRegion (TCOI, SystemIO, 0x0460, 0x08)
    Field (TCOI, WordAcc, NoLock, Preserve)
    {
                Offset (0x04), 
            ,   9, 
        SCIS,   1, 
                Offset (0x06)
    }

    OperationRegion (GP2C, SystemIO, 0x042C, 0x02)
    Field (GP2C, ByteAcc, NoLock, Preserve)
    {
        G2C1,   8, 
        G2C2,   8
    }

    OperationRegion (APMP, SystemIO, 0xB2, 0x02)
    Field (APMP, ByteAcc, NoLock, Preserve)
    {
        APMC,   8, 
        APMD,   8
    }

    OperationRegion (AGPS, SystemIO, 0x0438, 0x04)
    Field (AGPS, ByteAcc, NoLock, Preserve)
    {
        GPSE,   16, 
        GPSS,   16
    }

    OperationRegion (GPCN, SystemIO, 0x0442, One)
    Field (GPCN, ByteAcc, NoLock, Preserve)
    {
            ,   1, 
        SWGC,   1, 
                Offset (0x01)
    }

    Name (OSFX, One)
    Name (LINX, Zero)
    Name (AMAC, Zero)
    Name (OSFL, One)
    Method (STRC, 2, NotSerialized)
    {
        If (LNotEqual (SizeOf (Arg0), SizeOf (Arg1)))
        {
            Return (Zero)
        }

        Add (SizeOf (Arg0), One, Local0)
        Name (BUF0, Buffer (Local0) {})
        Name (BUF1, Buffer (Local0) {})
        Store (Arg0, BUF0)
        Store (Arg1, BUF1)
        While (Local0)
        {
            Decrement (Local0)
            If (LNotEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (
                BUF1, Local0))))
            {
                Return (Zero)
            }
        }

        Return (One)
    }

    OperationRegion (INFO, SystemMemory, 0x000FF840, One)
    Field (INFO, ByteAcc, NoLock, Preserve)
    {
        KBDI,   1, 
        RTCW,   1, 
        PS2F,   1, 
        IRFL,   2, 
        DISE,   1, 
        SSHU,   1
    }

    Scope (\)
    {
        Name (PICF, Zero)
        Method (_PIC, 1, NotSerialized)
        {
            Store (Arg0, PICF)
        }
    }

    Method (_PTS, 1, NotSerialized)
    {
        Or (Arg0, 0xF0, Local0)
        Store (Local0, DBG1)
        OSTP ()
        Or (Arg0, 0xF0, Local0)
        Store (Local0, DBG1)
        If (LEqual (Arg0, One)) {}
        If (LEqual (Arg0, 0x03)) {}
        If (LEqual (Arg0, 0x05))
        {
            Store (0x99, SMIP)
        }

        If (LEqual (Arg0, 0x04))
        {
            If (LNot (PICF))
            {
                Sleep (0x64)
            }
        }
    }

    Method (_WAK, 1, NotSerialized)
    {
        Store (0xFF, DBG1)
        If (LEqual (Arg0, 0x04))
        {
            If (LEqual (OSFL, One))
            {
                Store (0x56, SMIP)
            }

            If (LEqual (OSFL, 0x02))
            {
                Store (0x57, SMIP)
            }

            If (LEqual (OSFL, Zero))
            {
                Store (0x58, Local0)
                If (LEqual (OSFX, 0x03))
                {
                    Store (0x59, Local0)
                }

                If (LEqual (OSFX, 0x05))
                {
                    Store (0x5B, Local0)
                }

                If (LEqual (OSFX, 0x07))
                {
                    Store (0x5D, Local0)
                }

                Store (Local0, SMIP)
            }
        }

        If (LEqual (Arg0, One)) {}
        If (OSFL)
        {
            Notify (\_SB.PWRB, 0x02)
        }
        Else
        {
            If (LEqual (RTCW, Zero))
            {
                Notify (\_SB.PWRB, 0x02)
            }
        }
    }

    Scope (_SI)
    {
        Method (_MSG, 1, NotSerialized)
        {
            Store ("Local0", Local0)
        }

        Method (_SST, 1, NotSerialized)
        {
            Store ("Local0", Local0)
        }
    }

    Scope (_GPE)
    {
        Method (_L08, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.PX40.UAR1, 0x02)
        }

        Method (_L06, 0, NotSerialized)
        {
            If (\_SB.PCI0.IGD0.GSSE)
            {
                \_SB.PCI0.IGD0.OPRN ()
            }
            Else
            {
                Store (One, SCIS)
            }
        }

        Method (_L0D, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USBE, 0x02)
            Notify (\_SB.PCI0.USE2, 0x02)
            Notify (\_SB.PWRB, 0x02)
            Notify (\_SB.PCI0.AZAL, 0x02)
        }

        Method (_L0B, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.HUB0, 0x02)
        }

        Method (_L09, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.PEX0, 0x02)
            Notify (\_SB.PCI0.PEX1, 0x02)
            Notify (\_SB.PCI0.PEX2, 0x02)
            Notify (\_SB.PCI0.PEX3, 0x02)
            Notify (\_SB.PCI0.PEX4, 0x02)
            Notify (\_SB.PCI0.PEX5, 0x02)
            Notify (\_SB.PCI0.PEX6, 0x02)
            Notify (\_SB.PCI0.PEX7, 0x02)
        }
    }

    Scope (_SB)
    {
        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0B)
            }
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, Zero)
            Name (_UID, One)
            Name (_BBN, Zero)
            OperationRegion (MMDR, PCI_Config, 0x90, 0x30)
            Scope (\)
            {
                Field (\_SB.PCI0.MMDR, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x08), 
                            Offset (0x10), 
                            Offset (0x18), 
                            Offset (0x20), 
                    SMBD,   32, 
                    SMBG,   32, 
                    TSMB,   32, 
                    TLUD,   32
                }
            }

            Method (_S3D, 0, NotSerialized)
            {
                If (LEqual (OSFL, 0x02))
                {
                    Return (0x02)
                }
                Else
                {
                    Return (0x03)
                }
            }

            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Name (BUF0, ResourceTemplate ()
                {
                    WordBusNumber (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode,
                        0x0000,             // Granularity
                        0x0000,             // Range Minimum
                        0x003F,             // Range Maximum
                        0x0000,             // Translation Offset
                        0x0040,             // Length
                        ,, )
                    IO (Decode16,
                        0x0CF8,             // Range Minimum
                        0x0CF8,             // Range Maximum
                        0x01,               // Alignment
                        0x08,               // Length
                        )
                    WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                        0x0000,             // Granularity
                        0x0000,             // Range Minimum
                        0x0CF7,             // Range Maximum
                        0x0000,             // Translation Offset
                        0x0CF8,             // Length
                        ,, , TypeStatic)
                    WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                        0x0000,             // Granularity
                        0x0D00,             // Range Minimum
                        0xFFFF,             // Range Maximum
                        0x0000,             // Translation Offset
                        0xF300,             // Length
                        ,, , TypeStatic)
                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                        0x00000000,         // Granularity
                        0x000A0000,         // Range Minimum
                        0x000BFFFF,         // Range Maximum
                        0x00000000,         // Translation Offset
                        0x00020000,         // Length
                        ,, , AddressRangeMemory, TypeStatic)
                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                        0x00000000,         // Granularity
                        0x000C0000,         // Range Minimum
                        0x000DFFFF,         // Range Maximum
                        0x00000000,         // Translation Offset
                        0x00020000,         // Length
                        ,, , AddressRangeMemory, TypeStatic)
                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                        0x00000000,         // Granularity
                        0xFED40000,         // Range Minimum
                        0xFED44FFF,         // Range Maximum
                        0x00000000,         // Translation Offset
                        0x00005000,         // Length
                        ,, , AddressRangeMemory, TypeStatic)
                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                        0x00000000,         // Granularity
                        0x00100000,         // Range Minimum
                        0xFEBFFFFF,         // Range Maximum
                        0x00000000,         // Translation Offset
                        0xFEB00000,         // Length
                        ,, _Y00, AddressRangeMemory, TypeStatic)
                })
                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y00._MIN, TCMM)
                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y00._LEN, TOMM)
                Store (TLUD, TCMM)
                Subtract (0xFEC00000, TCMM, TOMM)
                Return (BUF0)
            }

            Name (PICM, Package (0x1F)
            {
                Package (0x04)
                {
                    0x0002FFFF, 
                    Zero, 
                    LNKA, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x03, 
                    LNKD, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0016FFFF, 
                    Zero, 
                    LNKA, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0016FFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0016FFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0016FFFF, 
                    0x03, 
                    LNKD, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001BFFFF, 
                    Zero, 
                    LNK0, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    Zero, 
                    LNKA, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x03, 
                    LNKD, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    Zero, 
                    LNKA, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x03, 
                    LNKD, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    Zero, 
                    LNKA, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x03, 
                    LNKD, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    Zero, 
                    LNK1, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    One, 
                    LNKD, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    0x03, 
                    LNKA, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    One, 
                    LNKD, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    One, 
                    LNKD, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001AFFFF, 
                    Zero, 
                    LNKA, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001AFFFF, 
                    One, 
                    LNKF, 
                    Zero
                }, 

                Package (0x04)
                {
                    0x001AFFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }
            })
            Name (APIC, Package (0x23)
            {
                Package (0x04)
                {
                    0x0002FFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x03, 
                    Zero, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x0016FFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x0016FFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0016FFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0016FFFF, 
                    0x03, 
                    Zero, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x001BFFFF, 
                    Zero, 
                    Zero, 
                    0x16
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0001FFFF, 
                    0x03, 
                    Zero, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x0006FFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x0006FFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x0006FFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x0006FFFF, 
                    0x03, 
                    Zero, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x03, 
                    Zero, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x001CFFFF, 
                    0x03, 
                    Zero, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    Zero, 
                    Zero, 
                    0x17
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    One, 
                    Zero, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x001DFFFF, 
                    0x03, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    One, 
                    Zero, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    One, 
                    Zero, 
                    0x13
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 

                Package (0x04)
                {
                    0x001AFFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 

                Package (0x04)
                {
                    0x001AFFFF, 
                    One, 
                    Zero, 
                    0x15
                }, 

                Package (0x04)
                {
                    0x001AFFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (LNot (PICF))
                {
                    Return (PICM)
                }
                Else
                {
                    Return (APIC)
                }
            }

            Device (IGD0)
            {
                Name (_ADR, 0x00020000)
                OperationRegion (IGDP, PCI_Config, 0x40, 0xC0)
                Field (IGDP, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x12), 
                        ,   1, 
                    GIVD,   1, 
                        ,   2, 
                    GUMA,   3, 
                            Offset (0x14), 
                        ,   4, 
                    GMFN,   1, 
                            Offset (0x18), 
                    SSRW,   32, 
                            Offset (0xA4), 
                    ASLE,   8, 
                            Offset (0xA8), 
                    GSSE,   1, 
                    GSSB,   14, 
                    GSES,   1, 
                            Offset (0xB0), 
                            Offset (0xB1), 
                    CDVL,   5, 
                            Offset (0xB2), 
                            Offset (0xBC), 
                    ASLS,   32
                }

                OperationRegion (IGDM, SystemMemory, 0xFFFF0000, 0x2040)
                Field (IGDM, AnyAcc, NoLock, Preserve)
                {
                    SIGN,   128, 
                    SIZE,   32, 
                    OVER,   32, 
                    SVER,   256, 
                    VVER,   128, 
                    GVER,   128, 
                    MBOX,   32, 
                            Offset (0x100), 
                    DRDY,   32, 
                    CSTS,   32, 
                    CEVT,   32, 
                            Offset (0x120), 
                    DIDL,   256, 
                    CPDL,   256, 
                    CADL,   256, 
                    NADL,   256, 
                    ASLP,   32, 
                    TIDX,   32, 
                    CHPD,   32, 
                    CLID,   32, 
                    CDCK,   32, 
                    SXSW,   32, 
                    EVTS,   32, 
                    CNOT,   32, 
                    NRDY,   32, 
                            Offset (0x200), 
                    SCIE,   1, 
                    GEFC,   4, 
                    GXFC,   3, 
                    GESF,   8, 
                            Offset (0x204), 
                    PARM,   32, 
                    DSLP,   32, 
                            Offset (0x300), 
                    ARDY,   32, 
                    ASLC,   32, 
                    TCHE,   32, 
                    ALSI,   32, 
                    BCLP,   32, 
                    PFIT,   32, 
                            Offset (0x400), 
                    GVD1,   57344, 
                    IBTT,   8, 
                    IPAT,   8, 
                    ITVF,   8, 
                    ITVM,   8, 
                    IPSC,   8, 
                    IBLC,   8, 
                    IBIA,   8, 
                    ISSC,   8, 
                    I409,   8, 
                    I509,   8, 
                    I609,   8, 
                    I709,   8, 
                    IDMM,   8, 
                    IDMS,   8, 
                    IF1E,   8, 
                    GSMI,   8, 
                    HVCO,   8, 
                    LIDS,   8, 
                    CGCS,   16
                }

                Name (DBTB, Package (0x11)
                {
                    Zero, 
                    One, 
                    0x02, 
                    0x03, 
                    0x04, 
                    0x05, 
                    0x06, 
                    0x07, 
                    0x08, 
                    0x09, 
                    0x0A, 
                    0x10, 
                    0x11, 
                    0x12, 
                    0x13, 
                    0x14, 
                    0xFF
                })
                Name (SUCC, One)
                Name (NVLD, 0x02)
                Name (CRIT, 0x04)
                Name (NCRT, 0x06)
                Method (OPRN, 0, Serialized)
                {
                    Method (GBDA, 0, Serialized)
                    {
                        If (LEqual (GESF, Zero))
                        {
                            Store (Zero, PARM)
                            Or (PARM, One, PARM)
                            Or (PARM, 0x08, PARM)
                            Or (PARM, 0x10, PARM)
                            Or (PARM, 0x20, PARM)
                            Or (PARM, 0x40, PARM)
                            Or (PARM, 0x0200, PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, One))
                        {
                            Store (0x0240, PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x04))
                        {
                            Name (LOOP, Zero)
                            And (PARM, 0xFFFFFF00, PARM)
                            Or (DerefOf (Index (DBTB, IBTT)), PARM, PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x05))
                        {
                            Store (IPSC, PARM)
                            Or (PARM, ShiftLeft (IPAT, 0x08), PARM)
                            Add (PARM, 0x0100, PARM)
                            Or (PARM, ShiftLeft (LIDS, 0x10), PARM)
                            Add (PARM, 0x00010000, PARM)
                            Or (PARM, ShiftLeft (IBIA, 0x14), PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x06))
                        {
                            Store (ITVF, PARM)
                            Or (PARM, ShiftLeft (ITVM, 0x04), PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x07))
                        {
                            Store (GIVD, PARM)
                            XOr (PARM, One, PARM)
                            Or (PARM, ShiftLeft (GMFN, One), PARM)
                            Or (PARM, 0x1800, PARM)
                            If (LEqual (IDMM, Zero))
                            {
                                Or (PARM, ShiftLeft (IDMS, 0x0D), PARM)
                            }

                            If (LOr (LEqual (IDMM, One), LEqual (IDMM, 0x03)))
                            {
                                Or (PARM, ShiftLeft (IDMS, 0x11), PARM)
                            }

                            Or (PARM, ShiftLeft (CGCS, 0x15), PARM)
                            Store (One, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x0A))
                        {
                            Store (Zero, PARM)
                            If (ISSC)
                            {
                                Or (0x03, PARM)
                            }

                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        Store (Zero, GESF)
                        Return (CRIT)
                    }

                    Method (SBCB, 0, Serialized)
                    {
                        If (LEqual (GESF, Zero))
                        {
                            Store (Zero, PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, One))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x03))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x04))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x05))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x06))
                        {
                            Store (And (PARM, 0x0F), ITVF)
                            Store (ShiftRight (And (PARM, 0xF0), 0x04), ITVM)
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x07))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x08))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x09))
                        {
                            And (PARM, 0xFF, IBTT)
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x0A))
                        {
                            And (PARM, 0xFF, IPSC)
                            If (And (ShiftRight (PARM, 0x08), 0xFF))
                            {
                                And (ShiftRight (PARM, 0x08), 0xFF, IPAT)
                                Decrement (IPAT)
                            }

                            And (ShiftRight (PARM, 0x14), 0x07, IBIA)
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x0B))
                        {
                            And (ShiftRight (PARM, One), One, IF1E)
                            If (And (PARM, 0x0001E000))
                            {
                                And (ShiftRight (PARM, 0x0D), 0x0F, IDMS)
                                Store (Zero, IDMM)
                            }
                            Else
                            {
                                And (ShiftRight (PARM, 0x11), 0x0F, IDMS)
                                Store (One, IDMM)
                            }

                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x10))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x11))
                        {
                            Store (ShiftLeft (LIDS, 0x08), PARM)
                            Add (PARM, 0x0100, PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x12))
                        {
                            If (And (PARM, One))
                            {
                                If (LEqual (ShiftRight (PARM, One), One))
                                {
                                    Store (One, ISSC)
                                }
                                Else
                                {
                                    Store (Zero, GESF)
                                    Return (CRIT)
                                }
                            }
                            Else
                            {
                                Store (Zero, ISSC)
                            }

                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x13))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        Store (Zero, GESF)
                        Return (SUCC)
                    }

                    If (LEqual (GEFC, 0x04))
                    {
                        Store (GBDA (), GXFC)
                    }

                    If (LEqual (GEFC, 0x06))
                    {
                        Store (SBCB (), GXFC)
                    }

                    Store (PARM, SSRW)
                    Store (Zero, GEFC)
                    Store (One, SCIS)
                    Store (Zero, GSSE)
                    Store (Zero, SCIE)
                    Return (Zero)
                }
            }

            Device (IGD1)
            {
                Name (_ADR, 0x00020001)
            }

            Device (PEG0)
            {
                Name (_ADR, 0x00010000)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Name (PE00, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKD, 
                        Zero
                    }
                })
                Name (AE00, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x13
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (PE00)
                    }
                    Else
                    {
                        Return (AE00)
                    }
                }
            }

            Device (PEG1)
            {
                Name (_ADR, 0x00010001)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Name (PE01, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKA, 
                        Zero
                    }
                })
                Name (AE01, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x10
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (PE01)
                    }
                    Else
                    {
                        Return (AE01)
                    }
                }
            }

            Device (PEX0)
            {
                Name (_ADR, 0x001C0000)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x09, 
                        0x05
                    })
                }

                Name (PIC0, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKD, 
                        Zero
                    }
                })
                Name (API0, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x13
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (PIC0)
                    }
                    Else
                    {
                        Return (API0)
                    }
                }
            }

            Device (PEX1)
            {
                Name (_ADR, 0x001C0001)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x09, 
                        0x05
                    })
                }

                Name (PIC1, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKA, 
                        Zero
                    }
                })
                Name (API1, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x10
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (PIC1)
                    }
                    Else
                    {
                        Return (API1)
                    }
                }
            }

            Device (PEX2)
            {
                Name (_ADR, 0x001C0002)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x09, 
                        0x05
                    })
                }

                Name (PIC2, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKB, 
                        Zero
                    }
                })
                Name (API2, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x11
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (PIC2)
                    }
                    Else
                    {
                        Return (API2)
                    }
                }
            }

            Device (PEX3)
            {
                Name (_ADR, 0x001C0003)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x09, 
                        0x05
                    })
                }

                Name (PIC3, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKC, 
                        Zero
                    }
                })
                Name (API3, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x12
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (PIC3)
                    }
                    Else
                    {
                        Return (API3)
                    }
                }
            }

            Device (PEX4)
            {
                Name (_ADR, 0x001C0004)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x09, 
                        0x05
                    })
                }

                Name (PIC4, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKD, 
                        Zero
                    }
                })
                Name (API4, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x13
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (PIC4)
                    }
                    Else
                    {
                        Return (API4)
                    }
                }
            }

            Device (PEX5)
            {
                Name (_ADR, 0x001C0005)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x09, 
                        0x05
                    })
                }

                Name (PIC5, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKA, 
                        Zero
                    }
                })
                Name (API5, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x10
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (PIC5)
                    }
                    Else
                    {
                        Return (API5)
                    }
                }
            }

            Device (PEX6)
            {
                Name (_ADR, 0x001C0006)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x09, 
                        0x05
                    })
                }

                Name (PIC6, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKB, 
                        Zero
                    }
                })
                Name (API6, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x11
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (PIC6)
                    }
                    Else
                    {
                        Return (API6)
                    }
                }
            }

            Device (PEX7)
            {
                Name (_ADR, 0x001C0007)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x09, 
                        0x05
                    })
                }

                Name (PIC7, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        LNKC, 
                        Zero
                    }
                })
                Name (API7, Package (0x04)
                {
                    Package (0x04)
                    {
                        0xFFFF, 
                        Zero, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        One, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x02, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0xFFFF, 
                        0x03, 
                        Zero, 
                        0x12
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (PIC7)
                    }
                    Else
                    {
                        Return (API7)
                    }
                }
            }

            Device (HUB0)
            {
                Name (_ADR, 0x001E0000)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Name (PICM, Package (0x08)
                {
                    Package (0x04)
                    {
                        0x0004FFFF, 
                        Zero, 
                        LNKA, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0x0004FFFF, 
                        One, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0x0004FFFF, 
                        0x02, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0x0004FFFF, 
                        0x03, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        Zero, 
                        LNKB, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        One, 
                        LNKC, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x02, 
                        LNKD, 
                        Zero
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x03, 
                        LNKA, 
                        Zero
                    }
                })
                Name (APIC, Package (0x08)
                {
                    Package (0x04)
                    {
                        0x0004FFFF, 
                        Zero, 
                        Zero, 
                        0x10
                    }, 

                    Package (0x04)
                    {
                        0x0004FFFF, 
                        One, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0x0004FFFF, 
                        0x02, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0x0004FFFF, 
                        0x03, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        Zero, 
                        Zero, 
                        0x11
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        One, 
                        Zero, 
                        0x12
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x02, 
                        Zero, 
                        0x13
                    }, 

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x03, 
                        Zero, 
                        0x10
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (PICM)
                    }
                    Else
                    {
                        Return (APIC)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x0B, 
                        0x05
                    })
                }
            }

            Device (PX40)
            {
                Name (_ADR, 0x001F0000)
                OperationRegion (PREV, PCI_Config, 0x08, One)
                Scope (\)
                {
                    Field (\_SB.PCI0.PX40.PREV, ByteAcc, NoLock, Preserve)
                    {
                        REV0,   8
                    }
                }

                OperationRegion (PIRQ, PCI_Config, 0x60, 0x04)
                Scope (\)
                {
                    Field (\_SB.PCI0.PX40.PIRQ, ByteAcc, NoLock, Preserve)
                    {
                        PIRA,   8, 
                        PIRB,   8, 
                        PIRC,   8, 
                        PIRD,   8
                    }
                }

                OperationRegion (PIR2, PCI_Config, 0x68, 0x04)
                Scope (\)
                {
                    Field (\_SB.PCI0.PX40.PIR2, ByteAcc, NoLock, Preserve)
                    {
                        PIRE,   8, 
                        PIRF,   8, 
                        PIRG,   8, 
                        PIRH,   8
                    }
                }

                OperationRegion (LPIO, PCI_Config, 0x80, 0x0E)
                Scope (\)
                {
                    Field (\_SB.PCI0.PX40.LPIO, ByteAcc, NoLock, Preserve)
                    {
                        UAIO,   8, 
                        PRIO,   8, 
                        LPE1,   8, 
                        LPE2,   8, 
                        GN1L,   8, 
                        GN1H,   8, 
                        GN2L,   8, 
                        GN2H,   8
                    }

                    Method (DISD, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            And (LPE1, 0xFE, LPE1)
                        }

                        If (LEqual (Arg0, One))
                        {
                            And (LPE1, 0xFD, LPE1)
                        }

                        If (LEqual (Arg0, 0x02))
                        {
                            And (LPE1, 0xFB, LPE1)
                        }

                        If (LEqual (Arg0, 0x03))
                        {
                            And (LPE1, 0xF7, LPE1)
                        }

                        If (LEqual (Arg0, 0x04))
                        {
                            And (LPE2, 0xFC, LPE2)
                        }

                        If (LEqual (Arg0, 0x05))
                        {
                            And (LPE1, 0xDF, LPE1)
                        }

                        If (LEqual (Arg0, 0x06))
                        {
                            And (GN2L, 0xFE, GN2L)
                        }
                    }

                    Method (CKIO, 2, NotSerialized)
                    {
                        If (LEqual (Arg1, Zero))
                        {
                            Or (LPE1, One, LPE1)
                            And (UAIO, 0xF0, Local0)
                            If (LEqual (Arg0, 0x03F8))
                            {
                                Or (Local0, Zero, UAIO)
                            }

                            If (LEqual (Arg0, 0x02F8))
                            {
                                Or (Local0, One, UAIO)
                            }

                            If (LEqual (Arg0, 0x02E8))
                            {
                                Or (Local0, 0x05, UAIO)
                            }

                            If (LEqual (Arg0, 0x03E8))
                            {
                                Or (Local0, 0x07, UAIO)
                            }
                        }

                        If (LEqual (Arg1, One))
                        {
                            Or (LPE1, 0x02, LPE1)
                            And (UAIO, 0x0F, Local0)
                            If (LEqual (Arg0, 0x03F8))
                            {
                                Or (Local0, Zero, UAIO)
                            }

                            If (LEqual (Arg0, 0x02F8))
                            {
                                Or (Local0, 0x10, UAIO)
                            }

                            If (LEqual (Arg0, 0x02E8))
                            {
                                Or (Local0, 0x50, UAIO)
                            }

                            If (LEqual (Arg0, 0x03E8))
                            {
                                Or (Local0, 0x70, UAIO)
                            }
                        }

                        If (LEqual (Arg1, 0x02))
                        {
                            Or (LPE1, 0x04, LPE1)
                            And (PRIO, 0xFC, Local0)
                            If (LEqual (Arg0, 0x0378))
                            {
                                Or (Local0, Zero, PRIO)
                            }

                            If (LEqual (Arg0, 0x0278))
                            {
                                Or (Local0, One, PRIO)
                            }

                            If (LEqual (Arg0, 0x03BC))
                            {
                                Or (Local0, 0x02, PRIO)
                            }
                        }

                        If (LEqual (Arg1, 0x03))
                        {
                            Or (LPE1, 0x08, LPE1)
                        }

                        If (LEqual (Arg1, 0x04))
                        {
                            If (LEqual (Arg0, 0x0201))
                            {
                                Or (LPE2, One, LPE2)
                            }

                            If (LEqual (Arg0, 0x0209))
                            {
                                Or (LPE2, 0x02, LPE2)
                            }
                        }

                        If (LEqual (Arg1, 0x06))
                        {
                            If (LNotEqual (Arg0, 0xFFFF))
                            {
                                And (Arg0, 0xFF, Local0)
                                Or (Local0, One, GN2L)
                                ShiftRight (Arg0, 0x08, GN2H)
                            }
                            Else
                            {
                                Store (Zero, GN2H)
                                Store (Zero, GN2L)
                            }
                        }
                    }
                }

                Scope (\)
                {
                    Method (SLDM, 2, NotSerialized)
                    {
                    }
                }

                Scope (^^PCI0)
                {
                    Name (LUCD, Buffer (0x7D)
                    {
                        /* 0000 */    0x4C, 0x75, 0x63, 0x69, 0x64, 0x4C, 0x6F, 0x67, 
                        /* 0008 */    0x69, 0x78, 0x00, 0x68, 0x00, 0x01, 0x00, 0x01, 
                        /* 0010 */    0x00, 0x00, 0x00, 0x99, 0xCD, 0x35, 0x65, 0x37, 
                        /* 0018 */    0x35, 0x36, 0x66, 0x30, 0x31, 0x36, 0x30, 0x64, 
                        /* 0020 */    0x61, 0x36, 0x38, 0x31, 0x65, 0x32, 0x31, 0x61, 
                        /* 0028 */    0x65, 0x32, 0x64, 0x62, 0x38, 0x66, 0x39, 0x32, 
                        /* 0030 */    0x64, 0x31, 0x65, 0x64, 0x61, 0x63, 0x64, 0x38, 
                        /* 0038 */    0x31, 0x35, 0x65, 0x61, 0x34, 0x36, 0x32, 0x35, 
                        /* 0040 */    0x37, 0x62, 0x39, 0x36, 0x63, 0x37, 0x64, 0x61, 
                        /* 0048 */    0x30, 0x32, 0x31, 0x35, 0x30, 0x32, 0x61, 0x39, 
                        /* 0050 */    0x62, 0x35, 0x38, 0x37, 0x62, 0x30, 0x30, 0x30, 
                        /* 0058 */    0x30, 0x32, 0x36, 0x45, 0x42, 0x63, 0x65, 0x64, 
                        /* 0060 */    0x31, 0x36, 0x35, 0x31, 0x36, 0x33, 0x65, 0x35, 
                        /* 0068 */    0x31, 0x65, 0x30, 0x36, 0x65, 0x30, 0x31, 0x64, 
                        /* 0070 */    0x63, 0x34, 0x34, 0x63, 0x33, 0x35, 0x66, 0x65, 
                        /* 0078 */    0x61, 0x33, 0x65, 0x61, 0x66
                    })
                }

                Scope (\)
                {
                    OperationRegion (SCPP, SystemIO, 0xB2, One)
                    Field (SCPP, ByteAcc, NoLock, Preserve)
                    {
                        SMIP,   8
                    }
                }

                Method (^_INI, 0, NotSerialized)
                {
                    If (STRC (_OS, "Microsoft Windows"))
                    {
                        Store (0x56, SMIP)
                    }
                    Else
                    {
                        If (STRC (_OS, "Microsoft Windows NT"))
                        {
                            If (CondRefOf (\_OSI, Local0))
                            {
                                Store (Zero, Local2)
                                If (_OSI ("Windows 2001"))
                                {
                                    Store (Zero, OSFL)
                                    Store (0x59, Local1)
                                    Store (0x03, OSFX)
                                    Store (One, Local2)
                                }

                                If (_OSI ("Windows 2006"))
                                {
                                    Store (Zero, OSFL)
                                    Store (0x5B, Local1)
                                    Store (0x05, OSFX)
                                    Store (One, Local2)
                                }

                                If (_OSI ("Windows 2009"))
                                {
                                    Store (Zero, OSFL)
                                    Store (0x5D, Local1)
                                    Store (0x07, OSFX)
                                    Store (One, Local2)
                                }

                                If (LNotEqual (Local2, Zero))
                                {
                                    Store (Local1, SMIP)
                                }
                            }
                            Else
                            {
                                Store (0x58, SMIP)
                                Store (Zero, OSFL)
                            }
                        }
                        Else
                        {
                            If (CondRefOf (\_OSI, Local0))
                            {
                                If (_OSI ("Linux"))
                                {
                                    Store (One, LINX)
                                }

                                If (_OSI ("Darwin"))
                                {
                                    Store (One, AMAC)
                                }
                            }

                            Store (0x57, SMIP)
                            Store (0x02, OSFL)
                        }
                    }
                }

                Scope (\)
                {
                    Method (OSTP, 0, NotSerialized)
                    {
                        If (LEqual (OSFL, One))
                        {
                            Store (0x56, SMIP)
                        }

                        If (LEqual (OSFL, 0x02))
                        {
                            Store (0x57, SMIP)
                        }

                        If (LEqual (OSFL, Zero))
                        {
                            Store (0x58, Local1)
                            If (LGreaterEqual (OSFX, 0x03))
                            {
                                Store (0x59, Local1)
                                If (LEqual (OSFX, 0x05))
                                {
                                    Store (0x5B, Local1)
                                }

                                If (LEqual (OSFX, 0x07))
                                {
                                    Store (0x5D, Local1)
                                }
                            }

                            Store (Local1, SMIP)
                        }
                    }
                }

                Device (SYSR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, One)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0010,             // Range Minimum
                            0x0010,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0022,             // Range Minimum
                            0x0022,             // Range Maximum
                            0x01,               // Alignment
                            0x1E,               // Length
                            )
                        IO (Decode16,
                            0x0044,             // Range Minimum
                            0x0044,             // Range Maximum
                            0x01,               // Alignment
                            0x0A,               // Length
                            )
                        IO (Decode16,
                            0x0050,             // Range Minimum
                            0x0050,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0062,             // Range Minimum
                            0x0062,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0065,             // Range Minimum
                            0x0065,             // Range Maximum
                            0x01,               // Alignment
                            0x0B,               // Length
                            )
                        IO (Decode16,
                            0x0074,             // Range Minimum
                            0x0074,             // Range Maximum
                            0x01,               // Alignment
                            0x0C,               // Length
                            )
                        IO (Decode16,
                            0x0091,             // Range Minimum
                            0x0091,             // Range Maximum
                            0x01,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x00A2,             // Range Minimum
                            0x00A2,             // Range Maximum
                            0x01,               // Alignment
                            0x1E,               // Length
                            )
                        IO (Decode16,
                            0x00E0,             // Range Minimum
                            0x00E0,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x04D0,             // Range Minimum
                            0x04D0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0290,             // Range Minimum
                            0x0290,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0800,             // Range Minimum
                            0x0800,             // Range Maximum
                            0x01,               // Alignment
                            0x06,               // Length
                            )
                        IO (Decode16,
                            0x0290,             // Range Minimum
                            0x0290,             // Range Maximum
                            0x01,               // Alignment
                            0x05,               // Length
                            )
                        IO (Decode16,
                            0x0880,             // Range Minimum
                            0x0880,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                    })
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0020,             // Range Minimum
                            0x0020,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A0,             // Range Minimum
                            0x00A0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {2}
                    })
                }

                Device (DMA1)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        DMA (Compatibility, BusMaster, Transfer8, )
                            {4}
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0080,             // Range Minimum
                            0x0080,             // Range Maximum
                            0x01,               // Alignment
                            0x11,               // Length
                            )
                        IO (Decode16,
                            0x0094,             // Range Minimum
                            0x0094,             // Range Maximum
                            0x01,               // Alignment
                            0x0C,               // Length
                            )
                        IO (Decode16,
                            0x00C0,             // Range Minimum
                            0x00C0,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                    })
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (ATT5, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x00,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {0}
                    })
                    Name (ATT6, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x00,               // Alignment
                            0x04,               // Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSFX, 0x03))
                        {
                            If (HPTF)
                            {
                                Return (ATT6)
                            }
                            Else
                            {
                                Return (ATT5)
                            }
                        }
                        Else
                        {
                            Return (ATT5)
                        }
                    }
                }

                Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Name (ATT3, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {0}
                        IRQNoFlags ()
                            {8}
                        Memory32Fixed (ReadWrite,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            )
                    })
                    Name (ATT4, ResourceTemplate ()
                    {
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSFX, 0x03))
                        {
                            If (HPTF)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSFX, 0x03))
                        {
                            If (HPTF)
                            {
                                Return (ATT3)
                            }
                            Else
                            {
                                Return (ATT4)
                            }
                        }
                        Else
                        {
                            Return (ATT4)
                        }
                    }
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (ATT0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x00,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                    Name (ATT1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x00,               // Alignment
                            0x04,               // Length
                            )
                    })
                    Name (ATT2, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                    Name (ATT3, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSFX, 0x03))
                        {
                            If (HPTF)
                            {
                                Return (ATT1)
                            }
                            Else
                            {
                                Return (ATT0)
                            }
                        }
                        Else
                        {
                            If (LEqual (AMAC, One))
                            {
                                Return (ATT2)
                            }

                            Return (ATT0)
                        }
                    }
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0061,             // Range Minimum
                            0x0061,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                    })
                }

                Device (COPR)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x00F0,             // Range Minimum
                            0x00F0,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IRQNoFlags ()
                            {13}
                    })
                }

                Scope (\)
                {
                    OperationRegion (WIN1, SystemIO, 0x2E, 0x02)
                    Field (WIN1, ByteAcc, NoLock, Preserve)
                    {
                        INDP,   8, 
                        DATP,   8
                    }

                    OperationRegion (GPIO, SystemIO, 0x0800, 0x05)
                    Field (GPIO, ByteAcc, NoLock, Preserve)
                    {
                        GO01,   8, 
                        GO02,   8, 
                        GO03,   8, 
                        GO04,   8, 
                        GO05,   8
                    }

                    IndexField (INDP, DATP, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x02), 
                        CFG,    8, 
                                Offset (0x07), 
                        LDN,    8, 
                                Offset (0x20), 
                        IDHI,   8, 
                        IDLO,   8, 
                        POWC,   8, 
                                Offset (0x30), 
                        ACTR,   8, 
                                Offset (0x60), 
                        IOAH,   8, 
                        IOAL,   8, 
                        IO2H,   8, 
                        IO2L,   8, 
                                Offset (0x70), 
                        INTR,   8, 
                                Offset (0x72), 
                        INT1,   8, 
                                Offset (0x74), 
                        DMCH,   8, 
                                Offset (0xC0), 
                        GP40,   8, 
                                Offset (0xF0), 
                        OPT1,   8, 
                        OPT2,   8, 
                        OPT3,   8, 
                        OPT4,   8
                    }

                    Method (ENFG, 0, NotSerialized)
                    {
                        Store (0x87, INDP)
                        Store (One, INDP)
                        Store (0x55, INDP)
                        Store (0x55, INDP)
                    }

                    Method (EXFG, 0, NotSerialized)
                    {
                        Store (0x02, CFG)
                    }

                    Method (GSRG, 1, NotSerialized)
                    {
                        Store (Arg0, INDP)
                        Return (DATP)
                    }

                    Method (SSRG, 2, NotSerialized)
                    {
                        Store (Arg0, INDP)
                        Store (Arg1, DATP)
                    }
                }

                Device (FDC0)
                {
                    Name (_HID, EisaId ("PNP0700"))
                    Method (_STA, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (Zero, LDN)
                        If (ACTR)
                        {
                            EXFG ()
                            Return (0x0F)
                        }
                        Else
                        {
                            If (LOr (IOAH, IOAL))
                            {
                                EXFG ()
                                Return (0x0D)
                            }
                            Else
                            {
                                EXFG ()
                                Return (Zero)
                            }
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (Zero, LDN)
                        Store (Zero, ACTR)
                        SLDM (DMCH, 0x04)
                        EXFG ()
                        DISD (0x03)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x03F0,             // Range Minimum
                                0x03F0,             // Range Maximum
                                0x01,               // Alignment
                                0x06,               // Length
                                _Y01)
                            IO (Decode16,
                                0x03F7,             // Range Minimum
                                0x03F7,             // Range Maximum
                                0x01,               // Alignment
                                0x01,               // Length
                                )
                            IRQNoFlags ()
                                {6}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {2}
                        })
                        CreateByteField (BUF0, \_SB.PCI0.PX40.FDC0._CRS._Y01._MIN, IOLO)
                        CreateByteField (BUF0, 0x03, IOHI)
                        CreateByteField (BUF0, \_SB.PCI0.PX40.FDC0._CRS._Y01._MAX, IORL)
                        CreateByteField (BUF0, 0x05, IORH)
                        ENFG ()
                        EXFG ()
                        Return (BUF0)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03F0,             // Range Minimum
                                0x03F0,             // Range Maximum
                                0x01,               // Alignment
                                0x06,               // Length
                                )
                            IO (Decode16,
                                0x03F7,             // Range Minimum
                                0x03F7,             // Range Maximum
                                0x01,               // Alignment
                                0x01,               // Length
                                )
                            IRQNoFlags ()
                                {6}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {2}
                        }
                        EndDependentFn ()
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, IOLO)
                        CreateByteField (Arg0, 0x03, IOHI)
                        CreateWordField (Arg0, 0x02, IOAD)
                        CreateWordField (Arg0, 0x19, IRQW)
                        CreateByteField (Arg0, 0x1C, DMAV)
                        ENFG ()
                        Store (Zero, LDN)
                        Store (One, ACTR)
                        SLDM (DMCH, DMCH)
                        CKIO (IOAD, 0x03)
                        EXFG ()
                    }
                }

                Device (UAR1)
                {
                    Name (_HID, EisaId ("PNP0501"))
                    Name (_UID, One)
                    Method (_STA, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (One, LDN)
                        If (ACTR)
                        {
                            EXFG ()
                            Return (0x0F)
                        }
                        Else
                        {
                            If (LOr (IOAH, IOAL))
                            {
                                EXFG ()
                                Return (0x0D)
                            }
                            Else
                            {
                                EXFG ()
                                Return (Zero)
                            }
                        }

                        EXFG ()
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (One, LDN)
                        Store (Zero, ACTR)
                        EXFG ()
                        DISD (Zero)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF1, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0000,             // Range Minimum
                                0x0000,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                _Y02)
                            IRQNoFlags (_Y03)
                                {}
                        })
                        CreateByteField (BUF1, \_SB.PCI0.PX40.UAR1._CRS._Y02._MIN, IOLO)
                        CreateByteField (BUF1, 0x03, IOHI)
                        CreateByteField (BUF1, \_SB.PCI0.PX40.UAR1._CRS._Y02._MAX, IORL)
                        CreateByteField (BUF1, 0x05, IORH)
                        CreateWordField (BUF1, \_SB.PCI0.PX40.UAR1._CRS._Y03._INT, IRQW)
                        ENFG ()
                        Store (One, LDN)
                        Store (IOAL, IOLO)
                        Store (IOAL, IORL)
                        Store (IOAH, IOHI)
                        Store (IOAH, IORH)
                        Store (One, Local0)
                        ShiftLeft (Local0, INTR, IRQW)
                        EXFG ()
                        Return (BUF1)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03F8,             // Range Minimum
                                0x03F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,7,9,10,11,12}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x02F8,             // Range Minimum
                                0x02F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,7,9,10,11,12}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03E8,             // Range Minimum
                                0x03E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,7,9,10,11,12}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x02E8,             // Range Minimum
                                0x02E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,7,9,10,11,12}
                        }
                        EndDependentFn ()
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, IOLO)
                        CreateByteField (Arg0, 0x03, IOHI)
                        CreateWordField (Arg0, 0x02, IOAD)
                        CreateWordField (Arg0, 0x09, IRQW)
                        ENFG ()
                        Store (One, LDN)
                        Store (One, ACTR)
                        Store (IOLO, IOAL)
                        Store (IOHI, IOAH)
                        FindSetRightBit (IRQW, Local0)
                        Subtract (Local0, One, INTR)
                        EXFG ()
                        CKIO (IOAD, Zero)
                    }

                    Method (_PRW, 0, NotSerialized)
                    {
                        If (SUSF)
                        {
                            Return (Package (0x02)
                            {
                                0x08, 
                                0x03
                            })
                        }
                        Else
                        {
                            Return (Package (0x02)
                            {
                                0x08, 
                                One
                            })
                        }
                    }

                    Method (_PSW, 1, NotSerialized)
                    {
                        If (Arg0)
                        {
                            Or (G2C2, One, G2C2)
                        }
                        Else
                        {
                            And (G2C2, 0xFE, G2C2)
                        }
                    }
                }

                Device (LPT1)
                {
                    Name (_HID, EisaId ("PNP0400"))
                    Method (_STA, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (0x03, LDN)
                        And (OPT1, 0x02, Local0)
                        If (LNotEqual (Local0, 0x02))
                        {
                            If (ACTR)
                            {
                                EXFG ()
                                Return (0x0F)
                            }
                            Else
                            {
                                If (LOr (IOAH, IOAL))
                                {
                                    EXFG ()
                                    Return (0x0D)
                                }
                                Else
                                {
                                    EXFG ()
                                    Return (Zero)
                                }
                            }
                        }
                        Else
                        {
                            EXFG ()
                            Return (Zero)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (0x03, LDN)
                        Store (Zero, ACTR)
                        EXFG ()
                        DISD (0x02)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF5, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0000,             // Range Minimum
                                0x0000,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                _Y04)
                            IRQNoFlags (_Y05)
                                {}
                        })
                        CreateByteField (BUF5, \_SB.PCI0.PX40.LPT1._CRS._Y04._MIN, IOLO)
                        CreateByteField (BUF5, 0x03, IOHI)
                        CreateByteField (BUF5, \_SB.PCI0.PX40.LPT1._CRS._Y04._MAX, IORL)
                        CreateByteField (BUF5, 0x05, IORH)
                        CreateByteField (BUF5, \_SB.PCI0.PX40.LPT1._CRS._Y04._LEN, IOLE)
                        CreateWordField (BUF5, \_SB.PCI0.PX40.LPT1._CRS._Y05._INT, IRQW)
                        ENFG ()
                        Store (0x03, LDN)
                        Store (IOAL, IOLO)
                        Store (IOLO, IORL)
                        Store (IOAH, IOHI)
                        Store (IOHI, IORH)
                        If (LEqual (IOLO, 0xBC))
                        {
                            Store (0x04, IOLE)
                        }
                        Else
                        {
                            Store (0x08, IOLE)
                        }

                        Store (One, Local0)
                        Store (INTR, Local5)
                        ShiftLeft (Local0, Local5, IRQW)
                        EXFG ()
                        Return (BUF5)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x0378,             // Range Minimum
                                0x0378,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,7,9,10,11,12}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x0278,             // Range Minimum
                                0x0278,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,7,9,10,11,12}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03BC,             // Range Minimum
                                0x03BC,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,7,9,10,11,12}
                        }
                        EndDependentFn ()
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, IOLO)
                        CreateByteField (Arg0, 0x03, IOHI)
                        CreateWordField (Arg0, 0x02, IOAD)
                        CreateByteField (Arg0, 0x04, IORL)
                        CreateByteField (Arg0, 0x05, IORH)
                        CreateWordField (Arg0, 0x09, IRQW)
                        ENFG ()
                        Store (0x03, LDN)
                        Store (One, ACTR)
                        Store (IOLO, IOAL)
                        Store (IOHI, IOAH)
                        FindSetLeftBit (IRQW, Local0)
                        Subtract (Local0, One, Local0)
                        Store (Local0, INTR)
                        EXFG ()
                        CKIO (IOAD, 0x02)
                    }
                }

                Device (ECP1)
                {
                    Name (_HID, EisaId ("PNP0401"))
                    Method (_STA, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (0x03, LDN)
                        And (OPT1, 0x02, Local0)
                        If (LEqual (Local0, 0x02))
                        {
                            If (ACTR)
                            {
                                EXFG ()
                                Return (0x0F)
                            }
                            Else
                            {
                                If (LOr (IOAH, IOAL))
                                {
                                    EXFG ()
                                    Return (0x0D)
                                }
                                Else
                                {
                                    EXFG ()
                                    Return (Zero)
                                }
                            }
                        }
                        Else
                        {
                            EXFG ()
                            Return (Zero)
                        }
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (0x03, LDN)
                        Store (Zero, ACTR)
                        SLDM (DMCH, 0x04)
                        EXFG ()
                        DISD (0x02)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF6, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0000,             // Range Minimum
                                0x0000,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                _Y06)
                            IO (Decode16,
                                0x0000,             // Range Minimum
                                0x0000,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                _Y07)
                            IRQNoFlags (_Y08)
                                {}
                            DMA (Compatibility, NotBusMaster, Transfer8, _Y09)
                                {}
                        })
                        CreateByteField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y06._MIN, IOLO)
                        CreateByteField (BUF6, 0x03, IOHI)
                        CreateByteField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y06._MAX, IORL)
                        CreateByteField (BUF6, 0x05, IORH)
                        CreateByteField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y06._LEN, IOLE)
                        CreateByteField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y07._MIN, IOEL)
                        CreateByteField (BUF6, 0x0B, IOEH)
                        CreateByteField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y07._MAX, IOML)
                        CreateByteField (BUF6, 0x0D, IOMH)
                        CreateWordField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y08._INT, IRQW)
                        CreateByteField (BUF6, \_SB.PCI0.PX40.ECP1._CRS._Y09._DMA, DMAC)
                        ENFG ()
                        Store (0x03, LDN)
                        Store (IOAL, Local2)
                        Store (Local2, IOLO)
                        Store (IOAH, Local3)
                        Store (Local3, IOHI)
                        Or (Local3, 0x04, Local3)
                        Store (Local3, IOEH)
                        Store (Local3, IOMH)
                        Store (IOLO, IORL)
                        Store (IOLO, IOEL)
                        Store (IOLO, IOML)
                        Store (IOHI, IORH)
                        If (LEqual (IOLO, 0xBC))
                        {
                            Store (0x04, IOLE)
                        }
                        Else
                        {
                            Store (0x08, IOLE)
                        }

                        Store (One, Local0)
                        Store (INTR, Local5)
                        ShiftLeft (Local0, Local5, IRQW)
                        Store (One, Local0)
                        Store (DMCH, Local5)
                        ShiftLeft (Local0, Local5, DMAC)
                        EXFG ()
                        Return (BUF6)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x0378,             // Range Minimum
                                0x0378,             // Range Maximum
                                0x00,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0778,             // Range Minimum
                                0x0778,             // Range Maximum
                                0x00,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,7,9,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {0,1,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x0278,             // Range Minimum
                                0x0278,             // Range Maximum
                                0x00,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0678,             // Range Minimum
                                0x0678,             // Range Maximum
                                0x00,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,7,9,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {0,1,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03BC,             // Range Minimum
                                0x03BC,             // Range Maximum
                                0x00,               // Alignment
                                0x04,               // Length
                                )
                            IO (Decode16,
                                0x07BC,             // Range Minimum
                                0x07BC,             // Range Maximum
                                0x00,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,7,9,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {0,1,3}
                        }
                        EndDependentFn ()
                    })
                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, IOLO)
                        CreateByteField (Arg0, 0x03, IOHI)
                        CreateWordField (Arg0, 0x02, IOAD)
                        CreateWordField (Arg0, 0x11, IRQW)
                        CreateByteField (Arg0, 0x14, DMAC)
                        ENFG ()
                        Store (0x03, LDN)
                        Store (One, ACTR)
                        Store (IOLO, IOAL)
                        Store (IOHI, IOAH)
                        FindSetLeftBit (IRQW, Local0)
                        Subtract (Local0, One, Local0)
                        Store (Local0, INTR)
                        FindSetLeftBit (DMAC, Local1)
                        Store (DMCH, Local0)
                        Subtract (Local1, One, DMCH)
                        SLDM (Local0, DMCH)
                        EXFG ()
                        CKIO (IOAD, 0x02)
                    }
                }

                OperationRegion (KBCT, SystemIO, 0x60, 0x05)
                Field (KBCT, ByteAcc, NoLock, Preserve)
                {
                    P060,   8, 
                            Offset (0x04), 
                    P064,   8
                }

                Device (PS2M)
                {
                    Name (_HID, EisaId ("PNP0F13"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (PS2F, Zero))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF1, ResourceTemplate ()
                        {
                            IRQNoFlags ()
                                {12}
                        })
                        Name (BUF2, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0060,             // Range Minimum
                                0x0060,             // Range Maximum
                                0x01,               // Alignment
                                0x01,               // Length
                                )
                            IO (Decode16,
                                0x0064,             // Range Minimum
                                0x0064,             // Range Maximum
                                0x01,               // Alignment
                                0x01,               // Length
                                )
                            IRQNoFlags ()
                                {12}
                        })
                        If (LEqual (KBDI, One))
                        {
                            If (LEqual (OSFL, 0x02))
                            {
                                Return (BUF1)
                            }

                            If (LEqual (OSFL, One))
                            {
                                Return (BUF1)
                            }
                            Else
                            {
                                Return (BUF2)
                            }
                        }
                        Else
                        {
                            Return (BUF1)
                        }
                    }
                }

                Device (PS2K)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (KBDI, One))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            Return (0x0F)
                        }
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {1}
                    })
                }

                Device (PSMR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x03)
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (KBDI, Zero))
                        {
                            Return (Zero)
                        }

                        If (LEqual (PS2F, Zero))
                        {
                            If (LEqual (OSFL, 0x02))
                            {
                                Return (0x0F)
                            }

                            If (LEqual (OSFL, One))
                            {
                                Return (0x0F)
                            }

                            Return (Zero)
                        }

                        Return (Zero)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                    })
                }

                Scope (\_SB.PCI0.PX40)
                {
                    OperationRegion (CCCC, SystemMemory, 0x000FE2BC, 0x05)
                    Field (CCCC, ByteAcc, NoLock, Preserve)
                    {
                        PPRQ,   8, 
                        PPLO,   8, 
                        PPRP,   8, 
                        PPOR,   8, 
                        TPRS,   8
                    }

                    OperationRegion (CMO2, SystemIO, 0x72, 0x73)
                    Field (CMO2, ByteAcc, NoLock, Preserve)
                    {
                        IND2,   8, 
                        DAT2,   8
                    }

                    IndexField (IND2, DAT2, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0xA7), 
                        PRQC,   4
                    }

                    OperationRegion (TPMI, SystemMemory, 0x000FFFEA, One)
                    Field (TPMI, ByteAcc, NoLock, Preserve)
                    {
                            ,   3, 
                        TPME,   1
                    }

                    Device (TPM)
                    {
                        Name (_HID, EisaId ("IFX0102"))
                        Name (_CID, EisaId ("PNP0C31"))
                        Method (_STA, 0, NotSerialized)
                        {
                            If (TPME)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Name (_CRS, ResourceTemplate ()
                        {
                            Memory32Fixed (ReadWrite,
                                0xFED40000,         // Address Base
                                0x00005000,         // Address Length
                                )
                            IO (Decode16,
                                0x004E,             // Range Minimum
                                0x004E,             // Range Maximum
                                0x01,               // Alignment
                                0x02,               // Length
                                )
                            IO (Decode16,
                                0x4700,             // Range Minimum
                                0x4700,             // Range Maximum
                                0x01,               // Alignment
                                0x0C,               // Length
                                )
                        })
                        Method (UCMP, 2, NotSerialized)
                        {
                            If (LNotEqual (0x10, SizeOf (Arg0)))
                            {
                                Return (Zero)
                            }

                            If (LNotEqual (0x10, SizeOf (Arg1)))
                            {
                                Return (Zero)
                            }

                            Store (Zero, Local0)
                            While (LLess (Local0, 0x10))
                            {
                                If (LNotEqual (DerefOf (Index (Arg0, Local0)), DerefOf (Index (
                                    Arg1, Local0))))
                                {
                                    Return (Zero)
                                }

                                Increment (Local0)
                            }

                            Return (One)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (UCMP (Arg0, Buffer (0x10)
                                        {
                                            /* 0000 */    0xA6, 0xFA, 0xDD, 0x3D, 0x1B, 0x36, 0xB4, 0x4E, 
                                            /* 0008 */    0xA4, 0x24, 0x8D, 0x10, 0x08, 0x9D, 0x16, 0x53
                                        }), One))
                            {
                                If (LEqual (Arg2, Zero))
                                {
                                    Return (Buffer (One)
                                    {
                                        0x7F
                                    })
                                }

                                If (LEqual (Arg2, One))
                                {
                                    If (LEqual (SizeOf (Arg3), Zero))
                                    {
                                        Return (Buffer (0x04)
                                        {
                                            "1.0"
                                        })
                                    }

                                    Return (One)
                                }

                                If (LEqual (Arg2, 0x02))
                                {
                                    If (LNotEqual (TPRS, Zero))
                                    {
                                        If (LEqual (DerefOf (Index (Arg3, Zero)), Zero))
                                        {
                                            Store (0xF0, SCP)
                                            Store (Zero, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), One))
                                        {
                                            Store (0xF0, SCP)
                                            Store (One, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x02))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x02, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x03))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x03, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x04))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x04, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x05))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x05, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x06))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x06, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x07))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x07, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x08))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x08, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x09))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x09, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x0A))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x0A, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x0B))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x0B, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x0C))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x0C, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (One)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x0D))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x0D, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (One)
                                        }

                                        If (LEqual (DerefOf (Index (Arg3, Zero)), 0x0E))
                                        {
                                            Store (0xF0, SCP)
                                            Store (0x0E, PPRQ)
                                            Store (0xF1, SCP)
                                            Return (Zero)
                                        }

                                        Return (One)
                                    }

                                    Return (One)
                                }

                                If (LEqual (Arg2, 0x03))
                                {
                                    Name (TMP1, Package (0x02)
                                    {
                                        Zero, 
                                        Ones
                                    })
                                    Store (PPRQ, Index (TMP1, One))
                                    Return (TMP1)
                                }

                                If (LEqual (Arg2, 0x04))
                                {
                                    Return (One)
                                }

                                If (LEqual (Arg2, 0x05))
                                {
                                    Name (TMP2, Package (0x03)
                                    {
                                        Zero, 
                                        Ones, 
                                        Ones
                                    })
                                    Store (PPLO, Index (TMP2, One))
                                    If (LOr (LOr (LGreater (PPLO, 0x0E), LEqual (PPLO, 0x0C)), LEqual (
                                        PPLO, 0x0D)))
                                    {
                                        Store (0xFFFFFFF1, Index (TMP2, 0x02))
                                        Return (TMP2)
                                    }

                                    If (LEqual (PPRP, 0xFF))
                                    {
                                        Store (0xFFFFFFF1, Index (TMP2, 0x02))
                                        Return (TMP2)
                                    }

                                    If (PPOR)
                                    {
                                        Store (0xFFFFFFF0, Index (TMP2, 0x02))
                                        Return (TMP2)
                                    }

                                    Store (PPRP, Index (TMP2, 0x02))
                                    Return (TMP2)
                                }

                                If (LEqual (Arg2, 0x06))
                                {
                                    CreateByteField (Arg3, 0x04, LAN0)
                                    CreateByteField (Arg3, 0x05, LAN1)
                                    If (LOr (LEqual (LAN0, 0x65), LEqual (LAN0, 0x45)))
                                    {
                                        If (LOr (LEqual (LAN1, 0x6E), LEqual (LAN1, 0x4E)))
                                        {
                                            Return (Zero)
                                        }
                                    }

                                    Return (One)
                                }

                                Return (One)
                            }

                            Return (Buffer (One)
                            {
                                0x00
                            })
                        }
                    }
                }

                Device (PMIO)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x02)
                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BUF0, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0400,             // Range Minimum
                                0x0400,             // Range Maximum
                                0x01,               // Alignment
                                0xD0,               // Length
                                )
                            IO (Decode16,
                                0x04D2,             // Range Minimum
                                0x04D2,             // Range Maximum
                                0x01,               // Alignment
                                0x2E,               // Length
                                )
                        })
                        Return (BUF0)
                    }
                }

                OperationRegion (CDPR, SystemIO, 0x1800, 0x01FF)
                Field (CDPR, ByteAcc, NoLock, Preserve)
                {
                    BCLK,   8, 
                            Offset (0x10), 
                    VCC1,   8, 
                            Offset (0x12), 
                    VDDI,   8, 
                            Offset (0x14), 
                    VTTC,   8, 
                            Offset (0x16), 
                    V15C,   8, 
                            Offset (0x18), 
                    V18C,   8, 
                            Offset (0x1A), 
                    VSAC,   8, 
                            Offset (0x1C), 
                    AXGC,   8, 
                            Offset (0x1E), 
                    VIDC,   8, 
                            Offset (0x20), 
                            Offset (0xC0), 
                    VCCB,   32, 
                    VCCS,   16, 
                            Offset (0xC8), 
                    VDDB,   32, 
                    VDDS,   16, 
                            Offset (0xD0), 
                    VTTB,   32, 
                    VTTS,   16, 
                            Offset (0xD8), 
                    V15B,   32, 
                    V15S,   16, 
                            Offset (0xE0), 
                    V18B,   32, 
                    V18S,   16, 
                            Offset (0xE8), 
                    VSAB,   32, 
                    VSAS,   16, 
                            Offset (0xF0), 
                    AXGB,   32, 
                    AXGS,   16, 
                            Offset (0xF8), 
                    VIDB,   32, 
                    VIDS,   16, 
                            Offset (0x100), 
                            Offset (0x1C0), 
                    CTMP,   8, 
                            Offset (0x1C3)
                }

                Device (PTMD)
                {
                    Name (_HID, EisaId ("ICD0001"))
                    Name (_CID, EisaId ("PNP0C02"))
                    Name (IVER, 0x10000001)
                    Name (_STA, 0xFF)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x1000,             // Range Minimum
                            0x1000,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                        IO (Decode16,
                            0x1080,             // Range Minimum
                            0x1080,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                        IO (Decode16,
                            0x1100,             // Range Minimum
                            0x1100,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                        IO (Decode16,
                            0x1180,             // Range Minimum
                            0x1180,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                    })
                    Name (TMPV, Package (0x04)
                    {
                        One, 
                        0x02, 
                        Zero, 
                        Zero
                    })
                    Name (VLTV, Package (0x10)
                    {
                        0x09, 
                        0x05, 
                        Zero, 
                        Zero, 
                        0x0E, 
                        0x06, 
                        Zero, 
                        Zero, 
                        0x13, 
                        0x07, 
                        Zero, 
                        Zero, 
                        0x11, 
                        0x08, 
                        Zero, 
                        Zero
                    })
                    Name (RPMV, Package (0x00) {})
                    Name (RDVL, Package (0x02)
                    {
                        Zero, 
                        Zero
                    })
                    Method (CDRD, 2, Serialized)
                    {
                        While (One)
                        {
                            Name (_T_0, Zero)
                            Store (Arg0, _T_0)
                            If (LEqual (_T_0, One))
                            {
                                While (One)
                                {
                                    Name (_T_1, Zero)
                                    Store (Arg1, _T_1)
                                    If (LEqual (_T_1, Zero))
                                    {
                                        Store (VCC1, Index (RDVL, One))
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_1, 0x04))
                                        {
                                            Store (VDDI, Index (RDVL, One))
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_1, 0x07))
                                            {
                                                Store (VSAC, Index (RDVL, One))
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_1, 0x08))
                                                {
                                                    Store (VIDC, Index (RDVL, One))
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_1, 0x09))
                                                    {
                                                        Store (V15C, Index (RDVL, One))
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_1, 0x0A))
                                                        {
                                                            Store (V18C, Index (RDVL, One))
                                                        }
                                                        Else
                                                        {
                                                            Store (One, Index (RDVL, Zero))
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }

                                    Break
                                }
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x02))
                                {
                                    While (One)
                                    {
                                        Name (_T_2, Zero)
                                        Store (Arg1, _T_2)
                                        If (LEqual (_T_2, Zero))
                                        {
                                            Store (BCLK, Index (RDVL, One))
                                        }
                                        Else
                                        {
                                            Store (One, Index (RDVL, Zero))
                                        }

                                        Break
                                    }
                                }
                                Else
                                {
                                    Store (One, Index (RDVL, Zero))
                                }
                            }

                            Break
                        }

                        Return (RDVL)
                    }

                    Method (CDWR, 3, Serialized)
                    {
                        While (One)
                        {
                            Name (_T_0, Zero)
                            Store (Arg0, _T_0)
                            If (LEqual (_T_0, One))
                            {
                                While (One)
                                {
                                    Name (_T_1, Zero)
                                    Store (Arg1, _T_1)
                                    If (LEqual (_T_1, Zero))
                                    {
                                        Store (Arg2, DBG1)
                                        Store (Arg2, VCC1)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_1, 0x04))
                                        {
                                            Store (Arg2, DBG1)
                                            Store (Arg2, VDDI)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_1, 0x07))
                                            {
                                                Store (Arg2, DBG1)
                                                Store (Arg2, VSAC)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_1, 0x08))
                                                {
                                                    Store (Arg2, DBG1)
                                                    Store (Arg2, VIDC)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_1, 0x09))
                                                    {
                                                        Store (Arg2, DBG1)
                                                        Store (Arg2, V15C)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_1, 0x0A))
                                                        {
                                                            Store (Arg2, V18C)
                                                        }
                                                        Else
                                                        {
                                                            Return (One)
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }

                                    Break
                                }
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x02))
                                {
                                    While (One)
                                    {
                                        Name (_T_2, Zero)
                                        Store (Arg1, _T_2)
                                        If (LEqual (_T_2, Zero))
                                        {
                                            Store (Arg2, DBG1)
                                            Store (Arg2, BCLK)
                                        }
                                        Else
                                        {
                                            Return (One)
                                        }

                                        Break
                                    }
                                }
                                Else
                                {
                                    Return (One)
                                }
                            }

                            Break
                        }

                        Return (Zero)
                    }

                    Method (TSDD, 0, NotSerialized)
                    {
                        Name (TMPC, Zero)
                        Return (TMPV)
                    }

                    Method (VSDD, 0, NotSerialized)
                    {
                        Name (VLTC, Zero)
                        Return (VLTV)
                    }

                    Method (FSDD, 0, NotSerialized)
                    {
                        Name (RPMC, Zero)
                        Return (RPMV)
                    }

                    Method (SDSP, 0, NotSerialized)
                    {
                        Return (0x0A)
                    }
                }
            }

            Device (USBE)
            {
                Name (_ADR, 0x001D0000)
                Device (RHUB)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            Zero, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x10)
                        {
                            0x81, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero, 
                            0x30, 
                            0x1C, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero
                        })
                    }
                }

                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }

                    Return (0x03)
                }

                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
            }

            Device (USE2)
            {
                Name (_ADR, 0x001A0000)
                Device (RHUB)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                        Name (_UPC, Package (0x04)
                        {
                            0xFF, 
                            Zero, 
                            Zero, 
                            Zero
                        })
                        Name (_PLD, Package (0x10)
                        {
                            0x81, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero, 
                            0x30, 
                            0x1C, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero, 
                            Zero
                        })
                    }
                }

                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }

                    Return (0x03)
                }

                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
            }

            Device (IDE1)
            {
                Name (_ADR, 0x001F0002)
                OperationRegion (PCI, PCI_Config, 0x40, 0x20)
                Field (PCI, DWordAcc, NoLock, Preserve)
                {
                    ITM0,   16, 
                    ITM1,   16, 
                    SIT0,   4, 
                    SIT1,   4, 
                            Offset (0x08), 
                    UDC0,   2, 
                    UDC1,   2, 
                            Offset (0x0A), 
                    UDT0,   8, 
                    UDT1,   8, 
                            Offset (0x14), 
                    ICF0,   2, 
                    ICF1,   2, 
                        ,   6, 
                    WPPE,   1, 
                        ,   1, 
                    FAS0,   2, 
                    FAS1,   2
                }

                Device (PRIM)
                {
                    Name (_ADR, Zero)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store (GTM (ITM0, SIT0, UDC0, UDT0, ICF0, FAS0), Local0)
                        Return (Local0)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (STM (Arg0, Arg1, Arg2), Local0)
                        CreateDWordField (Local0, Zero, ITM)
                        CreateDWordField (Local0, 0x04, SIT)
                        CreateDWordField (Local0, 0x08, UDC)
                        CreateDWordField (Local0, 0x0C, UDT)
                        CreateDWordField (Local0, 0x10, ICF)
                        CreateDWordField (Local0, 0x14, FAS)
                        Store (UDC, UDC0)
                        Store (UDT, UDT0)
                        Store (ICF, ICF0)
                        Store (FAS, FAS0)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, Zero)
                        Name (H15F, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (GTF0 (ITM0, SIT0, UDC0, UDT0, ICF0, H15F, FAS0), Local0)
                            Return (Local0)
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, One)
                        Name (H15F, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (GTF1 (ITM0, SIT0, UDC0, UDT0, ICF0, H15F, FAS0), Local0)
                            Return (Local0)
                        }
                    }
                }

                Device (SECD)
                {
                    Name (_ADR, One)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store (GTM (ITM1, SIT1, UDC1, UDT1, ICF1, FAS1), Local0)
                        Return (Local0)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (STM (Arg0, Arg1, Arg2), Local0)
                        CreateDWordField (Local0, Zero, ITM)
                        CreateDWordField (Local0, 0x04, SIT)
                        CreateDWordField (Local0, 0x08, UDC)
                        CreateDWordField (Local0, 0x0C, UDT)
                        CreateDWordField (Local0, 0x10, ICF)
                        CreateDWordField (Local0, 0x14, FAS)
                        Store (UDC, UDC1)
                        Store (UDT, UDT1)
                        Store (ICF, ICF1)
                        Store (FAS, FAS1)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, Zero)
                        Name (H15F, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (GTF0 (ITM1, SIT1, UDC1, UDT1, ICF1, H15F, FAS1), Local0)
                            Return (Local0)
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, One)
                        Name (H15F, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (GTF1 (ITM1, SIT1, UDC1, UDT1, ICF1, H15F, FAS1), Local0)
                            Return (Local0)
                        }
                    }
                }
            }

            Device (IDE2)
            {
                Name (_ADR, 0x001F0005)
                OperationRegion (PCI, PCI_Config, 0x40, 0x20)
                Field (PCI, DWordAcc, NoLock, Preserve)
                {
                    ITM0,   16, 
                    ITM1,   16, 
                    SIT0,   4, 
                    SIT1,   4, 
                            Offset (0x08), 
                    UDC0,   1, 
                        ,   1, 
                    UDC1,   1, 
                            Offset (0x0A), 
                    UDT0,   8, 
                    UDT1,   8, 
                            Offset (0x14), 
                    ICF0,   2, 
                    ICF1,   2, 
                        ,   6, 
                    WPPE,   1, 
                        ,   1, 
                    FAS0,   2, 
                    FAS1,   2
                }

                Device (PRIM)
                {
                    Name (_ADR, Zero)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store (GTM (ITM0, SIT0, UDC0, UDT0, ICF0, FAS0), Local0)
                        Return (Local0)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (STM (Arg0, Arg1, Arg2), Local0)
                        CreateDWordField (Local0, Zero, ITM)
                        CreateDWordField (Local0, 0x04, SIT)
                        CreateDWordField (Local0, 0x08, UDC)
                        CreateDWordField (Local0, 0x0C, UDT)
                        CreateDWordField (Local0, 0x10, ICF)
                        CreateDWordField (Local0, 0x14, FAS)
                        Store (UDC, UDC0)
                        Store (UDT, UDT0)
                        Store (ICF, ICF0)
                        Store (FAS, FAS0)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, Zero)
                        Name (H15F, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (GTF0 (ITM0, SIT0, UDC0, UDT0, ICF0, H15F, FAS0), Local0)
                            Return (Local0)
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, One)
                        Name (H15F, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (GTF1 (ITM0, SIT0, UDC0, UDT0, ICF0, H15F, FAS0), Local0)
                            Return (Local0)
                        }
                    }
                }

                Device (SECD)
                {
                    Name (_ADR, One)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store (GTM (ITM1, SIT1, UDC1, UDT1, ICF1, FAS1), Local0)
                        Return (Local0)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (STM (Arg0, Arg1, Arg2), Local0)
                        CreateDWordField (Local0, Zero, ITM)
                        CreateDWordField (Local0, 0x04, SIT)
                        CreateDWordField (Local0, 0x08, UDC)
                        CreateDWordField (Local0, 0x0C, UDT)
                        CreateDWordField (Local0, 0x10, ICF)
                        CreateDWordField (Local0, 0x14, FAS)
                        Store (UDC, UDC1)
                        Store (UDT, UDT1)
                        Store (ICF, ICF1)
                        Store (FAS, FAS1)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, Zero)
                        Name (H15F, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (GTF0 (ITM1, SIT1, UDC1, UDT1, ICF1, H15F, FAS1), Local0)
                            Return (Local0)
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, One)
                        Name (H15F, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (GTF1 (ITM1, SIT1, UDC1, UDT1, ICF1, H15F, FAS1), Local0)
                            Return (Local0)
                        }
                    }
                }
            }

            Method (GTM, 6, NotSerialized)
            {
                Store (Buffer (0x14) {}, Local0)
                CreateDWordField (Local0, Zero, PIO0)
                CreateDWordField (Local0, 0x04, DMA0)
                CreateDWordField (Local0, 0x08, PIO1)
                CreateDWordField (Local0, 0x0C, DMA1)
                CreateDWordField (Local0, 0x10, FLAG)
                Store (0x10, FLAG)
                If (LOr (And (Arg0, 0x08), LNot (And (Arg0, One
                    ))))
                {
                    Store (0x0384, PIO0)
                }
                Else
                {
                    Add (ShiftRight (And (Arg0, 0x0300), 0x08), ShiftRight (And (
                        Arg0, 0x3000), 0x0C), Local1)
                    Multiply (Subtract (0x09, Local1), 0x1E, PIO0)
                }

                If (LOr (LAnd (Arg0, 0x4000), LAnd (Arg2, One)))
                {
                    If (LOr (And (Arg0, 0x80), LNot (And (Arg0, 0x10
                        ))))
                    {
                        Store (0x0384, PIO1)
                    }
                    Else
                    {
                        Add (And (Arg1, 0x03), ShiftRight (And (Arg1, 0x0C), 
                            0x02), Local1)
                        Multiply (Subtract (0x09, Local1), 0x1E, PIO1)
                    }
                }
                Else
                {
                    Store (PIO0, PIO1)
                }

                If (And (Arg2, One))
                {
                    Subtract (0x04, And (Arg3, 0x03), Local1)
                    If (And (Arg5, One))
                    {
                        Store (0x14, DMA0)
                    }
                    Else
                    {
                        If (And (Arg4, One))
                        {
                            Multiply (Local1, 0x0F, DMA0)
                        }
                        Else
                        {
                            Multiply (Local1, 0x1E, DMA0)
                        }
                    }
                }
                Else
                {
                    Store (PIO0, DMA0)
                }

                If (LOr (LAnd (Arg0, 0x4000), LAnd (Arg2, One)))
                {
                    If (And (Arg2, 0x02))
                    {
                        Subtract (0x04, ShiftRight (And (Arg3, 0x30), 0x04), Local1)
                        If (And (Arg5, 0x02))
                        {
                            Store (0x14, DMA1)
                        }
                        Else
                        {
                            If (And (Arg4, 0x02))
                            {
                                Multiply (Local1, 0x0F, DMA1)
                            }
                            Else
                            {
                                Multiply (Local1, 0x1E, DMA1)
                            }
                        }
                    }
                    Else
                    {
                        Store (PIO1, DMA1)
                    }
                }
                Else
                {
                    Store (DMA0, DMA1)
                }

                Store (Zero, FLAG)
                If (And (Arg0, One))
                {
                    Or (FLAG, 0x10, FLAG)
                }

                If (And (Arg2, One))
                {
                    Or (FLAG, One, FLAG)
                }

                If (And (Arg0, 0x02))
                {
                    Or (FLAG, 0x02, FLAG)
                }

                If (And (Arg2, 0x02))
                {
                    Or (FLAG, 0x04, FLAG)
                }

                If (And (Arg0, 0x20))
                {
                    Or (FLAG, 0x08, FLAG)
                }

                Return (Local0)
            }

            Method (STM, 3, NotSerialized)
            {
                Store (Buffer (0x18) {}, Local7)
                CreateDWordField (Local7, Zero, ITM)
                CreateDWordField (Local7, 0x04, SIT)
                CreateDWordField (Local7, 0x08, UDC)
                CreateDWordField (Local7, 0x0C, UDT)
                CreateDWordField (Local7, 0x10, ICF)
                CreateDWordField (Local7, 0x14, FAS)
                CreateDWordField (Arg0, Zero, PIO0)
                CreateDWordField (Arg0, 0x04, DMA0)
                CreateDWordField (Arg0, 0x08, PIO1)
                CreateDWordField (Arg0, 0x0C, DMA1)
                CreateDWordField (Arg0, 0x10, FLAG)
                Store (FLAG, Local4)
                Store (0x8000, Local0)
                If (And (Local4, 0x02))
                {
                    Or (Local0, 0x07, Local0)
                }

                If (And (Local4, 0x08))
                {
                    Or (Local0, 0x4000, Local0)
                    Or (Local0, 0x70, Local0)
                }

                If (LAnd (LLess (DMA0, PIO0), LNot (And (Local4, One))))
                {
                    Or (Local0, 0x08, Local0)
                }

                If (LAnd (LLess (DMA1, PIO1), LNot (And (Local4, 0x04))))
                {
                    Or (Local0, 0x80, Local0)
                }

                If (PIO0)
                {
                    If (LLess (PIO0, 0x0384))
                    {
                        Or (Local0, One, Local0)
                    }
                }

                If (PIO1)
                {
                    If (LLess (PIO1, 0x0384))
                    {
                        Or (Local0, 0x10, Local0)
                    }
                }

                If (And (Local4, One))
                {
                    Store (PIO0, Local1)
                }
                Else
                {
                    Store (DMA0, Local1)
                }

                If (Local1)
                {
                    If (LLessEqual (Local1, 0x78))
                    {
                        Or (Local0, 0x2300, Local0)
                    }
                    Else
                    {
                        If (LLessEqual (Local1, 0xB4))
                        {
                            Or (Local0, 0x2100, Local0)
                        }
                        Else
                        {
                            If (LLessEqual (Local1, 0xF0))
                            {
                                Or (Local0, 0x1000, Local0)
                            }
                        }
                    }
                }

                Store (Local0, ITM)
                Store (Zero, Local0)
                If (And (Local4, 0x04))
                {
                    Store (PIO1, Local1)
                }
                Else
                {
                    Store (DMA1, Local1)
                }

                If (Local1)
                {
                    If (LLessEqual (Local1, 0x78))
                    {
                        Store (0x0B, Local0)
                    }
                    Else
                    {
                        If (LLessEqual (Local1, 0xB4))
                        {
                            Store (0x09, Local0)
                        }
                        Else
                        {
                            If (LLessEqual (Local1, 0xF0))
                            {
                                Store (0x04, Local0)
                            }
                        }
                    }
                }

                Store (Local0, SIT)
                Store (Zero, Local0)
                If (And (Local4, One))
                {
                    Or (Local0, One, Local0)
                }

                If (And (Local4, 0x04))
                {
                    Or (Local0, 0x02, Local0)
                }

                Store (Local0, UDC)
                Store (Zero, Local0)
                If (And (Local4, One))
                {
                    If (LEqual (DMA0, 0x14))
                    {
                        Store (One, Local0)
                    }
                    Else
                    {
                        If (LLess (DMA0, 0x3C))
                        {
                            Divide (DMA0, 0x0F, , Local1)
                        }
                        Else
                        {
                            Divide (DMA0, 0x1E, , Local1)
                        }

                        Subtract (0x04, Local1, Local0)
                    }
                }

                If (And (Local4, 0x04))
                {
                    If (LEqual (DMA1, 0x14))
                    {
                        Store (One, Local1)
                    }
                    Else
                    {
                        If (LLess (DMA1, 0x3C))
                        {
                            Divide (DMA1, 0x0F, , Local1)
                        }
                        Else
                        {
                            Divide (DMA1, 0x1E, , Local1)
                        }

                        Subtract (0x04, Local1, Local1)
                    }

                    ShiftLeft (Local1, 0x04, Local1)
                    Or (Local0, Local1, Local0)
                }

                Store (Local0, UDT)
                Store (Zero, Local0)
                If (DMA0)
                {
                    If (LGreater (DMA0, 0x14))
                    {
                        If (LLess (DMA0, 0x3C))
                        {
                            Or (Local0, One, Local0)
                        }
                    }
                }

                If (DMA1)
                {
                    If (LGreater (DMA1, 0x14))
                    {
                        If (LLess (DMA1, 0x3C))
                        {
                            Or (Local0, 0x02, Local0)
                        }
                    }
                }

                Store (Local0, ICF)
                Store (Zero, Local0)
                If (LEqual (DMA0, 0x14))
                {
                    Or (Local0, One, Local0)
                }

                If (LEqual (DMA1, 0x14))
                {
                    Or (Local0, 0x02, Local0)
                }

                Store (Local0, FAS)
                Return (Local7)
            }

            Method (H15P, 1, NotSerialized)
            {
                Name (BUFF, Buffer (0x08)
                {
                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Store (Arg0, Local0)
                Store (BUFF, Local1)
                Concatenate (Local0, Local1, Local7)
                CreateWordField (Local7, 0x02, CYL)
                CreateWordField (Local7, 0x06, HEAD)
                CreateWordField (Local7, 0x0C, SPT)
                If (LAnd (LGreaterEqual (HEAD, 0x10), LGreaterEqual (CYL, 0x2000)))
                {
                    Return (SPT)
                }
                Else
                {
                    Return (Zero)
                }
            }

            Method (GTF0, 7, NotSerialized)
            {
                Store (Buffer (0x07)
                    {
                        0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                    }, Local7)
                CreateByteField (Local7, One, MODE)
                If (And (Arg2, One))
                {
                    And (Arg3, 0x03, Local0)
                    If (And (Arg6, One))
                    {
                        Add (Local0, 0x04, Local0)
                    }
                    Else
                    {
                        If (And (Arg4, One))
                        {
                            Add (Local0, 0x02, Local0)
                        }
                    }

                    Or (Local0, 0x40, MODE)
                }
                Else
                {
                    Add (ShiftRight (And (Arg0, 0x0300), 0x08), ShiftRight (And (
                        Arg0, 0x3000), 0x0C), Local0)
                    If (LGreaterEqual (Local0, 0x05))
                    {
                        Store (0x22, MODE)
                    }
                    Else
                    {
                        If (LGreaterEqual (Local0, 0x03))
                        {
                            Store (0x21, MODE)
                        }
                        Else
                        {
                            Store (0x20, MODE)
                        }
                    }
                }

                Concatenate (Local7, Local7, Local6)
                If (LOr (And (Arg0, 0x08), LNot (And (Arg0, One
                    ))))
                {
                    If (And (Arg0, 0x02))
                    {
                        Store (Zero, MODE)
                    }
                    Else
                    {
                        Store (One, MODE)
                    }
                }
                Else
                {
                    Add (ShiftRight (And (Arg0, 0x0300), 0x08), ShiftRight (And (
                        Arg0, 0x3000), 0x0C), Local0)
                    If (LGreaterEqual (Local0, 0x05))
                    {
                        Store (0x0C, MODE)
                    }
                    Else
                    {
                        If (LGreaterEqual (Local0, 0x03))
                        {
                            Store (0x0B, MODE)
                        }
                        Else
                        {
                            Store (0x0A, MODE)
                        }
                    }
                }

                Concatenate (Local6, Local7, Local5)
                If (Arg5)
                {
                    Store (Buffer (0x07)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0xAE, 0x91
                        }, Local4)
                    CreateByteField (Local4, One, SPT)
                    Store (Arg5, SPT)
                    Concatenate (Local5, Local4, Local6)
                    Return (Local6)
                }
                Else
                {
                    Return (Local5)
                }
            }

            Method (GTF1, 7, NotSerialized)
            {
                Store (Buffer (0x07)
                    {
                        0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                    }, Local7)
                CreateByteField (Local7, One, MODE)
                If (And (Arg2, 0x02))
                {
                    ShiftRight (And (Arg3, 0x30), 0x04, Local0)
                    If (And (Arg6, 0x02))
                    {
                        Add (Local0, 0x04, Local0)
                    }
                    Else
                    {
                        If (And (Arg4, 0x02))
                        {
                            Add (Local0, 0x02, Local0)
                        }
                    }

                    Or (Local0, 0x40, MODE)
                }
                Else
                {
                    Add (ShiftRight (And (Arg1, 0x03), 0x02), And (Arg1, 
                        0x0C), Local0)
                    If (LGreaterEqual (Local0, 0x05))
                    {
                        Store (0x22, MODE)
                    }
                    Else
                    {
                        If (LGreaterEqual (Local0, 0x03))
                        {
                            Store (0x21, MODE)
                        }
                        Else
                        {
                            Store (0x20, MODE)
                        }
                    }
                }

                Concatenate (Local7, Local7, Local6)
                If (LOr (And (Arg0, 0x80), LNot (And (Arg0, 0x10
                    ))))
                {
                    If (And (Arg0, 0x20))
                    {
                        Store (Zero, MODE)
                    }
                    Else
                    {
                        Store (One, MODE)
                    }
                }
                Else
                {
                    Add (ShiftRight (And (Arg1, 0x03), 0x02), And (Arg1, 
                        0x0C), Local0)
                    If (LGreaterEqual (Local0, 0x05))
                    {
                        Store (0x0C, MODE)
                    }
                    Else
                    {
                        If (LGreaterEqual (Local0, 0x03))
                        {
                            Store (0x0B, MODE)
                        }
                        Else
                        {
                            Store (0x0A, MODE)
                        }
                    }
                }

                Concatenate (Local6, Local7, Local5)
                If (Arg5)
                {
                    Store (Buffer (0x07)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x91
                        }, Local4)
                    CreateByteField (Local4, One, SPT)
                    Store (Arg5, SPT)
                    Concatenate (Local5, Local4, Local6)
                    Return (Local6)
                }
                Else
                {
                    Return (Local5)
                }
            }

            Device (PX43)
            {
                Name (_ADR, 0x001F0003)
                OperationRegion (PBAS, PCI_Config, 0x20, 0x02)
                Field (PBAS, ByteAcc, NoLock, Preserve)
                {
                    BAS0,   16
                }

                Method (SMBB, 0, NotSerialized)
                {
                    And (BAS0, 0xFFFE, Local0)
                    Return (Local0)
                }
            }

            Device (AZAL)
            {
                Name (_ADR, 0x001B0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x0D, 
                        0x05
                    })
                }
            }

            Name (BUFA, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared, )
                    {3,4,5,6,7,9,10,11,12,14,15}
            })
            Name (BUFB, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared, )
                    {}
            })
            CreateWordField (BUFB, One, IRQV)
            Device (LNKA)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, One)
                Method (_STA, 0, NotSerialized)
                {
                    And (PIRA, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }
                    Else
                    {
                        Return (0x0B)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (PIRA, 0x80, PIRA)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    And (PIRA, 0x0F, Local0)
                    ShiftLeft (One, Local0, IRQV)
                    Return (BUFB)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, One, IRQ1)
                    FindSetRightBit (IRQ1, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRA)
                }
            }

            Device (LNKB)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x02)
                Method (_STA, 0, NotSerialized)
                {
                    And (PIRB, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }
                    Else
                    {
                        Return (0x0B)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (PIRB, 0x80, PIRB)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    And (PIRB, 0x0F, Local0)
                    ShiftLeft (One, Local0, IRQV)
                    Return (BUFB)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, One, IRQ1)
                    FindSetRightBit (IRQ1, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRB)
                }
            }

            Device (LNKC)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x03)
                Method (_STA, 0, NotSerialized)
                {
                    And (PIRC, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }
                    Else
                    {
                        Return (0x0B)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (PIRC, 0x80, PIRC)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    And (PIRC, 0x0F, Local0)
                    ShiftLeft (One, Local0, IRQV)
                    Return (BUFB)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, One, IRQ1)
                    FindSetRightBit (IRQ1, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRC)
                }
            }

            Device (LNKD)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x04)
                Method (_STA, 0, NotSerialized)
                {
                    And (PIRD, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }
                    Else
                    {
                        Return (0x0B)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (PIRD, 0x80, PIRD)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    And (PIRD, 0x0F, Local0)
                    ShiftLeft (One, Local0, IRQV)
                    Return (BUFB)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, One, IRQ1)
                    FindSetRightBit (IRQ1, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRD)
                }
            }

            Device (LNKE)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x05)
                Method (_STA, 0, NotSerialized)
                {
                    And (PIRE, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }
                    Else
                    {
                        Return (0x0B)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (PIRE, 0x80, PIRE)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    And (PIRE, 0x0F, Local0)
                    ShiftLeft (One, Local0, IRQV)
                    Return (BUFB)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, One, IRQ1)
                    FindSetRightBit (IRQ1, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRE)
                }
            }

            Device (LNKF)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x06)
                Method (_STA, 0, NotSerialized)
                {
                    And (PIRF, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }
                    Else
                    {
                        Return (0x0B)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (PIRF, 0x80, PIRF)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    And (PIRF, 0x0F, Local0)
                    ShiftLeft (One, Local0, IRQV)
                    Return (BUFB)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, One, IRQ1)
                    FindSetRightBit (IRQ1, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRF)
                }
            }

            Device (LNK0)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x07)
                Method (_STA, 0, NotSerialized)
                {
                    And (PIRG, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }
                    Else
                    {
                        Return (0x0B)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (PIRG, 0x80, PIRG)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    And (PIRG, 0x0F, Local0)
                    ShiftLeft (One, Local0, IRQV)
                    Return (BUFB)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, One, IRQ1)
                    FindSetRightBit (IRQ1, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRG)
                }
            }

            Device (LNK1)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x08)
                Method (_STA, 0, NotSerialized)
                {
                    And (PIRH, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }
                    Else
                    {
                        Return (0x0B)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (PIRH, 0x80, PIRH)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    And (PIRH, 0x0F, Local0)
                    ShiftLeft (One, Local0, IRQV)
                    Return (BUFB)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, One, IRQ1)
                    FindSetRightBit (IRQ1, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRH)
                }
            }

            Method (_PRW, 0, NotSerialized)
            {
                Return (Package (0x02)
                {
                    0x0B, 
                    0x05
                })
            }

            Device (CWDT)
            {
                Name (_HID, EisaId ("INT3F0D"))
                Name (_CID, EisaId ("PNP0C02"))
                Name (BUF0, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x0454,             // Range Minimum
                        0x0454,             // Range Maximum
                        0x04,               // Alignment
                        0x04,               // Length
                        )
                })
                Method (_STA, 0, Serialized)
                {
                    Return (0x0F)
                }

                Method (_CRS, 0, Serialized)
                {
                    Return (BUF0)
                }
            }
        }

        Device (MEM)
        {
            Name (_HID, EisaId ("PNP0C01"))
            Method (_CRS, 0, NotSerialized)
            {
                Name (BUF0, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0x000F0000,         // Address Base
                        0x00004000,         // Address Length
                        _Y0B)
                    Memory32Fixed (ReadWrite,
                        0x000F4000,         // Address Base
                        0x00004000,         // Address Length
                        _Y0C)
                    Memory32Fixed (ReadWrite,
                        0x000F8000,         // Address Base
                        0x00004000,         // Address Length
                        _Y0D)
                    Memory32Fixed (ReadWrite,
                        0x000FC000,         // Address Base
                        0x00004000,         // Address Length
                        _Y0E)
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x00060000,         // Address Length
                        _Y0A)
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x000A0000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0x00100000,         // Address Base
                        0x00000000,         // Address Length
                        _Y11)
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x00000000,         // Address Length
                        _Y12)
                    Memory32Fixed (ReadWrite,
                        0xFEC00000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFED10000,         // Address Base
                        0x0000E000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFED20000,         // Address Base
                        0x00070000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFEE00000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFFB00000,         // Address Base
                        0x00080000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFFF00000,         // Address Base
                        0x00100000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0x000E0000,         // Address Base
                        0x00010000,         // Address Length
                        _Y0F)
                    Memory32Fixed (ReadWrite,
                        0x20000000,         // Address Base
                        0x00200000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0x40000000,         // Address Base
                        0x00100000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFFF00000,         // Address Base
                        0x00010000,         // Address Length
                        _Y10)
                })
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0A._BAS, ACMM)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0B._BAS, RMA1)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0B._LEN, RSS1)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0C._BAS, RMA2)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0C._LEN, RSS2)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0D._BAS, RMA3)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0D._LEN, RSS3)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0E._BAS, RMA4)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0E._LEN, RSS4)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0F._BAS, ERMA)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0F._LEN, ERMS)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y10._BAS, ISMB)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y10._LEN, ISMS)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y11._LEN, EXTM)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y12._BAS, USMA)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y12._LEN, USMS)
                Add (AMEM, 0x00060000, USMA)
                Add (USMS, 0x00020000, USMS)
                Subtract (AMEM, 0x00100000, EXTM)
                If (LNotEqual (ROM1, Zero))
                {
                    Store (RMA1, RMA2)
                    ShiftLeft (ROM1, 0x08, Local0)
                    Store (Local0, RMA1)
                    ShiftLeft (RMS1, 0x08, Local0)
                    Store (Local0, RSS1)
                    Store (0x8000, RSS2)
                }

                If (LNotEqual (ROM2, Zero))
                {
                    Store (RMA2, RMA3)
                    ShiftLeft (ROM2, 0x08, Local0)
                    Store (Local0, RMA2)
                    ShiftLeft (RMS2, 0x08, Local0)
                    Store (Local0, RSS2)
                    Store (0xC000, RSS3)
                }

                If (LNotEqual (ROM3, Zero))
                {
                    Store (RMA3, RMA4)
                    ShiftLeft (ROM3, 0x08, Local0)
                    Store (Local0, RMA3)
                    ShiftLeft (RMS3, 0x08, Local0)
                    Store (Local0, RSS3)
                    Store (0x00010000, RSS4)
                }

                Store (ERMA, Local1)
                If (LGreater (RMA1, 0x000D0000))
                {
                    If (LLess (RMA1, 0x000F0000))
                    {
                        Add (RMA1, RSS1, Local0)
                        If (LGreater (Local0, 0x000E0000))
                        {
                            If (LGreater (Local0, Local1))
                            {
                                Store (Local0, Local1)
                            }
                        }
                    }
                }

                If (LGreater (RMA2, 0x000D0000))
                {
                    If (LLess (RMA2, 0x000F0000))
                    {
                        Add (RMA2, RSS2, Local0)
                        If (LGreater (Local0, 0x000E0000))
                        {
                            If (LGreater (Local0, Local1))
                            {
                                Store (Local0, Local1)
                            }
                        }
                    }
                }

                If (LGreater (RMA3, 0x000D0000))
                {
                    If (LLess (RMA3, 0x000F0000))
                    {
                        Add (RMA3, RSS3, Local0)
                        If (LGreater (Local0, 0x000E0000))
                        {
                            If (LGreater (Local0, Local1))
                            {
                                Store (Local0, Local1)
                            }
                        }
                    }
                }

                If (LGreater (Local1, ERMA))
                {
                    Subtract (Local1, ERMA, Local0)
                    If (LLessEqual (Local0, 0x00010000))
                    {
                        Store (Local1, ERMA)
                        Subtract (0x00010000, Local0, ERMS)
                    }
                }

                Store (TSMB, ISMB)
                Subtract (TLUD, TSMB, ISMS)
                Store (AMEM, ACMM)
                Return (BUF0)
            }
        }

        Device (FWH)
        {
            Name (_HID, EisaId ("INT0800"))
            Method (_CRS, 0, NotSerialized)
            {
                Name (FWH0, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0xFFB80000,         // Address Base
                        0x00080000,         // Address Length
                        )
                })
                Return (FWH0)
            }
        }

        Device (PCI0.EXPL)
        {
            Name (_HID, EisaId ("PNP0C02"))
            Name (_UID, 0x04)
            Method (_CRS, 0, NotSerialized)
            {
                Name (BUF0, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0xF4000000,         // Address Base
                        0x04000000,         // Address Length
                        )
                })
                Return (BUF0)
            }
        }
    }
}

Edited by gils83

Share this post


Link to post
Share on other sites

--------------------------------

mise à jour du 06/06/2014

--------------------------------

 

l'injection des kexts à la volé fonctionne très bien sous OS X Yosemite 10.10 DP1, avec les dernières versions de Clover

 

voici le QE_CI Exotic patch pour les HD 48xx series

<key>KernelAndKextPatches</key>
<dict>
<key>AppleRTC</key>
<false/>
<key>KextsToPatch</key>
<array>
<dict>
<key>Name</key>
<string>AMD4800Controller</string>
<key>Find</key>
<string>0x94401002</string>
<key>Replace</key>
<string>0x944c1002</string>
<key>Comment</key>
<string>QE_CI patch</string>
<key>InfoPlistPatch</key>
<true/>
</dict>
<dict>
<key>Name</key>
<string>ATIRadeonX2000</string>
<key>Find</key>
<string>0x94401002</string>
<key>Replace</key>
<string>0x944c1002</string>
<key>Comment</key>
<string>QE_CI patch</string>
<key>InfoPlistPatch</key>
<true/>
</dict>
<dict>
<key>Name</key>
<string>ATIRadeonX2000</string>
<key>Find</key>
<data>
D4ObAQAA
</data>
<key>Replace</key>
<data>
kJCQkJCQ
</data>
<key>Comment</key>
<string>QE_CI patch</string>
</dict>
</array>
</dict>

et voici le patch via Clover Configurator

 

KernelAndKextPatches_tab.png

 

 

;)

Share this post


Link to post
Share on other sites

it never wanna work with my ati4850  system id 0x94421002

 

and no cache command doesn't with Yosemite , clover stuck in 10 seconds something line.

 

 

i edit ati4800controller plist and then i copy it , but i would like if i do all by clover in case when update Yosemite

Share this post


Link to post
Share on other sites

Hi,

For OS X 10.8 and 10.9 my graphics card HD4850 (9442 1002) run VGA BIOS appended to the DSDT.

Unfortunately, the new system Yosemite it does not work.

I tried the method described above, but unfortunately it does not want to.

Clover - 2703

config.plist --> klik

There is a solution to this problem?

Share this post


Link to post
Share on other sites

hi

 

the common problem is that the kexts are not loaded

 

you can check it with kext wizard

 

do you tried the trick with FakeSMC (injecting the informations of your kexts inside the Info. plist as additional IOKitPersonalities)?

Share this post


Link to post
Share on other sites

Yes, I tried to trick IOKitPersonalities, unfortunately, does not work.   :(

But it is a success. 
Install QE_CI Exotic patch OS X Yosemite_10.10_DP1 to /S/L/E plus Chameleon 2380
However, the future is worth to find a solution by Clover…..

Share this post


Link to post
Share on other sites

as a second solution, I was going to suggest you the QE_CI Exotic patch

 

glad that it works for you

 

but don't give up

 

the Clover solution is really great & easy    ;)

Share this post


Link to post
Share on other sites

--------------------------------

mise à jour du 17/06/2014

--------------------------------

 

l'injection des kexts à la volé fonctionne très bien sous OS X Yosemite 10.10 DP2, avec les dernières versions de Clover

 

QE_CI Exotic patch pour les HD 48xx series reste le même que pour la DP1, le voici

<key>KernelAndKextPatches</key>
<dict>
<key>AppleRTC</key>
<false/>
<key>KextsToPatch</key>
<array>
<dict>
<key>Name</key>
<string>AMD4800Controller</string>
<key>Find</key>
<string>0x94401002</string>
<key>Replace</key>
<string>0x944c1002</string>
<key>Comment</key>
<string>QE_CI patch</string>
<key>InfoPlistPatch</key>
<true/>
</dict>
<dict>
<key>Name</key>
<string>ATIRadeonX2000</string>
<key>Find</key>
<string>0x94401002</string>
<key>Replace</key>
<string>0x944c1002</string>
<key>Comment</key>
<string>QE_CI patch</string>
<key>InfoPlistPatch</key>
<true/>
</dict>
<dict>
<key>Name</key>
<string>ATIRadeonX2000</string>
<key>Find</key>
<data>
D4ObAQAA
</data>
<key>Replace</key>
<data>
kJCQkJCQ
</data>
<key>Comment</key>
<string>QE_CI patch</string>
</dict>
</array>
</dict>

et voici ce même patch via Clover Configurator

 

KernelAndKextPatches_tab.png

 

 

;)

Share this post


Link to post
Share on other sites

--------------------------------

mise à jour du 17/06/2014

--------------------------------

 

l'injection des kexts à la volé fonctionne très bien sous OS X Yosemite 10.10 DP2, avec les dernières versions de Clover

 

QE_CI Exotic patch pour les HD 48xx series reste le même que pour la DP1, le voici

<key>KernelAndKextPatches</key>
<dict>
<key>AppleRTC</key>
<false/>
<key>KextsToPatch</key>
<array>
<dict>
<key>Name</key>
<string>AMD4800Controller</string>
<key>Find</key>
<string>0x94401002</string>
<key>Replace</key>
<string>0x944c1002</string>
<key>Comment</key>
<string>QE_CI patch</string>
<key>InfoPlistPatch</key>
<true/>
</dict>
<dict>
<key>Name</key>
<string>ATIRadeonX2000</string>
<key>Find</key>
<string>0x94401002</string>
<key>Replace</key>
<string>0x944c1002</string>
<key>Comment</key>
<string>QE_CI patch</string>
<key>InfoPlistPatch</key>
<true/>
</dict>
<dict>
<key>Name</key>
<string>ATIRadeonX2000</string>
<key>Find</key>
<data>
D4ObAQAA
</data>
<key>Replace</key>
<data>
kJCQkJCQ
</data>
<key>Comment</key>
<string>QE_CI patch</string>
</dict>
</array>
</dict>

et voici ce même patch via Clover Configurator

 

attachicon.gifKernelAndKextPatches_tab.png

 

 

;)

 

Hey fantomas1,

thanks for your work.

 

One question: do I have to put the script in the EFI\CLOVER\config.plist?

 

Thanks!

Share this post


Link to post
Share on other sites

I put it in the config.plist and I correctly see it even in the clover configurator, but still no QE/CI just a 1280x1024 resolution and a very lag system... any advices?

BTW I got an ATI 4890 (that I correctly see in system information)

 

Thanks again.

 

Nevermind, I finally did it!

I think the problem was I had the npci=0x2000 flag. Once I removed it it worked!

Thanks again, it also works with the OS X 10.10 (14A261i) update I just installed!

Edited by Blame73

Share this post


Link to post
Share on other sites

:)

 

je ne sais pas pour ma Sapphire HD 4850 1024 (vga/dvi/Hdmi) sur Yosemite , je l'ai vendu et contant de m'en être débarrassé , j'ai remarqué que les plugin gpu fakesmc (hw monitor) me posaient de gros problèmes d'écran noir aléatoire sur ma HD 6670 1024 et le gel d'écran  sur ma hd 5450 512 , depuis que j'ai viré ces satanés plugin gpu du fakesmc (tant pis pour la température) , je n'ai plus aucun problème , la HD 4670 supporte sans problème . 

 

voir aussi avec GraphicsInjector=No FBConfig=Eulemur (Clover) drapeau indispensable pour ma HD 5450 ;) 

Share this post


Link to post
Share on other sites

 

@ Blame73

 

T-noir%20(13).gif

 

I'm glad

 

just the last thing, tell me what it says when you tape this command in Terminal

ioreg grep ATY

 

I'll tell you in 5 minutes, I'm on my ML partition now 'cause I was checking performances.

I got half the performance on Yosemite (on OpenCL OceanWave and LuxMark_v2) than I have on ML. Is it normal?

Share this post


Link to post
Share on other sites

maybe, maybe not

 

it's why I need to see if the right framebuffer is loaded

 

ioreg |grep ATY

 

Here it is:

Davides-iMac:~ davide$ ioreg |grep ATY
    | |   |   | +-o ATY,MotMot@0  <class AtiFbStub, id 0x1000002ea, registered, matched, active, busy 0 (3 ms), retain 8>
    | |   |   | | +-o ATY_MotMot  <class AMDFramebuffer, id 0x1000002ec, registered, matched, active, busy 0 (2 ms), retain 18>
    | |   |   | +-o ATY,MotMot@1  <class AtiFbStub, id 0x1000002eb, registered, matched, active, busy 0 (0 ms), retain 8>
    | |   |   | | +-o ATY_MotMot  <class AMDFramebuffer, id 0x1000002f2, registered, matched, active, busy 0 (0 ms), retain 15>

Share this post


Link to post
Share on other sites

ok

 

I think MotMot has poor performance in Yosemite

 

change it to Cardinal, tell me if it's a little better

 

in my case, with my hd4830, I saw better performance with Cardinal

 

changing  framebuffer to Cardinal, some users have resolved their problem with dual display  ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Klaidonis
      I am making a minimal Clover build for the fastest boot possible with the boot6 file in legacy mode.
      While looking at the preboot.log, I noticed that there is a line without explanation (at 0:892). Apparently, whatever it is, the execution time of it is close to 2 seconds, more than 55% of the total logged boot time in the current configuration. This does not change whether I use USB 2 or USB 3 port.
       
      Is there a way to eliminate or speed up the above? Also, is there anything else you can suggest to improve the performance based on the below log file? Which moment in the boot process corresponds to the start time in preboot.log?  
      The last thing I would like to understand is the delay/timeout after the boot6 file has loaded, and the number 6 disappears from the screen. For about 2 seconds or slightly less, I can press any key, and then it will enter the BIOS-like interface from the boot6 file. Without further knowledge, it seems like those 2 seconds are just delay time, and only after that is CLOVERX64.efi actually started, which, I presume, is approximately when the preboot.log timer starts. So, if the aforementioned is correct, can I get rid of this delay as well? Note that I am using the boot1f32 file to chain-load boot6, which does not include the initial 2-second wait period for a keypress.
       
      === preboot.log ===
      0:100 0:100 MemLog inited, TSC freq: 2394459554 0:100 0:000 CPU was calibrated with ACPI PM Timer 0:100 0:000 LegacyRegion2: Chipset/proc: 0x0A048086 0:100 0:000 Next Generation Core processors (PAM 0x80-0x86) 0:100 0:000 Test PAM1=(0x41=90, 0x5a=90, 0x81=11, 0x91=00) at chipset 0A048086 0:100 0:000 , Install = Success 0:112 0:012 BiosVideoDriverBindingStart! 0:112 0:000 BiosVideoCheckForVbe 0:112 0:000 EdidOverride not found 0:121 0:009 Edid1+ 0:121 0:000 found Detail Timing 1920x1080 0:121 0:000 timing string after 0xFE:AUO 0:121 0:000 timing string after 0xFE:B156HAN01.2 0:122 0:000 0 1280x1024 attr=9B - ok, edid- 0:122 0:000 1 1024x768 attr=9B - ok, edid-, 1024x768, working, highest, pref=1 0:122 0:000 2 640x480 attr=9B - ok, edid-, 640x480, working 0:122 0:000 3 800x600 attr=9B - ok, edid-, 800x600, working 0:123 0:000 4 1920x1080 attr=9B - ok, edid+, working, highest, pref=4 0:123 0:000 BV new mode: 4 1920x1080 0:398 0:275 SetMode pref 4 (4) = Success 0:892 0:493 VGA Pci.Hdr.Command=6 - not enabled 2:623 1:731 2:623 0:000 Now is 21.02.2020, 13:03:21 (GMT) 2:623 0:000 Starting Clover revision: 5103 (master, commit 3f3b85da0) on CLOVER EFI 2:623 0:000 Build with: [Args: -D NO_GRUB_DRIVERS_EMBEDDED -t GCC53 | -D NO_GRUB_DRIVERS_EMBEDDED --conf=/Users/sergey/src/CloverHackyColor/Conf -D USE_LOW_EBDA -a X64 -b RELEASE -t GCC53 -n 5 | OS: 10.14.6] 2:623 0:000 SelfDevicePath=PcieRoot(0x0)\Pci(0x1D,0x0)\USB(0x0,0x0)\USB(0x4,0x0)\HD(1,MBR,0x04944021,0x3F,0x3BC1042) @940C9698 2:623 0:000 SelfDirPath = \EFI\CLOVER 2:623 0:000 SimpleTextEx Status=Success 2:623 0:000 === [ Get Smbios ] ======================================== 2:623 0:000 Type 16 Index = 0 2:623 0:000 Total Memory Slots Count = 2 2:623 0:000 Type 17 Index = 0 2:623 0:000 SmbiosTable.Type17->Speed = 1600MHz 2:623 0:000 SmbiosTable.Type17->Size = 4096MB 2:623 0:000 SmbiosTable.Type17->Bank/Device = BANK 0 DIMM0 2:623 0:000 SmbiosTable.Type17->Vendor = Hynix 2:623 0:000 SmbiosTable.Type17->SerialNumber = 00000000 2:623 0:000 SmbiosTable.Type17->PartNumber = HMT451S6MFR6A-PB 2:623 0:000 Type 17 Index = 1 2:623 0:000 SmbiosTable.Type17->Speed = 1600MHz 2:623 0:000 SmbiosTable.Type17->Size = 8192MB 2:623 0:000 SmbiosTable.Type17->Bank/Device = BANK 2 DIMM1 2:623 0:000 SmbiosTable.Type17->Vendor = Kingston 2:623 0:000 SmbiosTable.Type17->SerialNumber = 5A060A8A 2:623 0:000 SmbiosTable.Type17->PartNumber = KHX1600C9S3L/8G 2:623 0:000 Boot status=0 2:623 0:000 Running on: 'Aspire V5-573G' with board 'Dazzle_HW' 2:623 0:000 === [ GetCPUProperties ] ================================== 2:623 0:000 CPU Vendor = 756E6547 Model=40651 2:623 0:000 The CPU supported SSE4.1 2:623 0:000 BrandString = Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz 2:623 0:000 The CPU supported turbo 2:623 0:000 MSR 0x35 20004 2:623 0:000 MSR 0xE2 before patch 1E008405 2:623 0:000 MSR 0xE2 is locked, PM patches will be turned on 2:623 0:000 MSR 0xCE 0008083D_F3011800 2:623 0:000 corrected FLEX_RATIO = 0 2:623 0:000 MSR 0x1B0 00000000 2:623 0:000 FSBFrequency = 71 MHz, DMI FSBFrequency = 100 MHz, Corrected FSBFrequency = 100 MHz 2:623 0:000 MaxDiv/MinDiv: 24.0/8 2:623 0:000 Turbo: 27/27/27/30 2:623 0:000 Features: 0xBFEBFBFF 2:623 0:000 Threads: 4 2:623 0:000 Cores: 2 2:623 0:000 FSB: 100 MHz 2:623 0:000 CPU: 1700 MHz 2:623 0:000 TSC: 1700 MHz 2:623 0:000 PIS: 100 MHz 2:623 0:000 ExternalClock: 25 MHz 2:623 0:000 === [ GetDevices ] ======================================== 2:623 0:000 GOP found at: PcieRoot(0x0)/Pci(0x2,0x0)/AcpiAdr(0x80010100) 2:623 0:000 PCI (00|00:00.00) : 8086 0A04 class=060000 2:623 0:000 PCI (00|00:02.00) : 8086 0A16 class=030000 2:623 0:000 - GOP: Provided by device 2:623 0:000 - GFX: Model=Intel HD Graphics 4400 (Intel) 2:623 0:000 PCI (00|00:03.00) : 8086 0A0C class=040300 2:623 0:000 PCI (00|00:14.00) : 8086 9C31 class=0C0330 2:623 0:000 PCI (00|00:16.00) : 8086 9C3A class=078000 2:623 0:000 PCI (00|00:1B.00) : 8086 9C20 class=040300 2:623 0:000 PCI (00|00:1C.00) : 8086 9C10 class=060400 2:623 0:000 PCI (00|00:1C.02) : 8086 9C14 class=060400 2:623 0:000 PCI (00|04:00.00) : 168C 0034 class=028000 2:623 0:000 - WIFI: Vendor=Atheros 2:623 0:000 PCI (00|00:1C.03) : 8086 9C16 class=060400 2:623 0:000 PCI (00|05:00.00) : 10EC 5287 class=FF0000 2:623 0:000 PCI (00|05:00.01) : 10EC 8168 class=020000 2:623 0:000 - LAN: 0 Vendor=Realtek 2:623 0:000 PCI (00|00:1C.04) : 8086 9C18 class=060400 2:624 0:000 PCI (00|01:00.00) : 10DE 0FE4 class=030200 2:624 0:000 PCI (00|00:1D.00) : 8086 9C26 class=0C0320 2:624 0:000 PCI (00|00:1F.00) : 8086 9C43 class=060100 2:624 0:000 PCI (00|00:1F.02) : 8086 9C03 class=010601 2:624 0:000 PCI (00|00:1F.03) : 8086 9C22 class=0C0500 2:624 0:000 === [ GetDefaultSettings ] ================================ 2:624 0:000 Clover load options size = 0 bytes 2:624 0:000 CheckOEMPathExists tried EFI\CLOVER\OEM\Aspire V5-573G--00-00-00-00-00-00. Dir not exists 2:624 0:000 CheckOEMPathExists tried EFI\CLOVER\OEM\Aspire V5-573G. Dir not exists 2:624 0:000 CheckOEMPathExists tried EFI\CLOVER\OEM\Aspire V5-573G-1700. Dir not exists 2:624 0:000 CheckOEMPathExists tried EFI\CLOVER\OEM\Dazzle_HW. Dir not exists 2:624 0:000 CheckOEMPathExists tried EFI\CLOVER\OEM\Dazzle_HW-1700. Dir not exists 2:624 0:000 set OEMPath by default: EFI\CLOVER 2:637 0:012 EFI\CLOVER\config.plist loaded: Success 2:637 0:000 === [ GetListOfThemes ] =================================== 2:637 0:000 === [ Found config plists ] =============================== 2:637 0:000 - config.plist 2:637 0:000 === [ GetEarlyUserSettings ] ============================== 2:637 0:000 timeout set to 0 2:637 0:000 Custom boot CUSTOM_BOOT_DISABLED (0x0) 2:637 0:000 Default theme: embedded 2:637 0:000 === [ LoadDrivers ] ======================================= 2:637 0:000 === [ InitScreen ] ======================================== 2:637 0:000 Console modes reported: 4, available modes: 2:637 0:000 - [01]: 80x25 2:637 0:000 - [02]: 80x50 2:637 0:000 - [03]: 100x31 2:637 0:000 - [04]: 240x56 (current mode) 2:637 0:000 SetScreenResolution: 1920x1080 - already set 2:637 0:000 SetScreenResolution: 1920x1080 - already set 2:637 0:000 reinit: self device path=PcieRoot(0x0)\Pci(0x1D,0x0)\USB(0x0,0x0)\USB(0x4,0x0)\HD(1,MBR,0x04944021,0x3F,0x3BC1042) 2:637 0:000 === [ GetMacAddress ] ===================================== 2:637 0:000 === [ ScanSPD ] =========================================== 2:637 0:000 Scanning SMBus [8086:9C22], mmio: 0xB3619004, ioport: 0x5040, hostc: 0x1 2:656 0:018 Slot: 2 Type 24 8192MB 1600MHz Vendor=Kingston PartNo=KHX1600C9S3L8G SerialNo=050A0006000A080A 2:657 0:000 === [ GetAcpiTablesList ] ================================= 2:657 0:000 Get Acpi Tables List from RSDT: 2:657 0:000 - [00]: FACP ACRPRDCT len=268 2:657 0:000 - [01]: UEFI ACRPRDCT len=566 2:657 0:000 - [02]: FPDT ACRPRDCT len=68 2:657 0:000 - [03]: ASF! ACRPRDCT len=165 2:657 0:000 - [04]: HPET ACRPRDCT len=56 2:657 0:000 - [05]: APIC ACRPRDCT len=140 2:657 0:000 - [06]: MCFG ACRPRDCT len=60 2:657 0:000 - [07]: BOOT ACRPRDCT len=40 2:657 0:000 - [08]: LPIT ACRPRDCT len=148 2:657 0:000 - [09]: ASPT ACRPRDCT len=52 2:657 0:000 - [10]: DBGP ACRPRDCT len=52 2:657 0:000 - [11]: SSDT ACRPRDCT len=1337 2:657 0:000 - [12]: SSDT ACRPRDCT len=2776 2:657 0:000 - [13]: SSDT ACRPRDCT len=12013 2:657 0:000 - [14]: SSDT ACRPRDCT len=11433 2:657 0:000 - [15]: SSDT ACRPRDCT len=2230 2:657 0:000 Calibrated TSC Frequency = 2394459554 = 2394MHz 2:657 0:000 === [ GetUserSettings ] =================================== 2:657 0:000 === [ Found DSDT tables ] ================================= 2:657 0:000 === [ ScanVolumes ] ======================================= 2:657 0:000 Found 8 volumes with blockIO 2:657 0:000 - [00]: Volume: PcieRoot(0x0)\Pci(0x1F,0x2)\Sata(0x0,0x0,0x0) 2:659 0:001 Result of bootcode detection: bootable Linux (grub,linux) 2:659 0:000 - [01]: Volume: PcieRoot(0x0)\Pci(0x1F,0x2)\Sata(0x1,0x0,0x0) 2:660 0:001 Result of bootcode detection: bootable unknown (legacy) 2:660 0:000 - [02]: Volume: PcieRoot(0x0)\Pci(0x1F,0x2)\Sata(0x0,0x0,0x0)\HD(1,GPT,8017BD66-1E24-4B31-8E09-BC49BECD6CC4,0x800,0x21330000) 2:661 0:001 Result of bootcode detection: bootable Windows (vista,win) 2:661 0:000 - [03]: Volume: PcieRoot(0x0)\Pci(0x1F,0x2)\Sata(0x0,0x0,0x0)\HD(2,GPT,82F3B738-65E9-458E-B2F1-BB55D4F00885,0x21331000,0x3D0800) 2:663 0:001 - [04]: Volume: PcieRoot(0x0)\Pci(0x1F,0x2)\Sata(0x0,0x0,0x0)\HD(3,GPT,E701DCD8-E3C5-4BFA-B61B-BFF4D80153FD,0x21701800,0x18C4F000) 2:664 0:001 - [05]: Volume: PcieRoot(0x0)\Pci(0x1F,0x2)\Sata(0x0,0x0,0x0)\HD(4,GPT,4DB1239A-A9D7-4045-A162-7EF1B3A5913B,0x3A350C21,0x3A3B616E) 2:665 0:001 Result of bootcode detection: bootable Windows (vista,win) 2:665 0:000 - [06]: Volume: PcieRoot(0x0)\Pci(0x1D,0x0)\USB(0x0,0x0)\USB(0x4,0x0) 2:677 0:011 Result of bootcode detection: bootable unknown (legacy) 2:677 0:000 USB volume 2:677 0:000 USB volume 2:677 0:000 - [07]: Volume: PcieRoot(0x0)\Pci(0x1D,0x0)\USB(0x0,0x0)\USB(0x4,0x0)\HD(1,MBR,0x04944021,0x3F,0x3BC1042) 2:688 0:011 Result of bootcode detection: bootable unknown (legacy) 2:688 0:000 USB volume 2:688 0:000 USB volume 2:688 0:000 This is SelfVolume !! 2:688 0:000 PutNvramPlistToRtVars: nvram.plist not found 2:689 0:000 No AudioIoProtocols, status=Not Found 2:689 0:000 === [ InitTheme ] ========================================= 2:689 0:000 use daylight theme 2:689 0:000 using embedded theme 2:689 0:000 got embedded sound 2:689 0:000 Channels: 2 Sample rate: 8000 Hz Bits: 16 2:689 0:000 output to channel 0 with volume 70, len=25600 2:689 0:000 sound channels=2 bits=16 freq=8000 2:689 0:000 sound converted to 48kHz 2:689 0:000 not found AudioIo to play 2:689 0:000 sound play end with status=Not Found 2:690 0:001 Using embedded font: Success 2:691 0:000 theme inited 2:691 0:000 Chosen embedded theme 2:691 0:000 after NVRAM boot-args= 2:691 0:000 === [ Dump SMC keys from NVRAM ] ========================== 2:691 0:000 no AppleSMC protocol 2:691 0:000 Entry scan disabled 2:691 0:000 === [ AddCustomTool ] ===================================== 2:692 0:000 === [ GetEfiBootDeviceFromNvram ] ========================= 2:692 0:000 Default boot entry not found 2:692 0:000 DefaultIndex=-1 and MainMenu.EntryCount=4 2:973 0:281 GUI ready  
    • By Jancey
      I used this command: diskutil info disk0s2 | grep -i "Partition UUID" | rev | cut -d' ' -f 1 | rev

      But I accidentally removed the wrong disk and now my main windows drive is not appearing in the bootloader. I can't figure out how to get it back. I tried resetting my windows drive, but I kept getting an error. I also reset my mac and reinstalled Catalina.
    • By gengstapo
      @Hervé
       
      Im having similar issue with my HS setup, dell latitute 3480, i5-7200U
      Once the hdmi plugged in, the laptop display went blank, only could see the external tv
      But, when i put my laptop to sleep & wake up again, both screen got display (hdmi still connected)
      Even the hdmi could be plugged off & in (after sleep), the laptop display is fine
       
      What could be the culprit?
      Dell’s MacBook Pro IORegistry.zip
      config.plist.zip
    • By TomZanna
      Hi, I'm trying to install Mac Os Catalina on a HP 550-132NL.
      The system has:
      i7-6700
      RAM 12 GB
      GT 730
      LAN Realtek RTL8161
      ALC3863
       
      It passes the verbose phase but after the Apple logo goes away, it gets stuck on a grey screen and I can only move the pointer.
      Can I try to boot with the iGPU?
       
      origin.zip
      CLOVER_dGPU_USB_3.zip
    • By MaLd0n
      ---TUTORIAL---
      https://www.olarila.com/topic/5794-guide-install-macos-with-olarila-image-step-by-step-install-and-post-install-windows-or-mac/
       
      --Original Post--
      https://www.olarila.com/topic/6531-olarila-hackbeast-z390-designare-thunderbolt-full-dsdt-patches-clover-opencore/
       
      --Bios/UEFI Settings--
       
      *Update bios/uefi to F7+*
      1- Go to M.I.T./Advanced Frequency Settings tab
       
      Extreme Memory Profile (X.M.P.) - Profile 1
       
      2- Go to BIOS tab
       
      CSM Support - Disabled
       
      3- Go to Peripherals/Thunderbolt(TM) Configuration tab
       
      Security Level - No Security
      Thunderbolt USB Support - Enabled
      GPIO3 Force Pwr - Enabled
       
      4- Go to Chipset tab
       
      Internal Graphics - Enable
       
      ---CLOVER FOLDER---
      https://olarila.com/files/Clover.Folder/EFI CLOVER Z390 DESIGNARE.zip
      *Use this folder with FULL DSDT PATCHED
       
      ---OPENCORE FOLDER---
      https://www.olarila.com/topic/6364-mojave-catalina-on-mobos-series-100200300-with-opencore-bootloader/
      *Use this folder with FULL DSDT PATCHED
       
       
      ---Extract one Full dump for DSDT edits, post files---
       
      RunMe.app
       
       
       
      ---HARDWARE---
       
      --MOBO

      GIGABYTE Z390 DESIGNARE
      -Link
      https://www.amazon.com/Z390-DESIGNARE-Gigabyte-Thunderbolt-Motherboard/dp/B07K8RJZRG/ref=sr_1_1?keywords=Z390+DESIGNARE&qid=1565492390&s=electronics&sr=1-1

      --PROCESSOR

      Intel Core i9-9900K
      -Link
      https://www.amazon.com/Intel-i9-9900K-Desktop-Processor-Unlocked/dp/B005404P9I/ref=sr_1_1_sspa?keywords=Intel+Core+i9-9900K&qid=1553358099&s=gateway&sr=8-1-spons&psc=1

      --COOLER

      CORSAIR H100i RGB PLATINUM AIO Liquid CPU Cooler
      -Link
      https://www.amazon.com/CORSAIR-H100i-PLATINUM-Liquid-Cooler/dp/B07JWB5BSN/ref=sr_1_4?keywords=WATER+COOLER+CPU&qid=1565492509&s=gateway&sr=8-4

      --MEMORY

      Corsair CMW32GX4M2C3200C16 Vengeance RGB PRO 32GB (2x16GB) DDR4 3200 (PC4-25600)
      -Link
      https://www.amazon.com/Corsair-CMW32GX4M2C3200C16-Vengeance-PC4-25600-Desktop/dp/B07GTG2T7L/ref=sr_1_15?keywords=memory+ddr4+32&qid=1553358238&s=gateway&sr=8-15

      --GPU

      MSI RX Vega 64 AIR Boost 8G OC
      -Link
      https://www.amazon.com/MSI-RX-64-AIR-8G/dp/B07DH7S1X1/ref=sr_1_2?keywords=vega+64+gigabyte&qid=1565492819&s=electronics&sr=1-2

      --SSD

      Samsung 970 EVO 1TB SSD (MZ-V7E1T0BW) NVMe M.2 V-NAND
      -Link
      https://www.amazon.com/Samsung-970-EVO-1TB-MZ-V7E1T0BW/dp/B07BN217QG/ref=sr_1_1?keywords=s+samsung+970+evo+1tb&qid=1565493002&s=electronics&sr=1-1

      --POWER SUPPLY

      EVGA Supernova 1000 P2 80+ Platinum, 1000W ECO Mode Fully Modular 
      -Link
      https://www.amazon.com/EVGA-Supernova-Platinum-Crossfire-220-P2-1000-XR/dp/B00EKJQM5E/ref=sr_1_3?keywords=power+supply+1000w&qid=1565493196&s=gateway&sr=8-3

      --WIRELESS

      TP-Link Archer T9E
      -Link
      https://www.amazon.com/TP-Link-Archer-T9E-Beamforming-Technology/dp/B00TQEX7AQ/ref=sr_1_1?keywords=TP-Link+Archer+T9E&qid=1553358397&s=gateway&sr=8-1

      --CASE

      Thermaltake Core P5 Tempered Glass Black Edition ATX Open Frame Panoramic Viewing
      -Link
      https://www.amazon.com/Thermaltake-Tempered-Panoramic-Certified-CA-1E7-00M1WN-03/dp/B01N4IGVSC/ref=sr_1_2?keywords=Thermaltake+Core+P5&qid=1565493567&s=gateway&sr=8-2

      --DSDT Patches--
      -FIX ACPI ERRORS -FIX OEM SSDTs to AVOID ERRORS AND WARNINGS -REMOVE UNUSED SCOPES / DEVICES -HIGH PRECISION EVENT TIMER -SATA -DMAC -REMOVE PROBLEMATIC AND UNUSED DEVICES -FIX K.P in REBOOT -SLPB -DARWIN / WINDOWS 2015 -XHCI -PLUGIN TYPE -HDAS to HDEF -HDEF -REAL TIME CLOCK -ARTC -IRQs -SBUS -BUS1 -MCHC -ALS0 -SHUTDOWN -LAN -FWHD -USBX -PMCR -PPMC -XSPI -CNVW -GMM -IMEI -EC -PNLF -ARPT -GFX0 -NVME -DTGP -ACQUIRE MUT0 0XFFFF -MUTEX MUT0 0x00 -EXTERNAL REFERENCES -UNKNOWNOBJ -HDMI / HDAU -FULL RENAMED DEVICES ---SCREENSHOTs---




















      -Credits and thanks to the old and new people in the community who developed patches, kexts and bootloaders!
      Thanks to KGP for SSDT Thunderbolt
      Slice, Kabyl, usr-sse2, jadran, Blackosx, dmazar, STLVNUB, pcj, apianti, JrCs, pene, FrodoKenny, skoczy, ycr.ru, Oscar09, xsmile, SoThOr, RehabMan, Download-Fritz, Zenit432, cecekpawon, Intel, Apple, Oracle, Chameleon Team, crazybirdy, Mieze, Mirone, Oldnapalm, netkas, Elconiglio, artut-pt, ErmaC, Pavo, Toleda, Master Chief and family, bcc9, The King, PMheart, Sherlocks, Micky1979, vit9696, vandroiy2013, Voodoo Team, Pike R. Alpha, lvs1974, Austere.J, CVad, Sampath007, onemanosx, erroruser, Jenny David, Olarila Facebook Community, Hackintosh Facebook Community and many others!
      We're all here to have fun and learn from each other!
×