Jump to content

help with dsdt (over 200 errors) can't compile


Sbrillo
 Share

25 posts in this topic

Recommended Posts

hi guys! I've extracted dsdt from my laptop with clover, i opened it with MaciASL and tryin to compile.. I've got over 200 errors!

I'm trying to fix it but i have 201 errors left to fix it?

need a little help to understand

Correct disassembly is important.

 

Disassemble with SSDTs as context. Extract all OEM SSDTs and DSDT.

 

Then disassemble:

iasl -da -dl *.aml
Link to comment
Share on other sites

Hi,

 

No patches applied yet. 

Make sure you set ACPI 5.0 in the preferences of MacIASL.

hi, thank you for posting very quickly. 

Correct disassembly is important.

 

Disassemble with SSDTs as context. Extract all OEM SSDTs and DSDT.

 

Then disassemble:

iasl -da -dl *.aml

done. now i can compile and patch my dsdt. thank you

Link to comment
Share on other sites

guys, need a patch for disable nvidia video card...

Read this thread: http://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/

 

Condensed instructions:

- find the SSDT that contains _OFF for your discrete card

- call _OFF from the associated _INI

Link to comment
Share on other sites

Read this thread: http://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/

 

Condensed instructions:

- find the SSDT that contains _OFF for your discrete card

- call _OFF from the associated _INI

 

 

found ssdt. now like the guide in that thread, i insert the OFF method before the _wak method and then call it in _wak and ini method?

 

this is the off method:

Method (_OFF, 0, Serialized)  // _OFF: Power Off

        {
            \_SB.PCI0.LPCB.EC0.SPIN (0x09, 0x04, Zero, If (LNotEqual (GPRF, One))
                {
                    Store (VGAR, VGAB)
                    Store (SIDR, SIDB)
                }, Store (One, LNKD), While (LNotEqual (LNKS, 
                        Zero))
                {
                    Sleep (One)
                }, Store (0x02, AFES))
            \_SB.PCI0.LPCB.EC0.SGTH (Zero)
            SGPO (HLRS, One)
            SGPO (PWEN, Zero)
            Return (Zero)
        }
Link to comment
Share on other sites

after several tries, still i can't get off nvidia card.. i found the _OFF method. By follow this guide you linked, i insert _OFF method and then i call it in _WAK and _INI. I also add object at top of dsdt because when compile, maciasl gave me errors. insert this dsdt in patches folder store in EFI/CLOVER/ACPI and reboot. nothing change. go to system information and the nvidia card still here!

Link to comment
Share on other sites

found ssdt. now like the guide in that thread, i insert the OFF method before the _wak method and then call it in _wak and ini method?

I don't recommend moving code between files.

 

Just patch the SSDT and or DSDT to call the method and include the patched SSDTs.

 

this is the off method:

Method (_OFF, 0, Serialized)  // _OFF: Power Off

        {

            \_SB.PCI0.LPCB.EC0.SPIN (0x09, 0x04, Zero, If (LNotEqual (GPRF, One))

                {

                    Store (VGAR, VGAB)

                    Store (SIDR, SIDB)

                }, Store (One, LNKD), While (LNotEqual (LNKS, 

                        Zero))

                {

                    Sleep (One)

                }, Store (0x02, AFES))

            \_SB.PCI0.LPCB.EC0.SGTH (Zero)

            SGPO (HLRS, One)

            SGPO (PWEN, Zero)

            Return (Zero)

        }

You can tell right away it accesses the EC. The EC cannot be accessed from _INI (it is not ready, refer to ACPI spec).

 

So you'll need to call from _REG in DSDT.

 

There are some patches in my repo you might find interesting: https://github.com/RehabMan/Laptop-DSDT-Patch

Link to comment
Share on other sites

I don't recommend moving code between files.

 

Just patch the SSDT and or DSDT to call the method and include the patched SSDTs.

 

 

You can tell right away it accesses the EC. The EC cannot be accessed from _INI (it is not ready, refer to ACPI spec).

 

So you'll need to call from _REG in DSDT.

 

There are some patches in my repo you might find interesting: https://github.com/RehabMan/Laptop-DSDT-Patch

alleluja!! it worked!!!

 

but now fan is always at full speed (PC temperature is good), why?

 

i use your _reg patch with dsdt and put only patched dsdt on clover folder

Link to comment
Share on other sites

alleluja!! it worked!!!

 

but now fan is always at full speed (PC temperature is good), why?

Did you follow all guidelines for patching DSDT/SSDTs?

- renames balanced

- no duplicates (eg. Drop OEM SSDT for each patched SSDT included)

- SSDTs loaded in original order

- no duplicate methods (eg. _DSM at same path in multiple files)

 

Did you implement CPU power management?

Link to comment
Share on other sites

Did you follow all guidelines for patching DSDT/SSDTs?

- renames balanced

- no duplicates (eg. Drop OEM SSDT for each patched SSDT included)

- SSDTs loaded in original order

- no duplicate methods (eg. _DSM at same path in multiple files)

 

Did you implement CPU power management?

 

i patched only DSDT, all OEM SSDT are still in original folder.

 

i didn't implement cpu power management yet. For now i have only two states: 12, 24 

2.4 ghz in idle. 

 

smbios is macbook pro 9,2 half 2012 (my laptop is an ivy bridge i7)

used your guide and config.plist from another site.

Link to comment
Share on other sites

i patched only DSDT, all OEM SSDT are still in original folder.

What do you mean "in original folder"? You mean you placed unpatched files in ACPI/patched (assuming Clover, using DropOem=true). Or you have no SSDTs in ACPI/patched (and DropOem=false).

 

And what patches have you applied to DSDT. Note that certain patches automatically imply patches required to SSDTs (renames... for example GFX0->IGPU rename).

 

i didn't implement cpu power management yet. For now i have only two states: 12, 24 

2.4 ghz in idle.

It should be one of the first things you do...

Link to comment
Share on other sites

What do you mean "in original folder"? You mean you placed unpatched files in ACPI/patched (assuming Clover, using DropOem=true). Or you have no SSDTs in ACPI/patched (and DropOem=false).

 

And what patches have you applied to DSDT. Note that certain patches automatically imply patches required to SSDTs (renames... for example GFX0->IGPU rename).

 

 

It should be one of the first things you do...

sorry, i mean origin folder, i have extracted ssdts and dsdt with clover (F4). In patched folder i have only the dsdt that i've patched with patch graphics_REG-disable.txt

 

i follow a guide to implement native power management. So i downloaded ssdtPRgen.sh, launch it on terminal and generate my ssdt, then put it on patched folder, downloaded aicpmpatch and patched applepowermanagement.kext, then reboot and i have frequency blocked at 800 mhz with fan also blocked at medium speed.

without patch and patched ssdt i have frequency at 2.4 ghz (max without turbo speed)

Link to comment
Share on other sites

sorry, i mean origin folder, i have extracted ssdts and dsdt with clover (F4). In patched folder i have only the dsdt that i've patched with patch graphics_REG-disable.txt

And I assume you have DropOem=false. And dropping no tables in DropTables?

 

i follow a guide to implement native power management. So i downloaded ssdtPRgen.sh, launch it on terminal and generate my ssdt, then put it on patched folder, downloaded aicpmpatch and patched applepowermanagement.kext, then reboot and i have frequency blocked at 800 mhz with fan also blocked at medium speed.

without patch and patched ssdt i have frequency at 2.4 ghz (max without turbo speed)

No need for patched kexts with Clover. Just use the appropriate config.plist options (refer to Clover wiki).

 

No such thing as ApplePowerManagement.kext, so not sure what you're referring to there.

 

Make sure you placed a *compiled* ssdt in ACPI/patched, not just text.

 

Note also:

- you could try calling _PS3 instead of _OFF

- you could try splitting the parts of _OFF (EC access goes in _REG, rest is called from _INI)

Link to comment
Share on other sites

And I assume you have DropOem=false. And dropping no tables in DropTables?

 

 

No need for patched kexts with Clover. Just use the appropriate config.plist options (refer to Clover wiki).

 

No such thing as ApplePowerManagement.kext, so not sure what you're referring to there.

 

Make sure you placed a *compiled* ssdt in ACPI/patched, not just text.

 

Note also:

- you could try calling _PS3 instead of _OFF

- you could try splitting the parts of _OFF (EC access goes in _REG, rest is called from _INI)

i follow this guide for powermanagement

now trying to do what you tell me in this post

 

edit: i patched ssdt with ssdtprgen.sh and put it in ACPI/patched but result is the same, frequency blocked at 800 mhz (this is good for battery performance)

Link to comment
Share on other sites

i follow this guide for powermanagement

now trying to do what you tell me in this post

 

edit: i patched ssdt with ssdtprgen.sh and put it in ACPI/patched but result is the same, frequency blocked at 800 mhz (this is good for battery performance)

Post ioreg with IORegistryExplorer v2.1.

 

And...

 

Download patchmatic: https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-patchmatic-2015-0107.zip

Extract the 'patchmatic' binary from the ZIP. Copy it to /usr/bin, such that you have the binary at /usr/bin/patchmatic.

 

In terminal,

rm -R ~/Downloads/RehabMan
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract
Post contents of Downloads/RehabMan directory (as ZIP).

 

And output from:

kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
Also, what version of OS X?
Link to comment
Share on other sites

Post ioreg with IORegistryExplorer v2.1.

 

And...

 

Download patchmatic: https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-patchmatic-2015-0107.zip

Extract the 'patchmatic' binary from the ZIP. Copy it to /usr/bin, such that you have the binary at /usr/bin/patchmatic.

 

In terminal,

rm -R ~/Downloads/RehabMan
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract
Post contents of Downloads/RehabMan directory (as ZIP).

 

And output from:

kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
Also, what version of OS X?

 

10.10

 

output from kextstat|grep -y acpiplat:

13    2 0xffffff7f82384000 0x65000    0x65000    com.apple.driver.AppleACPIPlatform (3.1) <12 11 7 6 5 4 3 1>

 

output from kextstat|grep -y appleintelcpu:

22    0 0xffffff7f82262000 0x2b000    0x2b000    com.apple.driver.AppleIntelCPUPowerManagement (218.0.0) <7 6 5 4 3 1>

30    0 0xffffff7f8225d000 0x3000     0x3000     com.apple.driver.AppleIntelCPUPowerManagementClient (218.0.0) <7 6 5 4 3 1>

 

 

Archivio.zip

Link to comment
Share on other sites

10.10

 

output from kextstat|grep -y acpiplat:

13    2 0xffffff7f82384000 0x65000    0x65000    com.apple.driver.AppleACPIPlatform (3.1) <12 11 7 6 5 4 3 1>[/size]

 

output from kextstat|grep -y appleintelcpu:

22    0 0xffffff7f82262000 0x2b000    0x2b000    com.apple.driver.AppleIntelCPUPowerManagement (218.0.0) <7 6 5 4 3 1>

30    0 0xffffff7f8225d000 0x3000     0x3000     com.apple.driver.AppleIntelCPUPowerManagementClient (218.0.0) <7 6 5 4 3 1>

Power management is not implemented correctly. The ioreg shows X86PlatformPlugin is not loaded.

 

It is not loaded because:

- there is no generated SSDT.aml being loaded by the bootloader (I check the bootlog).

- in fact, no files in ACPI/patched

- the Clover generated SSDTs are not effective because the corresponding OEM tables are not being dropped

 

Hence why you're stuck at x8.

Link to comment
Share on other sites

Power management is not implemented correctly. The ioreg shows X86PlatformPlugin is not loaded.

 

It is not loaded because:

- there is no generated SSDT.aml being loaded by the bootloader (I check the bootlog).

- in fact, no files in ACPI/patched

- the Clover generated SSDTs are not effective because the corresponding OEM tables are not being dropped

 

Hence why you're stuck at x8.

now, i disabled nvidia, generated again ssdt and put it on ACPI/Patched, add DropOem on config.plist and now power management seems to work a little better (idle 1.2 ghz, max 3.4), but it seems to be too quick to reach max frequency, too much throttling i guess. The full speed fan problem remains

Link to comment
Share on other sites

now, i disabled nvidia, generated again ssdt and put it on ACPI/Patched, add DropOem on config.plist and now power management seems to work a little better (idle 1.2 ghz, max 3.4), but it seems to be too quick to reach max frequency, too much throttling i guess. The full speed fan problem remains

Note my reply regarding _OFF splitting between _REG and _INI.

 

Not sure what you mean by "too quick to reach max frequency".

Link to comment
Share on other sites

Note my reply regarding _OFF splitting between _REG and _INI.

 

Not sure what you mean by "too quick to reach max frequency".

i'm on it.

 

well, if i refresh a page on safari, frequency jump to 2.80 ghz, 2.90 and stay here for a few second.. 

Link to comment
Share on other sites

...

well, if i refresh a page on safari, frequency jump to 2.80 ghz, 2.90 and stay here for a few second..

Sounds normal/expected. As long as the CPU is busy, it should run at full speed as the task will complete in shorter time.

Link to comment
Share on other sites

 Share

×
×
  • Create New...