Amdgpu doesn't seem to function with navi 31 (rx 7900 xtx)

So I picked up a new AMD graphics card this morning (rx 7900 xtx, navi 31), popped it in my computer, and was pretty disappointed to see that fedora 37 doesn’t seem to recognize it.

Here’s the most obvious error showing up in the boot log:

Direct firmware load for amdgpu/psp_13_0_0_sos.bin failed with error -2

Is anyone else seeing these kinds of issues?

Thanks

System is fedora 37 (pretty vanilla) on an asrock x570m motherboard, amd 5800x3d processor

(More complete lines from that section according to ‘journalctl -b’):

Dec 13 10:41:50 yoda kernel: amdgpu 0000:0d:00.0: [drm:jpeg_v4_0_early_init [amdgpu]] JPEG decode is enabled in VM mode
Dec 13 10:41:50 yoda kernel: amdgpu 0000:0d:00.0: amdgpu: Trusted Memory Zone (TMZ) feature not supported
Dec 13 10:41:50 yoda kernel: [drm] vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
Dec 13 10:41:50 yoda kernel: amdgpu 0000:0d:00.0: amdgpu: VRAM: 24560M 0x0000008000000000 - 0x00000085FEFFFFFF (24560M used)
Dec 13 10:41:50 yoda kernel: amdgpu 0000:0d:00.0: amdgpu: GART: 512M 0x0000000000000000 - 0x000000001FFFFFFF
Dec 13 10:41:50 yoda kernel: [drm] Detected VRAM RAM=24560M, BAR=256M
Dec 13 10:41:50 yoda kernel: [drm] RAM width 384bits GDDR6
Dec 13 10:41:50 yoda kernel: [drm] amdgpu: 24560M of VRAM memory ready
Dec 13 10:41:50 yoda kernel: [drm] amdgpu: 16006M of GTT memory ready.
Dec 13 10:41:50 yoda kernel: [drm] GART: num cpu pages 131072, num gpu pages 131072
Dec 13 10:41:50 yoda kernel: [drm] PCIE GART of 512M enabled (table at 0x0000008000000000).
Dec 13 10:41:50 yoda kernel: amdgpu 0000:0d:00.0: Direct firmware load for amdgpu/psp_13_0_0_sos.bin failed with error -2
Dec 13 10:41:50 yoda kernel: amdgpu 0000:0d:00.0: amdgpu: failed to init sos firmware
Dec 13 10:41:50 yoda kernel: [drm:psp_sw_init [amdgpu]] ERROR Failed to load psp firmware!
Dec 13 10:41:50 yoda kernel: [drm:amdgpu_device_init.cold [amdgpu]] ERROR sw_init of IP block failed -2
Dec 13 10:41:50 yoda kernel: amdgpu 0000:0d:00.0: amdgpu: amdgpu_device_ip_init failed
Dec 13 10:41:50 yoda kernel: amdgpu 0000:0d:00.0: amdgpu: Fatal error during GPU init
Dec 13 10:41:50 yoda kernel: amdgpu 0000:0d:00.0: amdgpu: amdgpu: finishing device.
Dec 13 10:41:50 yoda kernel: amdgpu: probe of 0000:0d:00.0 failed with error -2
Dec 13 10:41:50 yoda kernel: [drm] amdgpu: ttm finalized

1 Like

I happened to just read about this on Phoronix

There is one minor caveat with the support and that is the Radeon RX 7900 series GPU firmware files have yet to land in the linux-firmware.git tree. AMD will likely have those out on retail release day and get them into linux-firmware.git, in which case you just need to drop these firmware files into /lib/firmware/amdgpu/ and rebuild any initramfs, etc, for going along with the open-source driver code of Linux 6.0+ and Mesa 22.2+. It would have been nice if the firmware files were already public so that they could have been picked up already by Linux distribution packages to make for an even easier out-of-the-box experience, but fetching the new firmware files is a rather simple task for end-users and much easier than having to rebuild your kernel or jump through other hoops.

I’m sure it will come to our linux-firmware package soon, although I see that it isn’t in an official upstream release yet either, and then we might be in end-of-year holidays, making everything a little slow. In the meantime, the suggestion from the Phoronix article seems reasonable.

2 Likes

There is support for it from the amdgpu-pro drivers, but they’re unfortunately a huge pain to get to work on Fedora, but you can try it (at your own risk) with a community packaged version. Honestly, I would recommend waiting it out and watching koji for updates for a clue on when it will hit.

1 Like

Thanks for the responses - my own searching turned up much the same. I’m just going to connect an old laptop hard drive to my rig, install Ubuntu LTS on it, and give the AMD closed source drivers a whirl.

If you want an experience closer to Fedora, since RHEL9 is supported, you could also try RHEL 9 or AlmaLinux 9 as well, using the RHEL9 drivers (I’m not sure if CentOS Stream 9 will work or not since it could be a newer kernel than expected by their scripts).

1 Like

I am not really surprised that it did not work.
Videogamer.com reports that it was to be released today, and since the driver would be new, the firmware has to be new, and the card is barely off the press it will take some time for the software side in linux to catch up to the hardware.

If I were you I would either be patient until the firmware and drivers are updated, or volunteer to test as the developers update the software.

1 Like

The firmware was “leaked” in the Linux kernel back in June and then pulled since the platform wasn’t publicly announced yet. AMD released drivers for it today (unlike nVidia, AMD contributes directly to the FOSS kernel driver). This was a particularly weird case.

2 Likes

I’m down to do some guinea-pigging. Any idea where to offer my system (and meager skills) as a resource?

At some point, there’ll be an update to linux-firmware and it’ll need testing. Watch https://bodhi.fedoraproject.org/updates/?packages=linux-firmware for when that drops so you can test it out and see if it works for your GPU and if so, give it good karma. Seeing as they’re normally cut around monthly, that could happen any day now.

2 Likes

Yeah, but without the firmware even a correct driver won’t work and it was noted above that it is not presently available even upstream.
Drivers released today – Yayyy! – still will take some time to percolate through testing then the repos.

The firmwares are now in kernel/git/firmware/linux-firmware.git - Repository of firmware blobs for use with the Linux kernel

So the easiest way is just to clone this repository, copy the amdgpu firmwares in /lib/firmware/amdgpu, and run dracut -f to regenerate the ramdisk:

git clone  https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
cd linux-firmware/
sudo mv /lib/firmware/amdgpu /lib/firmware/amdgpu_backup
sudo cp -r amdgpu /lib/firmware/
sudo dracut -f
4 Likes

On it! Will report results in a few.

2D render looks great on multiple 4k displays (one HDMI, the other Displayport)!

Now on to downloading Vulkan SDK and seeing where 3D acceleration stands.

3 Likes

This will likely get overwritten on the next linux-firmware update in the repos. The good news is, the next linux-firmware update should also include these bits, so hopefully it won’t be an issue.

Won’t the update create .rpmnew files? Or does that happen only under /etc?

That is true for configuration files, but not for binaries, libraries, etc. Really you should never practically do this as you are overriding file locations maintained by RPM. However, it is your system and if it were me, I would consider this particular case to be a low risk. Just don’t dnf reinstall linux-firmware for some reason in the meantime until the next version ships.

1 Like

Thanks for the clarification :slight_smile:

Hi, this really work and get fedora to boot with 7900 xtx , but I couldn’t use native resolution 5120x1440 of my mornitor. when i try to set it to native the screen just turn white with black stripe . Is there anything else i could do ? thanks

I strongly recommend waiting for the firmware to be released from Fedora so that it goes through QA testing first. Doing it this way is not supported (but it’s your system, so of course you can do it, but it’ll be difficult for us to help you responsibly troubleshoot anything).

The other thing you can try:

you can also open a bug on their bug tracker:

or wait until the amdgpu driver gets fixed.