Contribute
Register

[Guide] Using Clover to "hotpatch" ACPI

Hi, Rehabman. Thank you for this informative guide.
I have a question that how can I remove unwanted device by using hotpatch. For example, I want to remove Device WTBT which has _HID, "PNP0C14". I tried to rename _HID to XHID and _STA to XSTA with tgtbridge "WTBT", and the device is not shown in IORegExplorer.
I am not sure what I did is appropriate.
No "Problem Reporting" files attached.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
 
No "Problem Reporting" files attached.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
Here it is. From a real MacBookPro14,1's DSDT, I see that HPET's _STA value is zero, so I also set zero by using hotpatch to disable HPET. And I read that WMI (PNP0C14)devices are for Windows driver mapping(https://technet.microsoft.com/zh-cn/dn614028(v=vs.94)), so I set _STA to zero to disable them as well in SSDT-PNP0C14. I am not sure my method to disable them is correct or not.
 

Attachments

  • Trouble Shooting.zip
    4.9 MB · Views: 118
  • SSDT-PNP0C14.dsl
    1,015 bytes · Views: 97
  • MacBook Pro-14.1.acpi
    74.5 KB · Views: 105
Here it is. From a real MacBookPro14,1's DSDT, I see that HPET's _STA value is zero,

Certainly an interesting fact.
Just for those reading along, here is the relevant code:
Code:
                Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))  // _HID: Hardware ID
                    Name (_CID, EisaId ("PNP0C01"))  // _CID: Compatible ID
...
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        If (OSDW ())
                        {
                            Return (Zero)
                        }
...
                    }

so I also set zero by using hotpatch to disable HPET.

Method to be used:
- rename HPET._STA to XSTA
- provide SSDT that replaces with Name(_SB.PCI0.LPCB.HPET._STA, 0)

And I read that WMI (PNP0C14)devices are for Windows driver mapping(https://technet.microsoft.com/zh-cn/dn614028(v=vs.94)), so I set _STA to zero to disable them as well in SSDT-PNP0C14. I am not sure my method to disable them is correct or not.

No real need to disable the WMI stufff...
 
Method to be used:
- rename HPET._STA to XSTA
- provide SSDT that replaces with Name(_SB.PCI0.LPCB.HPET._STA, 0)



No real need to disable the WMI stufff...
Thank you for advice. I added back WMI device and renamed HPET._STA to XSTA by using TgtBridge. However, I found that all my OEM SSDT's _STA were renamed to XSTA...(For example in SSDT-1, SKC0 device) I don't know the reason. Here's the trouble shooting file.
 

Attachments

  • Trouble Shooting 2.zip
    5 MB · Views: 156
  • System SSDT-1.dsl
    74.5 KB · Views: 85
Thank you for advice. I added back WMI device and renamed HPET._STA to XSTA by using TgtBridge. However, I found that all my OEM SSDT's _STA were renamed to XSTA...(For example in SSDT-1, SKC0 device) I don't know the reason. Here's the trouble shooting file.

TgtBridge is kind of buggy.
Find a different way to target just HPET._STA.
 
TgtBridge is kind of buggy.
Find a different way to target just HPET._STA.
Could you provide more hints? So sorry that I haven't come up with another idea to target HPET.
 

Attachments

  • config.plist
    1.8 KB · Views: 265
  • SSDT-ETPD.aml
    239 bytes · Views: 220
you can look at mine attached to give you an idea, these won't work as is, you will have to amend to your hardware

I have these in my config file but no effect
 
Back
Top