A Few Kernel Patches & New Firmware Have The Radeon RX 590 Working On Linux

Written by Michael Larabel in Radeon on 3 December 2018 at 12:30 PM EST. 33 Comments
RADEON
Last month when the AMD Radeon RX 590 launched, it wasn't working on Linux to much surprise considering it's another Polaris refresh. Today there are new AMDGPU DRM kernel patches and firmware/microcode files that do allow the RX 590 now to work properly under Linux.

Considering there aren't many changes from the RX 580 to RX 590, it was a surprising failure after having to purchase the card and only to find it not working. It also caught the AMD Linux developers by surprise as well since the support was working on their pre-production hardware as well. AMD developers began exploring the RX 590 Linux problem and quickly figured out it was due to some video BIOS changes albeit it took some time to get the problem rectified.

Meanwhile for those buying the RX 590 since the mid-November launch, the support hasn't worked out with either the open-source driver or AMDGPU-PRO / Radeon Software drivers. Though a reader did discover a workaround but with greatly sacrificing performance as the change to disable power management left the card at its minimum clock speeds.


If you are comfortable compiling your own patched Linux kernel, it's now possible to have working Radeon RX 590 support.


Today there is good news to share! New kernel patches and firmware files do make the RX 590 working and I verified it with my retail Sapphire Radeon RX 590.

This patch causes newer Polaris 10/11/12 GPUs based upon their revision to prefer a newer "_k" variant firmware for the GPU memory controller. A second patch forces the memory controller firmware to always be loaded by the driver even if the vBIOS had loaded a version already during the initialization process.

At first it looked like just those patches were needed, but there is also a separate patch series with two other patches that were also needed in my case. These patches adjust the memory clock switch limit timing for newer Polaris variants and the clock stretcher limits. Without those two patches, I couldn't get a 4K HDMI or DP display to light up.

With those patches plus the new firmware available via this directory (not yet in linux-firmware.git), the Radeon RX 590 is working!


I built the kernel this morning and it's indeed allowing my Radeon RX 590 to run well without any issues so far. If no other problems are discovered, I'll have out the initial Radeon RX 590 Linux benchmarks tomorrow. Kudos to the AMD Linux developers on getting this issue resolved but unfortunate they were left in the dark about the last minute vBIOS changes (and I too was not briefed on the RX 590 and thus didn't have a chance to discover and report the issue prior to launch).

Hopefully these patches will be quickly back-ported to the supported Linux stable series.

Update: Sadly the initial success didn't go much further... Under load of games, there is some GPU hangs that have yet to be resolved. Still exploring. It is worth noting that when previously booting the RX 590 with amdgpu.dpm=0, there were not stability issues, so likely still some power-related issues still with the AMDGPU driver. At least with these patches, the GNOME Shell desktop, basic desktop apps, and other light workloads are working fine on the RX 590.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week