Jump to content

Tracing back the AMD GPU wakeup issue to its origin


Mieze
368 posts in this topic

Recommended Posts

Thanks, I have the SSDT-HDEF-HDAS-1.aml generated by toleda's audio_CloverHDMI, is that the SSDT you are referring to? I'm unfamiliar with ATIInject and is undocumented so bit aprehensive about trying that, will wait to hear your reply about the SSDT.

List your system specs and upload your entire EFI folder and I can fix it all up for you.

  • Like 1
Link to comment
Share on other sites

hi,,rx580 can spin up to full speed when booting...this problem can be fixed?

The fan speed is controlled by UEFI during booting process which is faster than autowattsman in macOS, thats why when you finally boot into macOS attowattsman takes over and your fan speeds slow down

  • Like 1
Link to comment
Share on other sites

The fan speed is controlled by UEFI during booting process which is faster than autowattsman in macOS, thats why when you finally boot into macOS attowattsman takes over and your fan speeds slow down

OK.i get it...so.it is normal...

Link to comment
Share on other sites

unfortunately my HD7790 (sea islands) still get wake problem in HS 10.13.2 with 2 method (radeoninit -> manual add value in CFG_USE_AGDC, CFG_FB_LIMIT) or with whatevergreen v.1.1.4

What evergreen and lilu?

 

From my experience ryzen is stubborn, it will only load certain kext from s/l/e

 

I had to boot up using my old nvidia gt210

Install kext in s/l/e then use kext utility.

Link to comment
Share on other sites

in HS 10.13 no problem sleep and wake, i see apple introduce 2 new kext,

 

Picos-Mac-Pro:~ pico$ kextstat | grep AMD
   91    0 0xffffff7f84402000 0x16000    0x16000    com.apple.kext.AMDRadeonX4000HWServices (1.6.0) 31741979-9408-3D2B-A7A4-E36F41355B73 <89 12 11 7 5 4 3 1>
   93    2 0xffffff7f8241a000 0x1f8000   0x1f8000   com.apple.kext.AMDSupport (1.6.0) 441E3318-2B41-3EC8-95CA-7A098B2801F5 <92 89 12 11 7 5 4 3 1>
   94    0 0xffffff7f82802000 0x1aa000   0x1aa000   com.apple.kext.AMD8000Controller (1.6.0) 196141DD-9534-3300-96A6-43EAD23D8C88 <93 92 89 12 11 5 4 3 1>
  114    0 0xffffff7f82b4e000 0x883000   0x883000   com.apple.kext.AMDRadeonX4000 (1.6.0) 1085F995-C89E-356B-B07B-29517534C345 <113 112 89 12 7 5 4 3 1>
  125    0 0xffffff7f83b75000 0x88d000   0x88d000   com.apple.kext.AMDRadeonX4050HWLibs (1.0) 572CF757-43AF-3814-8E03-FA0F237B307B <12 5 4 3 1>
  145    0 0xffffff7f83622000 0x28000    0x28000    com.apple.kext.AMDFramebuffer (1.6.0) 74616066-E134-31AD-AEE8-40BB1420567B <93 89 12 11 7 5 4 3 1>

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Hi Mieze

 

Thank you for sharing this excellent work


 

The Patch

 

Putting things together I created a DSDT patch to fix the incorrectly initialized registers. With this patch applied, I now have working wakeup with my R9 270X under Sierra (10.12.6) using UEFI VBIOS with CSM disabled in UEFI setup. No kext patches or additional kexts are needed anymore for sleep/wake to work properly with my R9 270X anymore. I can see the BIOS splash screen on my display and can access UEFI setup but the best of all is that there hasn't been a single wakeup issue since I applied this patch.

Device (PEGP)
{
    Name (_ADR, Zero)  // _ADR: Address
    OperationRegion (PCIB, PCI_Config, Zero, 0x0100)
    Field (PCIB, AnyAcc, NoLock, Preserve)
    {
        Offset (0x10),
        BAR0,   32,
        BAR1,   32,
        BAR2,   64,
        BAR4,   32,
        BAR5,   32
    }
    
    Method (_INI, 0, NotSerialized)  // _INI: Initialize
    {
        If (LEqual (BAR5, Zero))
        {
            Store (BAR2, Local0)
        }
        Else
        {
            Store (BAR5, Local0)
        }
        
        OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFFFFFFFFFF0), 0x8000)
        Field (GREG, AnyAcc, NoLock, Preserve)
        {
            Offset (0x6800),
            GENA,   32,
            GCTL,   32,
            LTBC,   32,
            Offset (0x6810),
            PSBL,   32,
            SSBL,   32,
            PTCH,   32,
            PSBH,   32,
            SSBH,   32,
            Offset (0x6848),
            FCTL,   32,
            Offset (0x6EF8),
            MUMD,   32
        }
        
        Store (Zero, FCTL)
        Store (Zero, PSBH)
        Store (Zero, SSBH)
        Store (Zero, LTBC)
        Store (One, GENA)
        Store (Zero, MUMD)
    }
}

Does this initialization DSDT apply the same to all adapters? I have nothing in my ACPI tables for my graphics card (RX 560 4G) by default :( So just wondering if I can use the initialization method as is?

 

Thanks!

Link to comment
Share on other sites

  • 2 weeks later...

I'm new to Hackintosh, can anyone tell me how to apply this patch? Thanks

 

If you use the latest Clover boot loader and then open your config.plist with the latest Clover Configurator app you can set it in Graphics settings.   This probably the easiest way to do it for newcomers see pic below.   

post-1753549-0-36386300-1515949086_thumb.png

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

i just updated to 10.13.4 after disabling this patch but the device name is pegp not gfx0....

does the gpu work oob ? Thats all that matters it does for me and sleep works also

 

 

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

i just updated to 10.13.4 after disabling this patch  but the device name is pegp not gfx0....

Could it be system definitions? Something I noticed with my Ryzen setup was with MacPro I couldn’t get GFX1 but when I changed to iMac 18.2 I got GFX0. But this was in previous 13.3 version.

Link to comment
Share on other sites

does the gpu work oob ? Thats all that matters it does for me and sleep works also

 

 

Sent from my iPhone using Tapatalk

this rx580 wokrs oob..but the device name is pegp not gfx0

Could it be system definitions? Something I noticed with my Ryzen setup was with MacPro I couldn’t get GFX1 but when I changed to iMac 18.2 I got GFX0. But this was in previous 13.3 version.

i just updated to 10.13.4   but the device name is pegp not gfx0

Link to comment
Share on other sites

this rx580 wokrs oob..but the device name is pegp not gfx0

 

i just updated to 10.13.4 but the device name is pegp not gfx0

apple patches it in another way it no longer needs that just be happy it works

 

 

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

×
×
  • Create New...