Jump to content

The hardest dsdt to decipher ever seen? No Sleep for TRX40 Asrock Creator Users


driftwood
 Share

10 posts in this topic

Recommended Posts

In need of a magician to help here. Not even Asrock Support could decipher their own devices in their dsdt.

 

I got an Asrock TRX40 Creator, and like other Creator users everything working well, USBMapped all good, BIOS setup how it should be, everything works great, apart from Sleep. None of us can get our mobo to sleep.

When Sleep is initiated. it begins to sleep, monitors off and goes black, Front panel LED flashing away as it writes out, then after 30 seconds-ish it clicks off and clicks back on again, and loops. After the first Loop you are locked out and are forced to switch off computer.

 

Here, is my log show --style syslog | fgrep "Wake reason" reason:-

ALWAYS shows:- 

2021-10-10 21:48:57.651568+0100  localhost kernel[0]: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: D0A1 D0A2 D0A3 D0A4 D0A5 D0A6 D0A7 D0B0 D0B1 D0B2 D0B3 D0B4 D0B5 D0B6 D0B7 D1A0 D1A1 D1A2 D1A3 D1A4 D1A5 D1A6 D1A7 D1B1 D1B2 D

 

Analysing the dsdt shows these are Power Resources for Wake.

 

Here's the dsdt with Above 4G set. (Above 4G disabled gives same results), plus, ioreg, plus System Information (About this Mac)

 

Can anyone shed any light?

 

 

          dsdt_4G_ENABLE.aml.z

ioreg Asrock TRX40 Creator Driftwood Mac Pro .zip

Asrock TRX40 Creator Mac Pro 7,1 - Driftwood.zip

Edited by driftwood
Added About This Mac
Link to comment
Share on other sites

Not everything is in the DSDT. On Intel platforms I've seen a good part of CPU power management is in sidecar SSDT-#.aml and OEM-#.aml files. You should post the full ACPI tables (SysReport folder from OpenCore) for a complete picture.

 

Is there any ACPI error, or a table failing to load, during boot?

Edited by etorix
additional question
Link to comment
Share on other sites

I let it go overnight (beyond the click on/off). It was locked out, no way of waking it. Hard Reset/powerdowmn. Rebootedand on getting back into OS saw this message if it helps!?

 

panic(cpu 24 caller 0xffffff801a2613ca): Wake transition timed out after 180 seconds while calling power state change callbacks. Suspected bundle: com.apple.iokit.IOGraphicsFamily. Thread 0x1a99c.
Failure code:: 0x00000002 00000027

Backtracing specified thread
Backtrace (CPU 24), Frame : Return Address
0xffffffc4ed963848 : 0xffffff8019bbf66b mach_kernel : _machine_switch_context + 0xcb
0xffffffa4cc053b90 : 0xffffff8019ab1dc2 mach_kernel : _thread_unstop + 0x17d2
0xffffffa4cc053c00 : 0xffffff8019ab055f mach_kernel : _thread_block_reason + 0xaf
0xffffffa4cc053c50 : 0xffffff8019bbc636 mach_kernel : _lck_mtx_lock_wait_x86 + 0x146
0xffffffa4cc053c90 : 0xffffff8019bbbe9b mach_kernel : _lck_mtx_lock_slow + 0x1cb
0xffffffa4cc053cc0 : 0xffffff7fb494440b com.apple.iokit.IOGraphicsFamily : __ZN18IOGraphicsWorkLoop9closeGateEv + 0x27
0xffffffa4cc053cf0 : 0xffffff7fb495e29f com.apple.iokit.IOGraphicsFamily : __ZN28IOGraphicsControllerWorkLoop9closeGateEv + 0x9
0xffffffa4cc053d00 : 0xffffff7fb494750b com.apple.iokit.IOGraphicsFamily : __ZN18IOGraphicsWorkLoop14timedCloseGateEPKcS1_ + 0x49
0xffffffa4cc053d90 : 0xffffff7fb4953f5f com.apple.iokit.IOGraphicsFamily : __ZN13IOFramebuffer21powerStateDidChangeToEmmP9IOService + 0x37
0xffffffa4cc053dc0 : 0xffffff801a1d3b7c mach_kernel : __ZN9IOService23driverInformPowerChangeEv + 0x16c
0xffffffa4cc053e60 : 0xffffff801a1d35b4 mach_kernel : __ZN9IOService15pmDriverCalloutEPS_ + 0x34
0xffffffa4cc053e80 : 0xffffff8019ad3905 mach_kernel : _thread_call_delayed_timer + 0x4a5
0xffffffa4cc053ef0 : 0xffffff8019ad4874 mach_kernel : _thread_call_delayed_timer + 0x1414
0xffffffa4cc053fa0 : 0xffffff8019a3113e mach_kernel : _call_continuation + 0x2e
      Kernel Extensions in backtrace:
         com.apple.iokit.IOGraphicsFamily(585.2)[9AA5E72C-0650-33D8-BE63-511CEA16B040]@0xffffff7fb493b000->0xffffff7fb4969fff
            dependency: com.apple.iokit.IOPCIFamily(2.9)[C92D98D1-8531-3640-BA8D-48444611D3CF]@0xffffff801c56b000->0xffffff801c593fff

Process name corresponding to current thread: kernel_task
Boot args: -v keepsyms=1 chunklist-security-epoch=0 -chunklist-no-rev2-dev

Mac OS version:
20G214

Kernel version:
Darwin Kernel Version 20.6.0: Thu Sep 16 20:56:02 PDT 2021; root:xnu-7195.141.7~1/RELEASE_X86_64
Kernel UUID: 98A72739-2443-338D-8B7F-0F7090F61D40
KernelCache slide: 0x0000000019800000
KernelCache base:  0xffffff8019a00000
Kernel slide:      0x0000000019810000
Kernel text base:  0xffffff8019a10000
__HIB  text base: 0xffffff8019900000
System model name: MacPro7,1 (Mac-27AD2F918AE68F61)
System shutdown begun: NO
Panic diags file available: NO (0xe00002bc)
Hibernation exit count: 0

System uptime in nanoseconds: 2931994438868
Last Sleep:           absolute           base_tsc          base_nano
  Uptime  : 0x000002aaa87cafb8
  Sleep   : 0x0000023b80cc5514 0x000000291831a9cd 0x0000000000000000
  Wake    : 0x0000023ba0a14a77 0x0000000a7bf96684 0x0000023b9f5b79c5

Link to comment
Share on other sites

Thanks!

Well, on a quick look these ACPI tables are unlike anything I've seen. Many methods in the root scope with unfathomable names—no wonder even ASRock staff gets confused. Processors are declared under the \_PR scope, in accordance with ACPI v.1.0 of… 1996, and they show up in SSDT-3.aml rather than in the DSDT. :shock:

SSDT-4.aml (36 bytes) decompiles to an incomplete nothingness (empty declaration, without closing bracket). Had you any issue while flashing the BIOS? I'm amazed the computer boots at all.

 

On the other hand, the panic log above points to the GPU as the culprit. But if other users of this motherboard also have issues with sleep it cannot be as simple as a driver issue with the Radeon VII.

 

A mere magician won't do it. It will take a Grand Wizard…

Link to comment
Share on other sites

Yep! Its a grand illusion. A WIZARD required indeed.

 

PS. I had to reset MMIOwhitelist for GpuBARS update and thats got rid of the Panic log. But I still get the Sleep/Wake errors as above.

Edited by driftwood
Link to comment
Share on other sites

Scope (_GPE)

64 GPE devices!

 

METHOD _L08

PCIO - 16 device addresses

   Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus
   Name (_CID, EisaId ("PNP0A03") /* PCI Bus

SOD1 has 16 devices - PCI Root Bridge [S0D1]?

SOD2 has 16 devices - ?

SOD3 has 16 devices - ?

 

Two Level-Triggered GPEs

Method (_L19

Method (_L14

 

Scope (_SB)
        Device (PWRB)

       ("PNP0C0C") /* Power Button Device

 

....

All devices have 

Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x08, 0x04))

 

Shouldn't this return:  GPRW (0x09, 0x04 which Ive seen on other boards?

 

Here's our Sleep/Wake Reason

AppleACPIPlatformPower Wake reason: D0A1 D0A2 D0A3 D0A4 D0A5 D0A6 D0A7 D0B0 D0B1 D0B2 D0B3 D0B4 D0B5 D0B6 D0B7 D1A0 D1A1 D1A2 D1A3 D1A4 D1A5 D1A6 D1A7 D1B1 D1B2 D (here it stops/cuts out, but I'm guessing the device list continues)

 

D0A0 & D1B0 are NOT in the Wake Reason but..

D0A0 D0A7  Starship Matisse GPP Bridge & VEGA 20 Radeon VII card on PCIe Slot 1 is

 

The other Vega 20 card on PCI slot 3 is not in the 'seen' wake reason D1B0 D1BF but probably is!

 

Here's the Scope in DSDT:-

  Scope (_GPE)
    {
        Method (_L08, 0, NotSerialized)  // _Lxx: Level-Triggered GPE, xx=0x00-0xFF
        {
            Notify (\_SB.PCI0.D0A0, 0x02) // Device Wake 
            Notify (\_SB.PCI0.D0A1, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0A2, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0A3, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0A4, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0A5, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0A6, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0A7, 0x02) // Device Wake - Vega 20?
            Notify (\_SB.PCI0.D0B0, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0B1, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0B2, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0B3, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0B4, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0B5, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0B6, 0x02) // Device Wake
            Notify (\_SB.PCI0.D0B7, 0x02) // Device Wake


            Notify (\_SB.S0D1.D1A0, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1A1, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1A2, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1A3, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1A4, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1A5, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1A6, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1A7, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1B0, 0x02) // Device Wake 
            Notify (\_SB.S0D1.D1B1, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1B2, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1B3, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1B4, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1B5, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1B6, 0x02) // Device Wake
            Notify (\_SB.S0D1.D1B7, 0x02) // Device Wake


            Notify (\_SB.S0D2.D2A1, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2A2, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2A3, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2A4, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2A5, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2A6, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2A7, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2B0, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2B1, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2B2, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2B3, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2B4, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2B5, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2B6, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2B7, 0x02) // Device Wake
            Notify (\_SB.S0D2.D2A0, 0x02) // Device Wake


            Notify (\_SB.S0D3.D3A0, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3A1, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3A2, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3A3, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3A4, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3A5, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3A6, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3A7, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3B0, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3B1, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3B2, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3B3, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3B4, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3B5, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3B6, 0x02) // Device Wake
            Notify (\_SB.S0D3.D3B7, 0x02) // Device Wake


            Notify (\_SB.PWRB, 0x02) // Device Wake
        }

        Method (_L19, 0, NotSerialized)  // _Lxx: Level-Triggered GPE, xx=0x00-0xFF
        {
            Notify (\_SB.PCI0.D0C0, 0x02) // Device Wake Starship/Matisse Internal PCIe GPP Bridge 0 to Bus [E:B]
            Notify (\_SB.PCI0.D0B8, 0x02) // Device Wake Starship/Matisse Internal PCIe GPP Bridge 0 to Bus [E:B]
            Notify (\_SB.S0D1.D1B8, 0x02) // Device Wake  Starship/Matisse Internal PCIe GPP Bridge 0 to Bus [E:B] 
            Notify (\_SB.PWRB, 0x02) // Device Wake
        }

        Method (_L14, 0, NotSerialized)  // _Lxx: Level-Triggered GPE, xx=0x00-0xFF
        {
            Notify (\_SB.S0D1.D1C0, 0x02) // Device Wake Starship/Matisse Internal PCIe GPP Bridge 0 to Bus [E:B] 
            Notify (\_SB.S0D2.D2C0, 0x02) // Device Wake Starship/Matisse Internal PCIe GPP Bridge 0 to Bus [E:B] 
            Notify (\_SB.S0D3.D3C0, 0x02) // Device Wake Starship/Matisse Internal PCIe GPP Bridge 0 to Bus [E:B] 
            Notify (\_SB.PWRB, 0x02) // Device Wake
        }
    }

 

 

Lets try and understand these devices found inside the dsdt and what they are related to:-

D0A0  Starship Matisse GPP Bridge - IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0A0@1,1. (PCi Bridge)

D0B8 Starship/Matisse Internal PCIe GPP Bridge - IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0B8@8,1 (PCi Bridge)

D0C0  Starship/Matisse Internal PCIe GPP Bridge - IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0C0@7,1.  (PCi Bridge)

D0A7  Device name: ???? PCI Bridge  - IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0A0@1,1/IOPP/D0A7@0  (PCi Bridge)

D017  Starship/Matisse PCIe Dummy Function - IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0C0@7,1/IOPP/D017@0 (????) (Non essential Instrumentation)

D084  FCH SMBUS Controller / Serial Bus Controller - IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D084@14 (SMBUS)

SBRG FCH LPC Bridge / Compatible Programmable Interrupt Controller - IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/SBRG@14,3 (ISA Bridge subclass)

D0A7 Device name: Another ???? PCI Bridge - IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0A0@1,1/IOPP/D0A7@0/IOPP/pci-bridge@0

D01B Starship/Matisse Reserved SPP   - IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0B8@8,1/IOPP/D01B@0 (Non essential Instrumentation) (??? subclass)

D0B8 Starship USB Host Controller - IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0B8@8,1/IOPP/XHC0@0,3

D0A7 Vega 20 (Radeon VII) - IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0A0@1,1/IOPP/D0A7@0/IOPP/pci-bridge@0/IOPP/display@0

D0A7 Vega 20 Multimedia Controller Audio Device  IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0A0@1,1/IOPP/D0A7@0/IOPP/pci-bridge@0/IOPP/pci1002,ab20@0,1

SOD1 Starship Matisse Root Complex - IOService:/AppleACPIPlatformExpert/S0D1@0/AppleACPIPCI/pci1022,1480@0  (Host Bridge)

SOD1 Starship Matisse Dummy Host Bridge - IOService:/AppleACPIPlatformExpert/S0D1@0/AppleACPIPCI/pci1022,1482@1 (Dummy Host Bridge)

SOD1 Starship Matisse Dummy Host Bridge - IOService:/AppleACPIPlatformExpert/S0D1@0/AppleACPIPCI/pci1022,1482@2 (Dummy Host Bridge)

SOD1 Starship Matisse Dummy Host Bridge - IOService:/AppleACPIPlatformExpert/S0D1@0/AppleACPIPCI/pci1022,1482@3 (Dummy Host Bridge)

D1B0 Starship Matisse GPP Bridge - IOService:/AppleACPIPlatformExpert/S0D1@0/AppleACPIPCI/D1B0@3,1 (PCI Bridge)

SOD1 Starship Matisse Dummy Host Bridge - IOService:/AppleACPIPlatformExpert/S0D1@0/AppleACPIPCI/pci1022,1482@4 (Dummy Host Bridge)

SOD1 Starship Matisse Dummy Host Bridge - IOService:/AppleACPIPlatformExpert/S0D1@0/AppleACPIPCI/pci1022,1482@(Dummy Host Bridge)

SOD1 Starship Matisse Dummy Host Bridge - IOService:/AppleACPIPlatformExpert/S0D1@0/AppleACPIPCI/pci1022,1482@7 (Dummy Host Bridge)

D1C0 Starship/Matisse Internal PCIe GPP Bridge- IOService:/AppleACPIPlatformExpert/S0D1@0/AppleACPIPCI/D1C0@7,1  (PCi Bridge)

SOD1 Starship Matisse Dummy Host Bridge - IOService:/AppleACPIPlatformExpert/S0D1@0/AppleACPIPCI/pci1022,1482@8 (Dummy Host Bridge)

and the list goes on... here's a graphic

1791684605_Screenshot2021-10-14at02_10_34.thumb.png.c8767d6ad0379eb67a804e30318883d4.png

 

 

 

 

 

 

 

 

Edited by driftwood
Link to comment
Share on other sites

Here is my RWEverything (as @MaLdOn recommends in his other threads). I've extracted EVERYTHING I can inc dsdt and ssdts plus some rw stuff.

 

The .bin files can be renamed to .aml for those willing to take a look. Hopefully, these are fuller than the Opencore dsdt extracts.

 

Arock TRX40 Creator - WinX64 RWEverything DSDT etc Extracts.zip

 

USB Info drawn from Windows (RWEverything)

UsbInfo.rw.txt

Edited by driftwood
Link to comment
Share on other sites

So I tried the GPRW aml and patch, which partially helps disappear the Wake reason: D0A1 D0A2 D0A3 D0A4 D0A5 D0A6 D0A7 D0B0 D0B1 D0B2 D0B3 D0B4 D0B5 D0B6 D0B7 D1A0 D1A1 D1A2 D1A3 D1A4 D1A5 D1A6 D1A7 D1B1 D1B2 D  errors on Sleep.

 

However, I now get localhost kernel[0]: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: ? I'm beginning to think Im masking the same problem with the GPRW swap...

 

The system still clicks off and comes back on immediately...  

 

time rolls on...

Edited by driftwood
Link to comment
Share on other sites

 Share

×
×
  • Create New...