Solved HP Prodesk with AMD Ryzen 5 pro w/ Radeon Vega Graphics: Can't get Xorg working

So, I just bought a used version of the above computer. FreeBSD 14.3 installs fine. But getting X to work has been frustrating. The docs say I should be using the "amdgpu" module. Unfortunately, that crashes the system. Here's what dmsg reads when I try to load amdgpu:
Code:
drmn0: <drmn> on vgapci0
vgapci0: child drmn0 requested pci_enable_io
vgapci0: child drmn0 requested pci_enable_io
[drm] initializing kernel modesetting (RAVEN 0x1002:0x15DD 0x103C:0x8626 0xD6).
[drm] register mmio base: 0xB0600000
[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 <powerplay>
[drm] add ip block number 5 <dm>
[drm] add ip block number 6 <gfx_v9_0>
[drm] add ip block number 7 <sdma_v4_0>
[drm] add ip block number 8 <vcn_v1_0>
amdgpu/raven_gpu_info.bin: could not load binary firmware /boot/firmware/amdgpu/raven_gpu_info.bin either
raven_gpu_info.bin: could not load binary firmware /boot/firmware/raven_gpu_info.bin either
amdgpu_raven_gpu_info.bin: could not load binary firmware /boot/firmware/amdgpu_raven_gpu_info.bin either
drmn0: successfully loaded firmware image 'amdgpu/raven_gpu_info.bin'
[drm] BIOS signature incorrect 0 0
[drm] BIOS signature incorrect ff ff
[drm] BIOS signature incorrect 0 0
drmn0: Unable to locate a BIOS ROM
drmn0: Fatal error during GPU init
drmn0: amdgpu: finishing device.


Fatal trap 12: page fault while in kernel mode
cpuid = 6; apic id = 06
fault virtual address    = 0x18
fault code        = supervisor read data, page not present
instruction pointer    = 0x20:0xffffffff80f011d4
stack pointer            = 0x28:0xfffffe00c0c54800
frame pointer            = 0x28:0xfffffe00c0c54820
code segment        = base 0x0, limit 0xfffff, type 0x1b
            = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags    = interrupt enabled, resume, IOPL = 0
current process        = 1696 (kldload)
rdi: 0000000000000000 rsi: 0000000000000000 rdx: 0000000000000000
rcx: 0000000000000000  r8: fffffffffffffff0  r9: fffffffffffffff0
rax: 0000000000000001 rbx: fffff8002fe7a740 rbp: fffffe00c0c54820
r10: 00000000000f4240 r11: 0000000000000000 r12: fffff80001d65900
r13: fffff80001d64000 r14: 0000000000000000 r15: fffffe00d0e0a7a8
trap number        = 12
panic: page fault
cpuid = 6
time = 1758306974
KDB: stack backtrace:
#0 0xffffffff80ba8f1d at kdb_backtrace+0x5d
#1 0xffffffff80b5aa11 at vpanic+0x161
#2 0xffffffff80b5a8a3 at panic+0x43
#3 0xffffffff8104db7a at trap_pfault+0x3da
#4 0xffffffff81023d88 at calltrap+0x8
#5 0xffffffff8370ce2c at unregister_fictitious_range+0xc
#6 0xffffffff83816a40 at amdgpu_device_fini_hw+0x190
#7 0xffffffff83834554 at amdgpu_driver_load_kms+0x84
#8 0xffffffff83825f70 at amdgpu_pci_probe+0x290
#9 0xffffffff80ddbb43 at linux_pci_attach_device+0x443
#10 0xffffffff80b9789d at device_attach+0x43d
#11 0xffffffff80b996c3 at bus_generic_driver_added+0x73
#12 0xffffffff80b94e79 at devclass_driver_added+0x29
#13 0xffffffff80b94e0e at devclass_add_driver+0x11e
#14 0xffffffff80ddc9fc at _linux_pci_register_driver+0xcc
#15 0xffffffff83825cd0 at amdgpu_evh+0x80
#16 0xffffffff80b34bb5 at module_register_init+0x85
#17 0xffffffff80b253ef at linker_load_module+0xbcf
Uptime: 9m48s

I would be happy to use the "VESA" drivers, but I get:
Code:
[   1555.256] (EE) No devices detected.
[   1555.256] (EE)
Fatal server error:
[   1555.256] (EE) no screens found(EE)
in my Xorg.0.log

There must be a way to make this work without the amdgpu module. Any suggestions
 
Generally as a fallback VESA is for old system console. For the newer vt(4) system console the corresponding driver is SCFB. vt is default console.

But really you don't want to mess with that un-accelerated driver. Radeon VEGA should work. Did you try RADEON driver instead?

Best advice I can give you is install drm-kmod package and delete all xorg conf files you created. Let the system detect card. drm-kmod contains all drivers.

For scfb the manual is clear what you need.
Section 5.5.2 Example 4

/usr/local/etc/X11/xorg.conf.d/20-scfb.conf
Code:
Section "Device"
    Identifier "Card0"
    Driver     "scfb"
EndSection
 
drmn0: Unable to locate a BIOS ROM drmn0: Fatal error during GPU init
This fail is due to BIOS setting.

Try turning off "Legacy BIOS"/ "CSM"booting and do "EFI Only" and check for other spots in BIOS with EFI/Legacy choices.
Jam all settings to EFI.
 
Generally as a fallback VESA is for old system console. For the newer vt(4) system console the corresponding driver is SCFB. vt is default console.

But really you don't want to mess with that un-accelerated driver. Radeon VEGA should work. Did you try RADEON driver instead?

Best advice I can give you is install drm-kmod package and delete all xorg conf files you created. Let the system detect card. drm-kmod contains all drivers.

For scfb the manual is clear what you need.
Section 5.5.2 Example 4

/usr/local/etc/X11/xorg.conf.d/20-scfb.conf
Code:
Section "Device"
    Identifier "Card0"
    Driver     "scfb"
EndSection
Phishfry, I did try the Radeonkms driver, but no luck. I have no config files in xorg.d because this is a new install. I've been through all the Handbook documentation, but nothing addresses this. I've also queried the forums looking for the same machine, but without much luck to my problem. Seems my system just doesn't like the driver.
 
Ok, I figured it out thanks to Phishfry. In fact, it was the BIOS, and it need to be updated. Once I did that the amdgpu module loaded without a problem. Thanks for pointing me in the right direction.
 
Back
Top