How to: Fix RX 480 & RX 580 sleep issue in 10.13.2

AMD Polaris graphics cards have been a blessing for Mac Pro users since their release last summer. My MACOS RX 480 installation how-to detailed the progress of the development of the driver as early as the beta of Sierra 10.12. There was good news and bad news along the way. Overall, Radeon RX GPUs have served Mac users well in Mac Pro towers and external graphics devices.

With the release of macOS High Sierra 10.13.2 this week, there is a sleep problem with RX 480/580. macOS can still detect these cards at boot time and most of the features work well, but sleep and wake up have problems in the Mac Pro tower. The standby light by the power button pulses as expected when the Mac is in sleep mode. However, the GPU itself remains running. When you wake up, you will be confronted with a black screen and the lack of response from the Mac Pro. A power stop by holding the power button is the only way to restart it.

I found a workaround. I made this change before 10.13.2 for MacOS High Sierra to recognize all RX 470/480/570/580 as " Radeon RX 580 " in About this Mac. It was strictly a cosmetic procedure. With 10.13.2 however, it helps prevent sleep and waking problems in the Mac Pro tower by prompting the system to believe that a Sapphire RX 580 Pulse 8 GB is installed

The Sapphire RX 580 Pulse 8 GB is the only GPU AMD's current generation correctly identified in macOS is due to its use in the Apple External Graphics Development Kit.There are two part numbers for this particular RX 580, 113-4E353BU-O4E and ] 113-4E3531U-O4V checks one or the other of these part numbers to show " Radeon RX 580 " instead of " AMD R9 XXX "in About This Mac This solution basically borrows the identity of the Sapphire RX 580 Pulse 8GB so that all Polaris 10 cards and 20 be treated the same way in macOS High Sierra 10.13.2 Here is the procedure:

1. Original VBIOS of your RX 470/480/570/580 with ATIWinFlash under Windows. Make an extra copy of the ROM to restore the original VBIOS to your GPU if things go wrong. I've used a 8 GB RX 480 reference cooler for this guide.

2. Take note of the part number in the original VBIOS. In my case, it is 113-D0090501-101. Open the VBIOS in a Hex editor of your choice and look for that part number (I've used HxD). Replace it with a part number that macOS identifies as "Radeon RX 580". You will notice that I added an extra character "1" at the end of 113-4E353BU-O4E because the original part number has one more character than the Sapphire RX 580 8GB part number . If the part number of your RX 480/580 has fewer characters, try to match 113-4E353BU-O4E as much as possible.

3. The new VBIOS ROM will have an invalid checksum and you will still not be able to flash your card with ATIWinFlash. Open this modified VBIOS in PolarisBIOSEditor. It will tell you to save the VBIOS to correct this error.

4. Once done, you can flash your RX 480/580 8 GB with this modulated VBIOS. If all goes well, macOS will correctly detect your RX 480/580 as "Radeon RX 580" in About this Mac and System Information as long as Apple supports the Sapphire RX 580 Pulse 8 GB.

Keep in mind that there are disadvantages to this modification. The first is the application of the BIOS signature in Windows that prevents the loading of AMD drivers (error 43). If you do not intend to use it with Windows, it is a non-problem. You can also get a card with dual-VBIOS for dual booting. The second problem is the video output of the ports. If your RX 470/480/570/580 does not have the same port configuration as the Sapphire RX 580 Pulse 8GB, some ports may not work. On my RX 480 reference, one of the three DisplayPort's has no output after the change.

A less involved alternative to this problem is to edit the info.plist file inside AMD9500Controller.kext . In macOS 10.13.2, the video output port number for Polaris graphics cards is somehow set to 6. After you set this port number to a value that matches your RX 480/580, it resolves the sleep problem of 10.13.2.

1a. Locate AMD9500Controller.kext in / System / Library / Extensions and right-click to display the contents of the package. Copy Info.plist to the desktop to edit this file. Keep in mind that the SIP protocol must be disabled.

2a. Find the key CFG_FB_LIMIT in this Info.plist file. Change the value from 0 to a number corresponding to the number of ports on your GPU. My reference RX 480 has 3 DisplayPort and an HDMI port so the value I used is 4.

3a. Run Kext Utility to repair kext permissions. Restart your Mac Pro when this process is complete.

Leave a Reply

Your email address will not be published. Required fields are marked *