Solved Is the AMD GPU RX 6800 XT Supported on FreeBSD 13.1? Yes!

I’m trying to get X working on a bare metal desktop machine. I followed the amdgpu documentation, and verified that the kernel module gets loaded (though there is only one line of output, but I’ve seen multiple for different chipsets in some other threads on this forum with slightly older cards). There is also only one line of output in dmesg. The resolution changes correctly to 4K on boot. I don’t have any X configuration files. When I generate one, it detects amdgpu for the device, but then still complains that no card could be detected on the next launch attempt when adding the location to the generated configuration file as a parameter to X. When I disable the EFI framebuffer in /boot/loader.conf the boot process output stops fairly early and never recovers (I suppose it is trying to hand over to the GPU, but no GPU is found).

It looks like the kernel module is loaded, but no card detected.

My question is if the RX 6800 XT is supported on 13.0-RELEASE, or eventually 14.0-CURRENT, or if it is currently unsupported on FreeBSD? Is there a FreeBSD success story with this card?
 
AMD (and Intel) GPU drivers for FreeBSD are ported from Linux, with considerable delay.

From what I read here Linux 5.10 would be the first release to support it. Meanwhile, our graphics/drm-devel-kmod is reportedly only on par with Linux 5.7, so it's highly probable that your card isn't supported yet on any version of FreeBSD.
 
Thanks for your reply. This was exactly the information that I was missing. Maybe in a couple more months the support will be better. Fingers crossed :)
 
We're now on par with Linux 5.10 on the driver side:

... but still no Navi 21 listed in graphics/gpu-firmware-amd-kmod. When that firmware finally shows up, your card should be supported.
 
We're now on par with Linux 5.10 on the driver side:
This is great news, and earlier than I would’ve anticipated.
... but still no Navi 21 listed in graphics/gpu-firmware-amd-kmod. When that firmware finally shows up, your card should be supported.
I’m not sure how involved the process for the firmware is, but from an amateur’s POV it looks like this is just a small, last step, and full hardware support for Navi 21 on FreeBSD 13.1 is almost there.
 
I hope for this to happen quick. I'm running OpenBSD on my desktop right now in the meantime. And though I like it, firefox causes insane audio stutter and I'm ready to come back to FreeBSD lol
 
... but still no Navi 21 listed in graphics/gpu-firmware-amd-kmod. When that firmware finally shows up, your card should be supported.
bsduck: Are you actually sure that the firmware isn’t there yet? According to the Gentoo Wiki Navi 21 binary blobs are named sienna_cichlid_{ce,dmcub,me,mec2,mec,pfp,rlc,sdma,smc,sos,ta,vcn}.bin and they seem to be already in the repository.

I hope for this to happen quick. I'm running OpenBSD on my desktop right now in the meantime. And though I like it, firefox causes insane audio stutter and I'm ready to come back to FreeBSD lol
Maybe you can try it already. Unfortunately I didn’t have the time yet, but in theory everything should work now.
 
Navi 21 binary blobs are named sienna_cichlid_{ce,dmcub,me,mec2,mec,pfp,rlc,sdma,smc,sos,ta,vcn}.bin and they seem to be already in the repository.
sienna_cichlid is supported starting with 13.1. From graphics/gpu-firmware-kmod commit message:
Code:
version 20220511,1

graphics/gpu-firmware-kmod: Update to 20220511

AMD:
 - Add green_sardine and sienna_cichlid
   Both hardware are supported by drm-510-kmod and only starting
   from 13.1 we can compile longname firmware so only add them for >= 13.1

graphics/gpu-firmware-amd-kmod commit message:
Code:
version 20220511

graphics/gpu-firmware-amd-kmod: Ignore green_sardine and sienna_cichlid on <
13.1

We cannot build those firmware on < 13.1 as the names are too long for the kmod.
 
Is this just Navi 21 or Navi 22? I'm unsure as the code names sardine and whatever are not helpful. Just say what Navi it is? lol So hard to find out. I have a brand new 6750 that isn't working, I looked and navi14 is like the newest. So waiting for FreeBSD 14?
 
Is this just Navi 21 or Navi 22? I'm unsure as the code names sardine and whatever are not helpful. Just say what Navi it is? lol So hard to find out. I have a brand new 6750 that isn't working, I looked and navi14 is like the newest. So waiting for FreeBSD 14?
This card should be supported since Linux 5.11, but the current driver is based on the 5.10 kernel, see graphics/drm-510-kmod so unfortunately no luck there I guess.
 
I have a brand new 6750 that isn't working, I looked and navi14 is like the newest.
If it's a "AMD Radeon RX 6750 XT" (GPU codename "Navy Flounder", according to techpowerup.com, see link below) it should be supported by graphics/drm-510-kmod on 13.1.

https://www.techpowerup.com/gpu-specs/radeon-rx-6750-xt.c3879 ,
Navi 22 GPU Notes:
Rich (BB code):
Architecture Codename: Navi
Codename: Navy Flounder

drm-kmod 510-lts
Rich (BB code):
    "NAVY_FLOUNDER",
 
Do you need to do anything other than kldload amdgpu?

I just got an RX 6600, which is Navi 23 code name ”dimgrey cavefish”.

I confirmed that gpu-firmware-amd-kmod has a dimgrey-cavefish flavor. I built drm-kmod from ports, got a bunch of drivers including dimgrey-cavefish.

When I run startx I get the “cannot run in frame buffer mode” error.

I’m at a loss for what to do. I thought for sure I finally found a supported graphics card… pretty sure I have the driver, how do I use it?
 
Do you need to do anything other than kldload amdgpu?
Besides loading the driver, the user must be member of the "video" group.

It is recommended to enable the driver from /etc/rc.conf (see post-install message below). A short flash of the console happens when the driver switches when the system boots up.

If there is still problems, check dmesg(8) for errors: dmesg | grep drm

Furthermore, not sure if this is still valid, EFI boot may interfere (from your Thread 591107 console="efi"). There is a note about it in the post-install message:

Rich (BB code):
 % pkg info -D drm-510-kmod
drm-510-kmod-5.10.113_7:
On install:
The drm-510-kmod port can be enabled for amdgpu (for AMD
GPUs starting with the HD7000 series / Tahiti) or i915kms (for Intel
APUs starting with HD3000 / Sandy Bridge) through kld_list in
/etc/rc.conf. radeonkms for older AMD GPUs can be loaded and there are
some positive reports if EFI boot is NOT enabled (similar to amdgpu).

For amdgpu: kld_list="amdgpu"
For Intel: kld_list="i915kms"
For radeonkms: kld_list="radeonkms"

Please ensure that all users requiring graphics are members of the
"video" group.
 
I've now uninstalled all the graphics-related packages, and only installed drm-510-kmod and gpu-firmware-amd-kmod-dimgrey-cavefish.

I have set kld_list="amdgpu". The only dmesg drm line is "[drm] amdgpu kernel modesetting enabled."

I no longer have a console setting in /boot/loader.conf. I reinstalled FreeBSD after I realized that I had not encrypted the disks. Now I have the default full-disk encryption from the installer (GELI encryption, I think?)
 
I have set kld_list="amdgpu". The only dmesg drm line is "[drm] amdgpu kernel modesetting enabled."
There should be a lot more. For example on my laptops AMD 5700U is a "Lucienne" integrated GPU, this is the dmesg drm output:
[drm] amdgpu kernel modesetting enabled.
drmn0: <drmn> on vgapci0
vgapci0: child drmn0 requested pci_enable_io
vgapci0: child drmn0 requested pci_enable_io
[drm] initializing kernel modesetting (RENOIR 0x1002:0x164C 0x17AA:0x5097 0xC1).
drmn0: Trusted Memory Zone (TMZ) feature disabled as experimental (default)
[drm] register mmio base: 0xFD300000
[drm] register mmio size: 524288
[drm] add ip block number 0 <soc15_common>
[drm] add ip block number 1 <gmc_v9_0>
[drm] add ip block number 2 <vega10_ih>
[drm] add ip block number 3 <psp>
[drm] add ip block number 4 <smu>
[drm] add ip block number 5 <gfx_v9_0>
[drm] add ip block number 6 <sdma_v4_0>
[drm] add ip block number 7 <dm>
[drm] add ip block number 8 <vcn_v2_0>
[drm] add ip block number 9 <jpeg_v2_0>
drmn0: Fetched VBIOS from VFCT
drmn0: successfully loaded firmware image 'amdgpu/renoir_sdma.bin'
[drm] VCN decode is enabled in VM mode
[drm] VCN encode is enabled in VM mode
[drm] JPEG decode is enabled in VM mode
[drm] vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
drmn0: VRAM: 1024M 0x000000F400000000 - 0x000000F43FFFFFFF (1024M used)
drmn0: GART: 1024M 0x0000000000000000 - 0x000000003FFFFFFF
drmn0: AGP: 267419648M 0x000000F800000000 - 0x0000FFFFFFFFFFFF
[drm] Detected VRAM RAM=1024M, BAR=1024M
[drm] RAM width 64bits DDR4
[drm] amdgpu: 1024M of VRAM memory ready
[drm] amdgpu: 3072M of GTT memory ready.
[drm] GART: num cpu pages 262144, num gpu pages 262144
[drm] PCIE GART of 1024M enabled (table at 0x000000F400900000).
drmn0: successfully loaded firmware image 'amdgpu/renoir_asd.bin'
drmn0: successfully loaded firmware image 'amdgpu/renoir_pfp.bin'
drmn0: successfully loaded firmware image 'amdgpu/renoir_me.bin'
drmn0: successfully loaded firmware image 'amdgpu/renoir_ce.bin'
drmn0: successfully loaded firmware image 'amdgpu/renoir_rlc.bin'
drmn0: successfully loaded firmware image 'amdgpu/renoir_mec.bin'
drmn0: successfully loaded firmware image 'amdgpu/renoir_mec2.bin'
drmn0: successfully loaded firmware image 'amdgpu/renoir_dmcub.bin'
[drm] Loading DMUB firmware via PSP: version=0x01000000
drmn0: successfully loaded firmware image 'amdgpu/renoir_vcn.bin'
[drm] Found VCN firmware Version ENC: 1.7 DEC: 4 VEP: 0 Revision: 17
drmn0: Will use PSP to load VCN firmware
[drm] reserve 0x400000 from 0xf43f800000 for PSP TMR
drmn0: SMU is initialized successfully!
[drm] kiq ring mec 2 pipe 1 q 0
[drm] Display Core initialized with v3.2.104!
[drm] DMUB hardware initialized: version=0x01000000
[drm] VCN decode and encode initialized successfully(under DPG Mode).
[drm] JPEG decode initialized successfully.
drmn0: SE 1, SH per SE 1, CU per SH 8, active_cu_number 8
[drm] fb mappable at 0x1F0CE0000
[drm] vram apper at 0x1F0000000
[drm] size 8294400
[drm] fb depth is 24
[drm] pitch is 7680
name=drmn0 flags=0x0 stride=7680 bpp=32
drmn0: ring gfx uses VM inv eng 0 on hub 0
drmn0: ring comp_1.0.0 uses VM inv eng 1 on hub 0
drmn0: ring comp_1.1.0 uses VM inv eng 4 on hub 0
drmn0: ring comp_1.2.0 uses VM inv eng 5 on hub 0
drmn0: ring comp_1.3.0 uses VM inv eng 6 on hub 0
drmn0: ring comp_1.0.1 uses VM inv eng 7 on hub 0
drmn0: ring comp_1.1.1 uses VM inv eng 8 on hub 0
drmn0: ring comp_1.2.1 uses VM inv eng 9 on hub 0
drmn0: ring comp_1.3.1 uses VM inv eng 10 on hub 0
drmn0: ring kiq_2.1.0 uses VM inv eng 11 on hub 0
drmn0: ring sdma0 uses VM inv eng 0 on hub 1
drmn0: ring vcn_dec uses VM inv eng 1 on hub 1
drmn0: ring vcn_enc0 uses VM inv eng 4 on hub 1
drmn0: ring vcn_enc1 uses VM inv eng 5 on hub 1
drmn0: ring jpeg_dec uses VM inv eng 6 on hub 1
vgapci0: child drmn0 requested pci_get_powerstate
[drm] Initialized amdgpu 3.40.0 20150101 for drmn0 on minor 0
[drm] Fence fallback timer expired on ring gfx
[drm] Fence fallback timer expired on ring gfx
[drm] free PSP TMR buffer
[drm] PCIE GART of 1024M enabled (table at 0x000000F400900000).
[drm] PSP is resuming...
[drm] reserve 0x400000 from 0xf43f800000 for PSP TMR
drmn0: SMU is resuming...
drmn0: dpm has been disabled
drmn0: SMU is resumed successfully!
[drm] kiq ring mec 2 pipe 1 q 0
[drm] DMUB hardware initialized: version=0x01000000
[drm] VCN decode and encode initialized successfully(under DPG Mode).
[drm] JPEG decode initialized successfully.
drmn0: ring gfx uses VM inv eng 0 on hub 0
drmn0: ring comp_1.0.0 uses VM inv eng 1 on hub 0
drmn0: ring comp_1.1.0 uses VM inv eng 4 on hub 0
drmn0: ring comp_1.2.0 uses VM inv eng 5 on hub 0
drmn0: ring comp_1.3.0 uses VM inv eng 6 on hub 0
drmn0: ring comp_1.0.1 uses VM inv eng 7 on hub 0
drmn0: ring comp_1.1.1 uses VM inv eng 8 on hub 0
drmn0: ring comp_1.2.1 uses VM inv eng 9 on hub 0
drmn0: ring comp_1.3.1 uses VM inv eng 10 on hub 0
drmn0: ring kiq_2.1.0 uses VM inv eng 11 on hub 0
drmn0: ring sdma0 uses VM inv eng 0 on hub 1
drmn0: ring vcn_dec uses VM inv eng 1 on hub 1
drmn0: ring vcn_enc0 uses VM inv eng 4 on hub 1
drmn0: ring vcn_enc1 uses VM inv eng 5 on hub 1
drmn0: ring jpeg_dec uses VM inv eng 6 on hub 1
[drm] Fence fallback timer expired on ring gfx
[drm] Fence fallback timer expired on ring gfx
[drm] free PSP TMR buffer
[drm] PCIE GART of 1024M enabled (table at 0x000000F400900000).
[drm] PSP is resuming...
[drm] reserve 0x400000 from 0xf43f800000 for PSP TMR
drmn0: SMU is resuming...
drmn0: dpm has been disabled
drmn0: SMU is resumed successfully!
[drm] kiq ring mec 2 pipe 1 q 0
[drm] DMUB hardware initialized: version=0x01000000
[drm] VCN decode and encode initialized successfully(under DPG Mode).
[drm] JPEG decode initialized successfully.
drmn0: ring gfx uses VM inv eng 0 on hub 0
drmn0: ring comp_1.0.0 uses VM inv eng 1 on hub 0
drmn0: ring comp_1.1.0 uses VM inv eng 4 on hub 0
drmn0: ring comp_1.2.0 uses VM inv eng 5 on hub 0
drmn0: ring comp_1.3.0 uses VM inv eng 6 on hub 0
drmn0: ring comp_1.0.1 uses VM inv eng 7 on hub 0
drmn0: ring comp_1.1.1 uses VM inv eng 8 on hub 0
drmn0: ring comp_1.2.1 uses VM inv eng 9 on hub 0
drmn0: ring comp_1.3.1 uses VM inv eng 10 on hub 0
drmn0: ring kiq_2.1.0 uses VM inv eng 11 on hub 0
drmn0: ring sdma0 uses VM inv eng 0 on hub 1
drmn0: ring vcn_dec uses VM inv eng 1 on hub 1
drmn0: ring vcn_enc0 uses VM inv eng 4 on hub 1
drmn0: ring vcn_enc1 uses VM inv eng 5 on hub 1
drmn0: ring jpeg_dec uses VM inv eng 6 on hub 1
[drm] free PSP TMR buffer
[drm] PCIE GART of 1024M enabled (table at 0x000000F400900000).
[drm] PSP is resuming...
[drm] reserve 0x400000 from 0xf43f800000 for PSP TMR
drmn0: SMU is resuming...
drmn0: dpm has been disabled
drmn0: SMU is resumed successfully!
[drm] kiq ring mec 2 pipe 1 q 0
[drm] DMUB hardware initialized: version=0x01000000
[drm] VCN decode and encode initialized successfully(under DPG Mode).
[drm] JPEG decode initialized successfully.
drmn0: ring gfx uses VM inv eng 0 on hub 0
drmn0: ring comp_1.0.0 uses VM inv eng 1 on hub 0
drmn0: ring comp_1.1.0 uses VM inv eng 4 on hub 0
drmn0: ring comp_1.2.0 uses VM inv eng 5 on hub 0
drmn0: ring comp_1.3.0 uses VM inv eng 6 on hub 0
drmn0: ring comp_1.0.1 uses VM inv eng 7 on hub 0
drmn0: ring comp_1.1.1 uses VM inv eng 8 on hub 0
drmn0: ring comp_1.2.1 uses VM inv eng 9 on hub 0
drmn0: ring comp_1.3.1 uses VM inv eng 10 on hub 0
drmn0: ring kiq_2.1.0 uses VM inv eng 11 on hub 0
drmn0: ring sdma0 uses VM inv eng 0 on hub 1
drmn0: ring vcn_dec uses VM inv eng 1 on hub 1
drmn0: ring vcn_enc0 uses VM inv eng 4 on hub 1
drmn0: ring vcn_enc1 uses VM inv eng 5 on hub 1
drmn0: ring jpeg_dec uses VM inv eng 6 on hub 1

You should open an issue in the FreeBSD drm-kmod Github repository:
 
With my 6750XT it reverts back to the LLVM-Pipe graphics, tested on version 14, to see if it helped vs 13. Looks like I'm still out of luck and forced to run Linux still. I'll check dmesg log and get back to you, currently at work. Maybe I can help solve my issue by reporting something? I'd love to help but not sure how with hardware issues.
 
Hmmm I'm in the same boat as most here... I wanna get an AMD Radeon RX 6700 XT or better to replace my Intel ARC A770 so I can run FreeBSD as my main OS, but if it's not working under 13.x then I guess I'll wait. Thanks to the OP of this thread... I'll be watching it to learn when I can get a 6700 XT.
 
Looks like a bunch of changes to LINUXKPI made it to 13-STABLE recently (most of them seem to be related to Wifi though). If I recall correctly some of changes required for 5.15 should be imported soon too. The plan is to get this in before 13.3-RELEASE. That said, 14.0-RELEASE is right around the corner too.

 
So, I know this is slightly off topic but I got my presumed dead RX 480 working again on my test rig. If anyone here is on the FreeBSD discord you'll see screenshots of the about screens from KDE and XFCE. I go by the same name there as I do here. You can't miss it.
 
So I was able to get my 6750XT navi-flounder running with drm515 under 14. However Blender has some issues, but 3d games do not. Finally got it going :)
 
Back
Top