Contribute
Register

ACPI Patching With Clover Hotpatch

Joined
Jun 9, 2013
Messages
10,809
Motherboard
Gigabyte GA-H77N-WIFI
CPU
i7-3770
Graphics
HD 4000
Mac
MacBook, Mac mini
Mobile Phone
Android
Hi Rehabman. Could you take a look at the DSDT I've provided both Native Clean DSDT and Patched DSDT.

Thank you.

Jack.
 

Attachments

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,929
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Hi Rehabman. Could you take a look at the DSDT I've provided both Native Clean DSDT and Patched DSDT.

Thank you.

Jack.
Notes:
- not sure why IOST was changed from 0 to 1... (patch not needed?)
- method _OSC, not sure why it is re-written (probably not needed), part of XHC Mux patch, but that can be done with FakePCIID_XHCIMux
- injecting "compatible"="pci8086,1e44" on Device MATH (renamed from COPR) probably not needed (1e44 is an LPC id, nothing to do with the ACPI math coprocessor AFAIK...)
- many of the _DSM and _SUN methods are only cosmetic, but can be done in add-on SSDTs if you wish
- EHCx->EH0x patch is easy rename
- PEGP->GFX0 patch is easy rename
- GFX0 _DSM and HDAU (add) can be done in SSDT
- _DSM injects for USB can be done in SSDT, or with Clover options, or with Devices/Arbitrary
- _DSM injects for HDEF can be done in SSDT
- BUS0 device can be in SSDT or via Clover ACPI/DSDT/Fixes
- Note that SystemMemory address for CPSB does not match (eg. patched out-of-sync with origin!)
- _OSI patch (for "Darwin") is nonsense anyway (use _OSI->XOSI, SSDT-XOSI.aml)
 
Joined
Jun 9, 2013
Messages
10,809
Motherboard
Gigabyte GA-H77N-WIFI
CPU
i7-3770
Graphics
HD 4000
Mac
MacBook, Mac mini
Mobile Phone
Android
Notes:
- not sure why IOST was changed from 0 to 1... (patch not needed?)
- method _OSC, not sure why it is re-written (probably not needed), part of XHC Mux patch, but that can be done with FakePCIID_XHCIMux
- injecting "compatible"="pci8086,1e44" on Device MATH (renamed from COPR) probably not needed (1e44 is an LPC id, nothing to do with the ACPI math coprocessor AFAIK...)
- many of the _DSM and _SUN methods are only cosmetic, but can be done in add-on SSDTs if you wish
- EHCx->EH0x patch is easy rename
- PEGP->GFX0 patch is easy rename
- GFX0 _DSM and HDAU (add) can be done in SSDT
- _DSM injects for USB can be done in SSDT, or with Clover options, or with Devices/Arbitrary
- _DSM injects for HDEF can be done in SSDT
- BUS0 device can be in SSDT or via Clover ACPI/DSDT/Fixes
- Note that SystemMemory address for CPSB does not match (eg. patched out-of-sync with origin!)
- _OSI patch (for "Darwin") is nonsense anyway (use _OSI->XOSI, SSDT-XOSI.aml)
Okay cheers mate. Ive started doing some of the SSDTs. The reason why i asked for your help is because when i used PJALMs patches it renames a lot in the DSDT. i.e looks like this.

Code:
into definitionblock code_regex External\s\(_SB_.PCI0.PEG0\)\s+ removeall_matched;
into definitionblock code_regex External\s\(_SB_.PCI0.PEG0.PEGP\)\s+ removeall_matched;
into definitionblock code_regex External\s\(_SB_.PCI0.PEG1\)\s+ removeall_matched;
into definitionblock code_regex External\s\(_SB_.PCI0.PEG2\)\s+ removeall_matched;
into definitionblock code_regex External\s\(_SB_.PCI0.PEGP\)\s+ removeall_matched;
into definitionblock code_regex External\s\(_SB_.PCI0.PEGP.GFX0\)\s+ removeall_matched;
Code:
# Intel 7 Series Fixes
into_all all code_regex _T_([0-6]) replaceall_matched begin T_%1 end;
into device label EC0 set_label begin EC end;
into_all all code_regex EC0 replaceall_matched begin EC end;
into method label _REG parent_label EC remove_entry;
into device label COPR set_label begin MATH end;
into_all all code_regex COPR replaceall_matched begin MATH end;
into_all all code_regex 0x000EC00 replaceall_matched begin 0x000EC000 end;
into_all all code_regex 0xFEC0000 replaceall_matched begin 0xFEC00000 end;
into_all all code_regex (Name\s\(_HID,\s"ABCDEFGH") replace_matched begin Name (_HID, EisaId ("PNP0C15") end;
into device label SIO1 code_regex 0x00(,\s+//\s+L) replaceall_matched begin 0x01%1 end;
into_all all code_regex (Acquire\s\(MUT0,\s0x)....\) replace_matched begin %1FFFF) end;
into_all all code_regex pnp0c14 replaceall_matched begin PNP0C14 end;
into method label _CRS parent_label PCI0 code_regex CreateDWordField\s\(BUF0,\s\\_SB.PCI0._Y0F._LEN,\sMSLN\) replace_matched begin CreateQWordField (BUF0, \\_SB.PCI0._Y0F._LEN, MSLN) end;

## Method _DOD in GFX0
into method label _DOD parent_label GFX0 code_regex ([\s\S]*) store_%8;
into method label _DOD parent_label GFX0 remove_entry;
into device label GFX0 insert begin Method (_DOD, 0, Serialized)\n{\n\n} end;
into method label _DOD parent_label GFX0 code_regex .* replace_matched begin %8 end;

## Method RRIO in definitionblock
into method label RRIO code_regex ([\s\S]*) store_%8;
into method label RRIO remove_entry;
into definitionblock code_regex . insert begin Method (RRIO, 4, Serialized)\n{\n\n} end;
into method label RRIO code_regex .* replace_matched begin %8 end;

## Method UXDV in definitionblock
into method label UXDV code_regex ([\s\S]*) store_%8;
into method label UXDV remove_entry;
into definitionblock code_regex . insert begin Method (UXDV, 1, Serialized)\n{\n\n} end;
into method label UXDV code_regex .* replace_matched begin %8 end;

# Fix TPM
into method label _HID parent_label _SB.PCI0.LPCB.TPM code_regex (Return\s\(Zero\)\s*) removeall_matched;
into method label _HID parent_label _SB.PCI0.LPCB.TPM insert begin Return (Zero) end;

## Method _DSM in _SB.PCI0.LPCB.TPM
into method label _DSM parent_label _SB.PCI0.LPCB.TPM code_regex (([\s\S])*) store_%8;
into method label _DSM parent_label _SB.PCI0.LPCB.TPM remove_entry;
into scope label _SB.PCI0.LPCB.TPM insert begin Method (_DSM, 4, Serialized)\n{\n} end;
into method label _DSM parent_label _SB.PCI0.LPCB.TPM code_regex .* replace_matched begin %8 end;

## Method _DSM in _SB.PCI0.ITPM
into method label _DSM parent_label _SB.PCI0.ITPM code_regex (([\s\S])*) store_%8;
into method label _DSM parent_label _SB.PCI0.ITPM remove_entry;
into device Label _SB.PCI0.ITPM insert begin Method (_DSM, 4, Serialized)\n{\n} end;
into method label _DSM parent_label _SB.PCI0.ITPM code_regex .* replace_matched begin %8 end;
Code:
# Fix method _OSC
into method label _OSC parent_label PCI0 remove_entry;
into device label PCI0 parent_label _SB insert
begin
Method (_OSC, 4, Serialized)\n
{\n
    Store (Arg3, Local0)\n
    CreateDWordField (Local0, Zero, CDW1)\n
    CreateDWordField (Local0, 0x04, CDW2)\n
    CreateDWordField (Local0, 0x08, CDW3)\n
    Store (CDW2, SUPP)\n
    Store (CDW3, CTRL)\n
    If (LEqual (One, OSDW ()))\n
    {\n
        If (LAnd (LEqual (Arg0, GUID), NEXP))\n
        {\n
            If (Not (And (CDW1, One)))\n
            {\n
                If (And (CTRL, 0x02))\n
                {\n
                    NHPG ()\n
                }\n
\n
                If (And (CTRL, 0x04))\n
                {\n
                    NPME ()\n
                }\n
            }\n
\n
            If (LNotEqual (Arg1, One))\n
            {\n
                Or (CDW1, 0x08, CDW1)\n
            }\n
\n
            If (LNotEqual (CDW3, CTRL))\n
            {\n
                Or (CDW1, 0x10, CDW1)\n
            }\n
\n
            Store (CTRL, CDW3)\n
            Store (CTRL, OSCC)\n
            Return (Local0)\n
        }\n
        Else\n
        {\n
            Or (CDW1, 0x04, CDW1)\n
            Return (Local0)\n
        }\n
    }\n
    Else\n
    {\n
        If (LEqual (Arg0, Buffer (0x10)\n
            {\n
                /* 0000 */   0xA9, 0x12, 0x95, 0x7C, 0x05, 0x17, 0xB4, 0x4C,\n
                /* 0008 */   0xAF, 0x7D, 0x50, 0x6A, 0x24, 0x23, 0xAB, 0x71\n
            }))\n
        {\n
            Store (One, ^XHC1.PASS)\n
            Store (One, ^XHC1.PAHC)\n
            Store (One, ^XHC1.PBSS)\n
            Store (One, ^XHC1.PBHC)\n
            Store (One, ^XHC1.PCSS)\n
            Store (One, ^XHC1.PCHC)\n
            Store (One, ^XHC1.PDSS)\n
            Store (One, ^XHC1.PDHC)\n
        }\n
        Return (Local0)\n
    }\n
}
end;
Code:
# Fix XHC1
into device label XHC set_label begin XHC1 end;
into_all all code_regex XHC(?=\W) replaceall_matched begin XHC1 end;
into method label _WAK code_regex \_SB.PCI0.XHC1.XWAK replace_matched begin _SB.PCI0.XHC1._INI end;

into device label XHC1 replace_content begin
Name (_ADR, 0x00140000)\n
Name (_S3D, 0x02)\n
Name (_S4D, 0x02)\n
Name (XRST, Zero)\n
\n
OperationRegion (XPRT, PCI_Config, 0x74, 0x10)\n
Field (XPRT, DWordAcc, NoLock, Preserve)\n
{\n
    Offset (0x01),\n
    PMEE,   1,\n
        ,   6,\n
    PMES,   1\n
}\n
\n
OperationRegion (XH1C, PCI_Config, 0xD0, 0x10)\n
Field (XH1C, ByteAcc, NoLock, Preserve)\n
{\n
    PAHC,   1,\n
    PBHC,   1,\n
    PCHC,   1,\n
    PDHC,   1,\n
    Offset (0x08),\n
    PASS,   1,\n
    PBSS,   1,\n
    PCSS,   1,\n
    PDSS,   1\n
}\n
\n
OperationRegion (XHC2, PCI_Config, 0x44, 0x04)\n
Field (XHC2, ByteAcc, NoLock, Preserve)\n
{\n
    Offset (0x01),\n
    MIAI,   2\n
}\n
\n
Method (_INI, 0, NotSerialized)\n
{\n
    If (OSDW ())\n
    {\n
        Store (Zero, MIAI)\n
    }\n
\n
    If (LAnd (LGreaterEqual (OSYS, 0x07DC), LLess (OSYS, 0x2710)))\n
    {\n
        Store (One, PASS)\n
        Store (One, PAHC)\n
        Store (One, PBSS)\n
        Store (One, PBHC)\n
        Store (One, PCSS)\n
        Store (One, PCHC)\n
        Store (One, PDSS)\n
        Store (One, PDHC)\n
    }\n
}\n
\n
Device (RHUB)\n
{\n
    Name (_ADR, Zero)\n
    Device (PRT1)\n
    {\n
        Name (_ADR, One)\n
        Method (_UPC, 0, Serialized)\n
        {\n
            Name (UPCP, Package (0x04)\n
            {\n
                0xFF,\n
                0x03,\n
                Zero,\n
                Zero\n
            })\n
            Return (UPCP)\n
        }\n
\n
        Method (_PLD, 0, Serialized)\n
        {\n
            Name (PLDP, Package (0x01)\n
            {\n
                Buffer (0x10)\n
                {\n
                    /* 0000 */   0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                    /* 0008 */   0x69, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00\n
                }\n
            })\n
            Return (PLDP)\n
        }\n
        Name (MUXS, "EHCA")\n
    }\n
\n
    Device (PRT2)\n
    {\n
        Name (_ADR, 0x02)\n
        Method (_UPC, 0, Serialized)\n
        {\n
            Name (UPCP, Package (0x04)\n
            {\n
                0xFF,\n
                0x03,\n
                Zero,\n
                Zero\n
            })\n
            Return (UPCP)\n
        }\n
\n
        Method (_PLD, 0, Serialized)\n
        {\n
            Name (PLDP, Package (0x01)\n
            {\n
                Buffer (0x10)\n
            {\n
                    /* 0000 */   0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                    /* 0008 */   0x69, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00\n
                }\n
            })\n
            Return (PLDP)\n
        }\n
        Name (MUXS, "EHCB")\n
    }\n
\n
    Device (PRT3)\n
    {\n
        Name (_ADR, 0x03)\n
        Method (_UPC, 0, Serialized)\n
        {\n
            Name (UPCP, Package (0x04)\n
            {\n
                0xFF,\n
                0x03,\n
                Zero,\n
                Zero\n
            })\n
            Return (UPCP)\n
        }\n
\n
        Method (_PLD, 0, Serialized)\n
        {\n
            Name (PLDP, Package (0x01)\n
            {\n
                Buffer (0x10)\n
                {\n
                    /* 0000 */   0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                    /* 0008 */   0x69, 0x0C, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00\n
                }\n
            })\n
            Return (PLDP)\n
        }\n
        Name (MUXS, "EHCC")\n
    }\n
\n
    Device (PRT4)\n
    {\n
        Name (_ADR, 0x04)\n
        Method (_UPC, 0, Serialized)\n
        {\n
            Name (UPCP, Package (0x04)\n
            {\n
                0xFF,\n
                0x03,\n
                Zero,\n
                Zero\n
            })\n
            Return (UPCP)\n
        }\n
\n
        Method (_PLD, 0, Serialized)\n
        {\n
            Name (PLDP, Package (0x01)\n
            {\n
                Buffer (0x10)\n
                {\n
                    /* 0000 */   0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                    /* 0008 */   0x69, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00\n
                }\n
            })\n
            Return (PLDP)\n
        }\n
        Name (MUXS, "EHCD")\n
    }\n
}\n
\n
Method (_PRW, 0, NotSerialized)\n
{\n
    Return (GPRW (0x0D, 0x04))\n
}\n
\n
Method (XHCA, 0, NotSerialized)\n
{\n
    Store (One, PAHC)\n
}\n
\n
Method (XHCB, 0, NotSerialized)\n
{\n
    Store (One, PBHC)\n
}\n
\n
Method (XHCC, 0, NotSerialized)\n
{\n
    Store (One, PCHC)\n
}\n
\n
Method (XHCD, 0, NotSerialized)\n
{\n
    Store (One, PDHC)\n
}\n
\n
Method (EHCA, 0, NotSerialized)\n
{\n
    Store (Zero, PAHC)\n
}\n
\n
Method (EHCB, 0, NotSerialized)\n
{\n
    Store (Zero, PBHC)\n
}\n
\n
Method (EHCC, 0, NotSerialized)\n
{\n
    Store (Zero, PCHC)\n
}\n
\n
Method (EHCD, 0, NotSerialized)\n
{\n
    Store (Zero, PDHC)\n
}\n
\n
Method (_DSM, 4, NotSerialized)\n
{\n
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,929
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Okay cheers mate. Ive started doing some of the SSDTs. The reason why i asked for your help is because when i used PJALMs patches it renames a lot in the DSDT. i.e looks like this.

Code:
into definitionblock code_regex External\s\(_SB_.PCI0.PEG0\)\s+ removeall_matched;
into definitionblock code_regex External\s\(_SB_.PCI0.PEG0.PEGP\)\s+ removeall_matched;
into definitionblock code_regex External\s\(_SB_.PCI0.PEG1\)\s+ removeall_matched;
into definitionblock code_regex External\s\(_SB_.PCI0.PEG2\)\s+ removeall_matched;
into definitionblock code_regex External\s\(_SB_.PCI0.PEGP\)\s+ removeall_matched;
into definitionblock code_regex External\s\(_SB_.PCI0.PEGP.GFX0\)\s+ removeall_matched;
Code:
# Intel 7 Series Fixes
into_all all code_regex _T_([0-6]) replaceall_matched begin T_%1 end;
into device label EC0 set_label begin EC end;
into_all all code_regex EC0 replaceall_matched begin EC end;
into method label _REG parent_label EC remove_entry;
into device label COPR set_label begin MATH end;
into_all all code_regex COPR replaceall_matched begin MATH end;
into_all all code_regex 0x000EC00 replaceall_matched begin 0x000EC000 end;
into_all all code_regex 0xFEC0000 replaceall_matched begin 0xFEC00000 end;
into_all all code_regex (Name\s\(_HID,\s"ABCDEFGH") replace_matched begin Name (_HID, EisaId ("PNP0C15") end;
into device label SIO1 code_regex 0x00(,\s+//\s+L) replaceall_matched begin 0x01%1 end;
into_all all code_regex (Acquire\s\(MUT0,\s0x)....\) replace_matched begin %1FFFF) end;
into_all all code_regex pnp0c14 replaceall_matched begin PNP0C14 end;
into method label _CRS parent_label PCI0 code_regex CreateDWordField\s\(BUF0,\s\\_SB.PCI0._Y0F._LEN,\sMSLN\) replace_matched begin CreateQWordField (BUF0, \\_SB.PCI0._Y0F._LEN, MSLN) end;

## Method _DOD in GFX0
into method label _DOD parent_label GFX0 code_regex ([\s\S]*) store_%8;
into method label _DOD parent_label GFX0 remove_entry;
into device label GFX0 insert begin Method (_DOD, 0, Serialized)\n{\n\n} end;
into method label _DOD parent_label GFX0 code_regex .* replace_matched begin %8 end;

## Method RRIO in definitionblock
into method label RRIO code_regex ([\s\S]*) store_%8;
into method label RRIO remove_entry;
into definitionblock code_regex . insert begin Method (RRIO, 4, Serialized)\n{\n\n} end;
into method label RRIO code_regex .* replace_matched begin %8 end;

## Method UXDV in definitionblock
into method label UXDV code_regex ([\s\S]*) store_%8;
into method label UXDV remove_entry;
into definitionblock code_regex . insert begin Method (UXDV, 1, Serialized)\n{\n\n} end;
into method label UXDV code_regex .* replace_matched begin %8 end;

# Fix TPM
into method label _HID parent_label _SB.PCI0.LPCB.TPM code_regex (Return\s\(Zero\)\s*) removeall_matched;
into method label _HID parent_label _SB.PCI0.LPCB.TPM insert begin Return (Zero) end;

## Method _DSM in _SB.PCI0.LPCB.TPM
into method label _DSM parent_label _SB.PCI0.LPCB.TPM code_regex (([\s\S])*) store_%8;
into method label _DSM parent_label _SB.PCI0.LPCB.TPM remove_entry;
into scope label _SB.PCI0.LPCB.TPM insert begin Method (_DSM, 4, Serialized)\n{\n} end;
into method label _DSM parent_label _SB.PCI0.LPCB.TPM code_regex .* replace_matched begin %8 end;

## Method _DSM in _SB.PCI0.ITPM
into method label _DSM parent_label _SB.PCI0.ITPM code_regex (([\s\S])*) store_%8;
into method label _DSM parent_label _SB.PCI0.ITPM remove_entry;
into device Label _SB.PCI0.ITPM insert begin Method (_DSM, 4, Serialized)\n{\n} end;
into method label _DSM parent_label _SB.PCI0.ITPM code_regex .* replace_matched begin %8 end;
Code:
# Fix method _OSC
into method label _OSC parent_label PCI0 remove_entry;
into device label PCI0 parent_label _SB insert
begin
Method (_OSC, 4, Serialized)\n
{\n
    Store (Arg3, Local0)\n
    CreateDWordField (Local0, Zero, CDW1)\n
    CreateDWordField (Local0, 0x04, CDW2)\n
    CreateDWordField (Local0, 0x08, CDW3)\n
    Store (CDW2, SUPP)\n
    Store (CDW3, CTRL)\n
    If (LEqual (One, OSDW ()))\n
    {\n
        If (LAnd (LEqual (Arg0, GUID), NEXP))\n
        {\n
            If (Not (And (CDW1, One)))\n
            {\n
                If (And (CTRL, 0x02))\n
                {\n
                    NHPG ()\n
                }\n
\n
                If (And (CTRL, 0x04))\n
                {\n
                    NPME ()\n
                }\n
            }\n
\n
            If (LNotEqual (Arg1, One))\n
            {\n
                Or (CDW1, 0x08, CDW1)\n
            }\n
\n
            If (LNotEqual (CDW3, CTRL))\n
            {\n
                Or (CDW1, 0x10, CDW1)\n
            }\n
\n
            Store (CTRL, CDW3)\n
            Store (CTRL, OSCC)\n
            Return (Local0)\n
        }\n
        Else\n
        {\n
            Or (CDW1, 0x04, CDW1)\n
            Return (Local0)\n
        }\n
    }\n
    Else\n
    {\n
        If (LEqual (Arg0, Buffer (0x10)\n
            {\n
                /* 0000 */   0xA9, 0x12, 0x95, 0x7C, 0x05, 0x17, 0xB4, 0x4C,\n
                /* 0008 */   0xAF, 0x7D, 0x50, 0x6A, 0x24, 0x23, 0xAB, 0x71\n
            }))\n
        {\n
            Store (One, ^XHC1.PASS)\n
            Store (One, ^XHC1.PAHC)\n
            Store (One, ^XHC1.PBSS)\n
            Store (One, ^XHC1.PBHC)\n
            Store (One, ^XHC1.PCSS)\n
            Store (One, ^XHC1.PCHC)\n
            Store (One, ^XHC1.PDSS)\n
            Store (One, ^XHC1.PDHC)\n
        }\n
        Return (Local0)\n
    }\n
}
end;
Code:
# Fix XHC1
into device label XHC set_label begin XHC1 end;
into_all all code_regex XHC(?=\W) replaceall_matched begin XHC1 end;
into method label _WAK code_regex \_SB.PCI0.XHC1.XWAK replace_matched begin _SB.PCI0.XHC1._INI end;

into device label XHC1 replace_content begin
Name (_ADR, 0x00140000)\n
Name (_S3D, 0x02)\n
Name (_S4D, 0x02)\n
Name (XRST, Zero)\n
\n
OperationRegion (XPRT, PCI_Config, 0x74, 0x10)\n
Field (XPRT, DWordAcc, NoLock, Preserve)\n
{\n
    Offset (0x01),\n
    PMEE,   1,\n
        ,   6,\n
    PMES,   1\n
}\n
\n
OperationRegion (XH1C, PCI_Config, 0xD0, 0x10)\n
Field (XH1C, ByteAcc, NoLock, Preserve)\n
{\n
    PAHC,   1,\n
    PBHC,   1,\n
    PCHC,   1,\n
    PDHC,   1,\n
    Offset (0x08),\n
    PASS,   1,\n
    PBSS,   1,\n
    PCSS,   1,\n
    PDSS,   1\n
}\n
\n
OperationRegion (XHC2, PCI_Config, 0x44, 0x04)\n
Field (XHC2, ByteAcc, NoLock, Preserve)\n
{\n
    Offset (0x01),\n
    MIAI,   2\n
}\n
\n
Method (_INI, 0, NotSerialized)\n
{\n
    If (OSDW ())\n
    {\n
        Store (Zero, MIAI)\n
    }\n
\n
    If (LAnd (LGreaterEqual (OSYS, 0x07DC), LLess (OSYS, 0x2710)))\n
    {\n
        Store (One, PASS)\n
        Store (One, PAHC)\n
        Store (One, PBSS)\n
        Store (One, PBHC)\n
        Store (One, PCSS)\n
        Store (One, PCHC)\n
        Store (One, PDSS)\n
        Store (One, PDHC)\n
    }\n
}\n
\n
Device (RHUB)\n
{\n
    Name (_ADR, Zero)\n
    Device (PRT1)\n
    {\n
        Name (_ADR, One)\n
        Method (_UPC, 0, Serialized)\n
        {\n
            Name (UPCP, Package (0x04)\n
            {\n
                0xFF,\n
                0x03,\n
                Zero,\n
                Zero\n
            })\n
            Return (UPCP)\n
        }\n
\n
        Method (_PLD, 0, Serialized)\n
        {\n
            Name (PLDP, Package (0x01)\n
            {\n
                Buffer (0x10)\n
                {\n
                    /* 0000 */   0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                    /* 0008 */   0x69, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00\n
                }\n
            })\n
            Return (PLDP)\n
        }\n
        Name (MUXS, "EHCA")\n
    }\n
\n
    Device (PRT2)\n
    {\n
        Name (_ADR, 0x02)\n
        Method (_UPC, 0, Serialized)\n
        {\n
            Name (UPCP, Package (0x04)\n
            {\n
                0xFF,\n
                0x03,\n
                Zero,\n
                Zero\n
            })\n
            Return (UPCP)\n
        }\n
\n
        Method (_PLD, 0, Serialized)\n
        {\n
            Name (PLDP, Package (0x01)\n
            {\n
                Buffer (0x10)\n
            {\n
                    /* 0000 */   0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                    /* 0008 */   0x69, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00\n
                }\n
            })\n
            Return (PLDP)\n
        }\n
        Name (MUXS, "EHCB")\n
    }\n
\n
    Device (PRT3)\n
    {\n
        Name (_ADR, 0x03)\n
        Method (_UPC, 0, Serialized)\n
        {\n
            Name (UPCP, Package (0x04)\n
            {\n
                0xFF,\n
                0x03,\n
                Zero,\n
                Zero\n
            })\n
            Return (UPCP)\n
        }\n
\n
        Method (_PLD, 0, Serialized)\n
        {\n
            Name (PLDP, Package (0x01)\n
            {\n
                Buffer (0x10)\n
                {\n
                    /* 0000 */   0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                    /* 0008 */   0x69, 0x0C, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00\n
                }\n
            })\n
            Return (PLDP)\n
        }\n
        Name (MUXS, "EHCC")\n
    }\n
\n
    Device (PRT4)\n
    {\n
        Name (_ADR, 0x04)\n
        Method (_UPC, 0, Serialized)\n
        {\n
            Name (UPCP, Package (0x04)\n
            {\n
                0xFF,\n
                0x03,\n
                Zero,\n
                Zero\n
            })\n
            Return (UPCP)\n
        }\n
\n
        Method (_PLD, 0, Serialized)\n
        {\n
            Name (PLDP, Package (0x01)\n
            {\n
                Buffer (0x10)\n
                {\n
                    /* 0000 */   0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                    /* 0008 */   0x69, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00\n
                }\n
            })\n
            Return (PLDP)\n
        }\n
        Name (MUXS, "EHCD")\n
    }\n
}\n
\n
Method (_PRW, 0, NotSerialized)\n
{\n
    Return (GPRW (0x0D, 0x04))\n
}\n
\n
Method (XHCA, 0, NotSerialized)\n
{\n
    Store (One, PAHC)\n
}\n
\n
Method (XHCB, 0, NotSerialized)\n
{\n
    Store (One, PBHC)\n
}\n
\n
Method (XHCC, 0, NotSerialized)\n
{\n
    Store (One, PCHC)\n
}\n
\n
Method (XHCD, 0, NotSerialized)\n
{\n
    Store (One, PDHC)\n
}\n
\n
Method (EHCA, 0, NotSerialized)\n
{\n
    Store (Zero, PAHC)\n
}\n
\n
Method (EHCB, 0, NotSerialized)\n
{\n
    Store (Zero, PBHC)\n
}\n
\n
Method (EHCC, 0, NotSerialized)\n
{\n
    Store (Zero, PCHC)\n
}\n
\n
Method (EHCD, 0, NotSerialized)\n
{\n
    Store (Zero, PDHC)\n
}\n
\n
Method (_DSM, 4, NotSerialized)\n
{\n
Focus only on the patches that are actually necessary.
 
Joined
Jun 9, 2013
Messages
10,809
Motherboard
Gigabyte GA-H77N-WIFI
CPU
i7-3770
Graphics
HD 4000
Mac
MacBook, Mac mini
Mobile Phone
Android
Focus only on the patches that are actually necessary.
Okay that's fine mate. Just making sure as I've never seen anything like it before. Quick question. For XHCI can I renaming it by using ACPI,DSDT, Patches? Change XHCI to XHC?

Thanks for your help.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,929
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Okay that's fine mate. Just making sure as I've never seen anything like it before. Quick question. For XHCI can I renaming it by using ACPI,DSDT, Patches? Change XHCI to XHC?

Thanks for your help.
Native DSDT has XHC named XHC already. No need for any rename regarding it.
 
Joined
Jun 9, 2013
Messages
10,809
Motherboard
Gigabyte GA-H77N-WIFI
CPU
i7-3770
Graphics
HD 4000
Mac
MacBook, Mac mini
Mobile Phone
Android
Joined
Jun 9, 2013
Messages
10,809
Motherboard
Gigabyte GA-H77N-WIFI
CPU
i7-3770
Graphics
HD 4000
Mac
MacBook, Mac mini
Mobile Phone
Android
Native DSDT has XHC named XHC already. No need for any rename regarding it.
Hi Rehabman. Could you check my work please mate.
 

Attachments

Joined
Jun 9, 2013
Messages
10,809
Motherboard
Gigabyte GA-H77N-WIFI
CPU
i7-3770
Graphics
HD 4000
Mac
MacBook, Mac mini
Mobile Phone
Android
Native DSDT has XHC named XHC already. No need for any rename regarding it.
Hi mate. Ive pretty much done all the SSDT all working except from GFX0. Im currently stuck on it.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,929
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Hi mate. Ive pretty much done all the SSDT all working except from GFX0. Im currently stuck on it.
Look at the diffs between patched and native. It is pretty easy to see the _DSM method and HDAU device that was added.
 
Top