Contribute
Register

[Guide] Using Clover to "hotpatch" ACPI

Hello Rehabman.

I got a mess with patch some same thing in DSDT such as RPXX.

I just want to change RP09::pXSX to RP09::SSD0 but i cant.

Here are the DSDT patch txt.
https://github.com/syscl/XPS9350-macOS/blob/master/DSDT/patches/syscl_SSD.txt.

I create an SSDT-SSD0.aml with RP09.SSD0 and with no wrong but when i want to change RP09.PXSX to RP09.XXXX,i am couriously.

If i want to load my SSDT-SSD0.aml the original RP09.PXSX must be disabled but i have found all the RPXX from RP09 to RP14 have same structure with no difference so if i simplily change PXSX to XXXX then all the RPXX devices are disabled and cant boot into the macOS.

So i want to change the RP09 to RPXX directly and create an SSDT-RP09.aml and with no error and changed all the RP09.PXSX to RP09.SSD0 but when i open the ioreg i found it still load RPXX not RP09 it means no matter i change RP09 to what it still load the original RP Device and i tried rename RP09 to XXXX it still load XXXX than SSDT-RP09 device.

I think it may be related with PXSX.If the device have PXSX device no matter what name the device named it still can be load by macOS but due to the same structure about RP devices so i cant have wany to change RP09.PXSX to RP09.SSD0.

If you have some idea to change the RP09.PXSX to RP09.SSD0 var hotpatch please teach me.

Thanks very much and forgive my poor english.
 
Hello Rehabman.

I got a mess with patch some same thing in DSDT such as RPXX.

I just want to change RP09::pXSX to RP09::SSD0 but i cant.

Here are the DSDT patch txt.
https://github.com/syscl/XPS9350-macOS/blob/master/DSDT/patches/syscl_SSD.txt.

I create an SSDT-SSD0.aml with RP09.SSD0 and with no wrong but when i want to change RP09.PXSX to RP09.XXXX,i am couriously.

If i want to load my SSDT-SSD0.aml the original RP09.PXSX must be disabled but i have found all the RPXX from RP09 to RP14 have same structure with no difference so if i simplily change PXSX to XXXX then all the RPXX devices are disabled and cant boot into the macOS.

So i want to change the RP09 to RPXX directly and create an SSDT-RP09.aml and with no error and changed all the RP09.PXSX to RP09.SSD0 but when i open the ioreg i found it still load RPXX not RP09 it means no matter i change RP09 to what it still load the original RP Device and i tried rename RP09 to XXXX it still load XXXX than SSDT-RP09 device.

I think it may be related with PXSX.If the device have PXSX device no matter what name the device named it still can be load by macOS but due to the same structure about RP devices so i cant have wany to change RP09.PXSX to RP09.SSD0.

If you have some idea to change the RP09.PXSX to RP09.SSD0 var hotpatch please teach me.

Thanks very much and forgive my poor english.

It is not necessary to rename PXSX.
 
Something wrong with my Clover folder, but I can't figure it out. When I boot macOS without DSDT.aml file, everything works fine, however, when I tried to boot with DSDT file, I got a panic "ACPI: PCI0.LPC.EC__ ....". The DSDT file only patched battery for W550s and insert D

I tried to remove DSDT patch for "EC0 to EC__" in config.plist but nothing changed

I uploaded my clover folder and DSDT file, hope you can help me check them.
 

Attachments

  • CLOVER.zip
    2.5 MB · Views: 89
  • DSDT.aml
    63.9 KB · Views: 132
Something wrong with my Clover folder, but I can't figure it out. When I boot macOS without DSDT.aml file, everything works fine, however, when I tried to boot with DSDT file, I got a panic "ACPI: PCI0.LPC.EC__ ....". The DSDT file only patched battery for W550s and insert D

I tried to remove DSDT patch for "EC0 to EC__" in config.plist but nothing changed

I uploaded my clover folder and DSDT file, hope you can help me check them.

You have a huge number of binary patches (config.plist/ACPI/DSDT/Patches).
It is likely recompilation of your DSDT will break the patches due to the differences (optimizations) in newer iasl.
You will need to check each one, or you could compile without optimizations (see iasl options).
 
You have a huge number of binary patches (config.plist/ACPI/DSDT/Patches).
It is likely recompilation of your DSDT will break the patches due to the differences (optimizations) in newer iasl.
You will need to check each one, or you could compile without optimizations (see iasl options).
Thanks a lot. Removed useless/conflict patches and problem solved.
 
Introduction
Tips for complex Rename and Replace

This section will detail some of the techniques and procedures used for battery patching.[/code]
I try to test.dsl according to IASL -l, the test.lst method to find differences in the patch before and after fix_PARSEOP_ZERO_agressive.txt file but failed. Unable to get to hex! In addition to the direct use of MaciASL fix_PARSEOP_ZERO_agressive.txt to the patch, there are in the clover Find-Replace Zero to eliminate the mistake?
 

Attachments

  • origin.zip
    54.1 KB · Views: 67
  • 1.png
    1.png
    145.9 KB · Views: 129
  • Zero.png
    Zero.png
    137.3 KB · Views: 134
I try to test.dsl according to IASL -l, the test.lst method to find differences in the patch before and after fix_PARSEOP_ZERO_agressive.txt file but failed. Unable to get to hex! In addition to the direct use of MaciASL fix_PARSEOP_ZERO_agressive.txt to the patch, there are in the clover Find-Replace Zero to eliminate the mistake?

No need to fix PARSEOP_ZERO problem or any other syntax related fix.
With hotpatch, you're concerned only with functional patching.
 
I can understand: you can ignore the Zero error, you can not extract any DSDT and SSDTs files, borrow the hottatch SSDT file directly, and modify the rename in config to prevent naming repetition
 
I can understand: you can ignore the Zero error, you can not extract any DSDT and SSDTs files, borrow the hottatch SSDT file directly, and modify the rename in config to prevent naming repetition

Is that a question?
If so, I don't understand it.
 
Sorry, my English is poor. I don't know how to express what I mean!
I have some features that are occasionally dysfunctional and I don't want to extract the original ACPI file to see if this problem can be reduced, but the original DSDT is wrong and I'm not sure if this error will affect the entire system
In your tutorial on fixing DSDT, you mentioned that you want to fix bugs, warnings, and optimizations!
 
Back
Top