Contribute
Register

[solved] ACPI exceptions and errors with recompiled DSDT on GA-Z170X-Designare

Status
Not open for further replies.
Joined
Jun 20, 2013
Messages
15
Motherboard
Gigabyte GA-Z170X-Designare
CPU
Intel i7 6700K
Graphics
GeForce GTX 750 Ti | Intel HD530
Mobile Phone
  1. iOS
Hello everybody. During setup of new Skylake build I decided to make some changes like GFX0->IGPU renaming in DSDT. I downloaded latest iasl from RehabMan's bitbucket repo, dumped stock ACPI tables using Clover and started to work. The problem is that even when I try to use mostly unchanged DSDT (made only 1 fix to make its compilation possible), ACPI exceptions and errors occur in kernel log.
Code:
kernel: (AppleACPIPlatform) ACPI Error:
2017-04-05 08:21:08.961785+0300 0x70       Default     0x0                  0      kernel: (AppleACPIPlatform) Method parse/execution failed
2017-04-05 08:21:08.964915+0300 0x70       Default     0x0                  0      kernel: (AppleACPIPlatform) [\_SB_.GINF] (Node ffffff802f309710)
2017-04-05 08:21:08.966816+0300 0x70       Default     0x0                  0      kernel: (AppleACPIPlatform) , AE_AML_PACKAGE_LIMIT
2017-04-05 08:21:08.968987+0300 0x70       Default     0x0                  0      kernel: (AppleACPIPlatform)  (20140828/psparse-270)
System:
iMac17,1 sysdef
Core i7 6700K with HD 530
GA-Z170X-Designare, F22 bios
Clover rev 4048
OS: macOS 10.12.3

I've attached an archive with DSDTs: stock ACPI tables obtained using Clover; disassembled using
Code:
iasl -da DSDT.aml SSDT*.aml
fixed DSDT; and one compiled from fixed .dsl using
Code:
iasl DSDT.dsl
Besides that I also attach kernel.log that shows ACPI exceptions as well as my Clover config with MLB and Serial Number replaced with 1.
 

Attachments

  • dsdt.zip
    259.5 KB · Views: 112
  • config.plist
    4.4 KB · Views: 255
  • kernel log.txt
    170.9 KB · Views: 526
Hello everybody. During setup of new Skylake build I decided to make some changes like GFX0->IGPU renaming in DSDT. I downloaded latest iasl from RehabMan's bitbucket repo, dumped stock ACPI tables using Clover and started to work. The problem is that even when I try to use mostly unchanged DSDT (made only 1 fix to make its compilation possible), ACPI exceptions and errors occur in kernel log.
Code:
kernel: (AppleACPIPlatform) ACPI Error:
2017-04-05 08:21:08.961785+0300 0x70       Default     0x0                  0      kernel: (AppleACPIPlatform) Method parse/execution failed
2017-04-05 08:21:08.964915+0300 0x70       Default     0x0                  0      kernel: (AppleACPIPlatform) [\_SB_.GINF] (Node ffffff802f309710)
2017-04-05 08:21:08.966816+0300 0x70       Default     0x0                  0      kernel: (AppleACPIPlatform) , AE_AML_PACKAGE_LIMIT
2017-04-05 08:21:08.968987+0300 0x70       Default     0x0                  0      kernel: (AppleACPIPlatform)  (20140828/psparse-270)
System:
iMac17,1 sysdef
Core i7 6700K with HD 530
GA-Z170X-Designare, F22 bios
Clover rev 4048
OS: macOS 10.12.3

I've attached an archive with DSDTs: stock ACPI tables obtained using Clover; disassembled using
Code:
iasl -da DSDT.aml SSDT*.aml
fixed DSDT; and one compiled from fixed .dsl using
Code:
iasl DSDT.dsl
Besides that I also attach kernel.log that shows ACPI exceptions as well as my Clover config with MLB and Serial Number replaced with 1.

You should use "-dl" to disassemble in old style (not C-style).
C-style not reliable enough...
What was the "one fix" you mention?
I assume the only thing you're doing is placing DSDT.aml into ACPI/patched?
And you're certain the ACPI exception does not happen without DSDT.aml in ACPI/patched.
Make sure you didn't change any BIOS options, no hardware changes, no BIOS upgrade since you extracted your DSDT (otherwise SystemMemory regions may be out-of-sync, and you have to re-extract)
 
Last edited:
You should use "-dl" to disassemble in old style (not C-style).
C-style not reliable enough...
What was the "one fix" you mention?
I assume the only thing you're doing is placing DSDT.aml into ACPI/patched?
And you're certain the ACPI exception does not happen without DSDT.aml in ACPI/patched.
Make sure you didn't change any BIOS options, no hardware changes, no BIOS upgrade since you extracted your DSDT (otherwise SystemMemory regions may be out-of-sync)

Thank you for reply.
There were absolutely no BIOS updates or settings changes between test runs. As soon as I remove DSDT.aml from ACPI/patched folder and remove DSDT name from Clover config so that macOS uses stock DSDT, there will be no ACPI exceptions in kernel log.
The fix that I mention is removal of line
Code:
    External (BNUM, UnknownObj)    // (from opcode)
to fix error
Code:
312, 6074, Name already exists in scope (BNUM)
I've attached both original and fixed .dsl so everyone can take a look.
I will try "-dl" option and report result soon.
 
Thank you for reply.
There were absolutely no BIOS updates or settings changes between test runs. As soon as I remove DSDT.aml from ACPI/patched folder and remove DSDT name from Clover config so that macOS uses stock DSDT, there will be no ACPI exceptions in kernel log.
The fix that I mention is removal of line
Code:
    External (BNUM, UnknownObj)    // (from opcode)
to fix error
Code:
312, 6074, Name already exists in scope (BNUM)
I've attached both original and fixed .dsl so everyone can take a look.
I will try "-dl" option and report result soon.

Note that if you're only trying to rename GFX0->IGPU, it is much easier to use config.plist/ACPI/DSDT/Patches for that...
 
Note that if you're only trying to rename GFX0->IGPU, it is much easier to use config.plist/ACPI/DSDT/Patches for that...
I know, this is an approach that I use right now before the source of problem with DSDT/SSDT patching will be identified.
Unfortunately, "-dl" option didn't help. Even thought resulting aml is slightly different from one, compiled from C-style dsl, there are once again many ACPI errors in kernel log. I've attached new kernel log.
 

Attachments

  • kernel log old style dsl.txt
    172.1 KB · Views: 297
I know, this is an approach that I use right now before the source of problem with DSDT/SSDT patching will be identified.
Unfortunately, "-dl" option didn't help. Even thought resulting aml is slightly different from one, compiled from C-style dsl, there are once again many ACPI errors in kernel log. I've attached new kernel log.

Let's see what you're really doing...
Read FAQ, "Problem Reporting"
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
 

Attachments

  • Diag info.zip
    2 MB · Views: 86
Attached Clover folder, ioreg, kernel log, output of kextcache and kextstat commands and patchmatic output.

Why are the file timestamps on ACPI/origin files prior to the file timestamps on ACPI/patched.
If you had pressed F4 as requested, the timestamps would be later than your patched files...
Please recollect EFI/Clover after pressing F4 in Clover, as per request in "Problem Reporting".
Thanks.

Please note that your SystemMemory addresses do not match:
Code:
SPEEDY-NUC:ACPI rehabman$ diff origin/DSDT.dsl patched/DSDT.dsl|grep SystemMemory
<     OperationRegion (GNVS, SystemMemory, 0x7E76C000, 0x06D5)
>     OperationRegion (GNVS, SystemMemory, 0x9E770000, 0x06D5)
<                 OperationRegion (CPSB, SystemMemory, 0x7DF28F98, 0x10)
>                 OperationRegion (CPSB, SystemMemory, 0x9DF2CF98, 0x10)

Also, PNVB is used as a SystemMemory address:
Code:
SPEEDY-NUC:ACPI rehabman$ diff origin/DSDT.dsl patched/DSDT.dsl|grep PNVB
<     Name (PNVB, 0x7E7A2018)
>     Name (PNVB, 0x9E7A6018)

Also, there are no functional patches in your ACPI/patched/DSDT.aml, so I'm not sure why you're even doing it...
You already have the GFX0->IGPU rename in config.plist.
No need to patch unless you have other things you want to fix that are not easily accomplished with config.plist.

What are you trying to accomplish?
 
Last edited:
The timestamp difference was caused by wrong time in BIOS, I can re-upload dumped ACPI tables in Clover folder, but they will be the same as one that I provided earlier.
Yes, there are no functional patches right now in DSDT as my intention was to create minimal example that would demonstrate the issue with ACPI exceptions. In the end, I want to move all patches from Clover to DSDT/SSDT, but can't do it before the source of exceptions will be eliminated.
Address mismatch is a good point. Guess I need to do decompilation one more time from stock ACPI tables and check addresses.
 
Address mismatch is a good point. Guess I need to do decompilation one more time from stock ACPI tables and check addresses.

It means you need to re-extract, not just disassemble.
You need to re-extact/re-patch after any of the following:
- BIOS updates
- BIOS option changes
- hardware changes

No reason to "move all patches" to ACPI/patched. It is better to accomplish patches via Clover if possible (for the reason stated above regarding re-extract/re-patch as it relates to SystemMemory address mobility).
 
Status
Not open for further replies.
Back
Top