Contribute
Register

[Guide] Using Clover to "hotpatch" ACPI

Since yours is an HP notebook, why don't you follow this guide?
 
Since yours is an HP notebook, why don't you follow this guide?
Thank you, not what I’m looking for! I already have almost everything working (except Thunderbolt Hot Plug), but was really looking to “finish” with some post install things my HP Spectre with the ability to hotpatch the battery on the fly... with no need to modify the DSDT.aml for this purpose. Hence the question :)
 
I understand you means to rename and replace 'Method (_CRS' in TPD1 device (like your ETPD), but how to find that code about "_SB.PCI0.I2C0.TPD1", I only find "14 33 5F 43 52 53 00" to do with "_CRS" in DSDT.lst file.
Code:
   15550:              Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings

0000DBBB:  14 33 5F 43 52 53 00 ...    ".3_CRS."
Same difficult here. Tried to follow Feartech guidance but didn't succeed.

I know that my I2C device (trackpad) is TPD0, but can't understand the HEX code from Feartech to make my custom patch. Tried a patched DSDT before but BigSur / Opencore boot hangs near the middle of loading bar.

Thanks
 
I believe there is an error here unless someone can explain why. I don't see B1C3 being accessed anywhere in the DSDT, its just located in the EmbeddedControl why is it being broken down into 8 bits each YC30 and YC31?
Offset (0xDE),
B1TM, 16,
B1C1, 16,
B1C2, 16,
B1C3, 16,
B1C4, 16,
 
Last edited:
For example, the native _SB.PCI0.EHC1._PRW method might read:
Code:
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x6D, 0x03))
}
In order to patch it so USB devices on EHCI#1 cannot cause wake, it would be changed:
Code:
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x6D, 0))
}
When you turn off the port on which the card reader (Realtek) hangs, BigSur sleeps and wakes up perfectly.
In DSDT, this port is located along the path "_SB.PCI0.EH02.HUBN.PR01.PR14".
For the entire EH02 device, the following method is prescribed:
Code:
Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
            {
                Return (GPRW (0x0D, 0x04))
            }
Is it possible to load the "nulled" _PRW method specifically for the PR14 port through the SSDT table so that it cannot wake up the system?
Something like this:
Code:
DefinitionBlock ("", "SSDT", 2, "DRTNIA", "GPRW", 0x00000000)
{
    External (_SB_.PCI0.EH02.HUBN.PR01.PR14, DeviceObj)
    External (_SB_.PCI0.EH02.HUBN.PR01.PR14.XPRW, IntObj)

    Scope (_SB.PCI0.EH02.HUBN.PR01.PR14)
    {
            Method (GPRW, 2, NotSerialized)
    {
        If (_OSI ("Darwin"))
        {
            If ((0x6D == Arg0))
            {
                Return (Package (0x02)
                {
                    0x6D,
                    Zero
                })
            }

            If ((0x0D == Arg0))
            {
                Return (Package (0x02)
                {
                    0x0D,
                    Zero
                })
            }
        }

        Return (Zero)
        }

        Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
            {
                Return (GPRW (0x0D, 0))
            }
    }
}
It is not advisable to completely disable USB wakeup via SSDT-GPRW.aml.
My knowledge of ACPI is extremely poor, so don't laugh too much.)))
Hackintosh: Intel Core i3-3120M | Zotac ZBox ID83, Intel Panther Point HM76 | HD4000 | OpenCore 0.9.5 | BigSur 11.7.9. (20G1426)
 

Attachments

  • DSDT.dsl.zip
    27 KB · Views: 16
Last edited:
Back
Top