freebsd / drm-kmod

drm driver for FreeBSD
157 stars 68 forks source link

Firmware fails to load a few times until its loads correctly #323

Open Alexander88207 opened 2 weeks ago

Alexander88207 commented 2 weeks ago

Describe the bug

Looks like its looking in the wrong path in the first times?

pkg info -lx gpu-firmware-amd-kmod-navy-flounder
gpu-firmware-amd-kmod-navy-flounder-20230625_2:
    /boot/modules/amdgpu_navy_flounder_ce_bin.ko
    /boot/modules/amdgpu_navy_flounder_dmcub_bin.ko
    /boot/modules/amdgpu_navy_flounder_me_bin.ko
    /boot/modules/amdgpu_navy_flounder_mec2_bin.ko
    /boot/modules/amdgpu_navy_flounder_mec_bin.ko
    /boot/modules/amdgpu_navy_flounder_pfp_bin.ko
    /boot/modules/amdgpu_navy_flounder_rlc_bin.ko
    /boot/modules/amdgpu_navy_flounder_sdma_bin.ko
    /boot/modules/amdgpu_navy_flounder_smc_bin.ko
    /boot/modules/amdgpu_navy_flounder_sos_bin.ko
    /boot/modules/amdgpu_navy_flounder_ta_bin.ko
    /boot/modules/amdgpu_navy_flounder_vcn_bin.ko
navy_flounder_sos.bin: could not load binary firmware /boot/firmware/navy_flounder_sos.bin either
amdgpu/navy_flounder_sos.bin: could not load binary firmware /boot/firmware/amdgpu/navy_flounder_sos.bin either
amdgpu_navy_flounder_sos.bin: could not load binary firmware /boot/firmware/amdgpu_navy_flounder_sos.bin either
drmn0: successfully loaded firmware image 'amdgpu/navy_flounder_sos.bin'
navy_flounder_ta.bin: could not load binary firmware /boot/firmware/navy_flounder_ta.bin either
amdgpu/navy_flounder_ta.bin: could not load binary firmware /boot/firmware/amdgpu/navy_flounder_ta.bin either
amdgpu_navy_flounder_ta.bin: could not load binary firmware /boot/firmware/amdgpu_navy_flounder_ta.bin either
drmn0: successfully loaded firmware image 'amdgpu/navy_flounder_ta.bin'
drmn0: PSP runtime database doesn't exist
drmn0: PSP runtime database doesn't exist
navy_flounder_smc.bin: could not load binary firmware /boot/firmware/navy_flounder_smc.bin either
amdgpu/navy_flounder_smc.bin: could not load binary firmware /boot/firmware/amdgpu/navy_flounder_smc.bin either
amdgpu_navy_flounder_smc.bin: could not load binary firmware /boot/firmware/amdgpu_navy_flounder_smc.bin either
drmn0: successfully loaded firmware image 'amdgpu/navy_flounder_smc.bin'
drmn0: STB initialized to 2048 entrieslkpi_iic0: <LinuxKPI I2C> on drmn0
iicbus0: <Philips I2C bus> on lkpi_iic0
iic0: <I2C generic I/O> on iicbus0
lkpi_iic1: <LinuxKPI I2C> on drmn0
iicbus1: <Philips I2C bus> on lkpi_iic1
iic1: <I2C generic I/O> on iicbus1
navy_flounder_dmcub.bin: could not load binary firmware /boot/firmware/navy_flounder_dmcub.bin either
amdgpu/navy_flounder_dmcub.bin: could not load binary firmware /boot/firmware/amdgpu/navy_flounder_dmcub.bin either
amdgpu_navy_flounder_dmcub.bin: could not load binary firmware /boot/firmware/amdgpu_navy_flounder_dmcub.bin either
drmn0: successfully loaded firmware image 'amdgpu/navy_flounder_dmcub.bin'
[drm] Loading DMUB firmware via PSP: version=0x0202001E
navy_flounder_pfp.bin: could not load binary firmware /boot/firmware/navy_flounder_pfp.bin either
amdgpu/navy_flounder_pfp.bin: could not load binary firmware /boot/firmware/amdgpu/navy_flounder_pfp.bin either
amdgpu_navy_flounder_pfp.bin: could not load binary firmware /boot/firmware/amdgpu_navy_flounder_pfp.bin either
drmn0: successfully loaded firmware image 'amdgpu/navy_flounder_pfp.bin'
navy_flounder_me.bin: could not load binary firmware /boot/firmware/navy_flounder_me.bin either
amdgpu/navy_flounder_me.bin: could not load binary firmware /boot/firmware/amdgpu/navy_flounder_me.bin either
amdgpu_navy_flounder_me.bin: could not load binary firmware /boot/firmware/amdgpu_navy_flounder_me.bin either
drmn0: successfully loaded firmware image 'amdgpu/navy_flounder_me.bin'
navy_flounder_ce.bin: could not load binary firmware /boot/firmware/navy_flounder_ce.bin either
amdgpu/navy_flounder_ce.bin: could not load binary firmware /boot/firmware/amdgpu/navy_flounder_ce.bin either
amdgpu_navy_flounder_ce.bin: could not load binary firmware /boot/firmware/amdgpu_navy_flounder_ce.bin either
drmn0: successfully loaded firmware image 'amdgpu/navy_flounder_ce.bin'
navy_flounder_rlc.bin: could not load binary firmware /boot/firmware/navy_flounder_rlc.bin either
amdgpu/navy_flounder_rlc.bin: could not load binary firmware /boot/firmware/amdgpu/navy_flounder_rlc.bin either
amdgpu_navy_flounder_rlc.bin: could not load binary firmware /boot/firmware/amdgpu_navy_flounder_rlc.bin either
drmn0: successfully loaded firmware image 'amdgpu/navy_flounder_rlc.bin'
navy_flounder_mec.bin: could not load binary firmware /boot/firmware/navy_flounder_mec.bin either
amdgpu/navy_flounder_mec.bin: could not load binary firmware /boot/firmware/amdgpu/navy_flounder_mec.bin either
amdgpu_navy_flounder_mec.bin: could not load binary firmware /boot/firmware/amdgpu_navy_flounder_mec.bin either
drmn0: successfully loaded firmware image 'amdgpu/navy_flounder_mec.bin'
navy_flounder_mec2.bin: could not load binary firmware /boot/firmware/navy_flounder_mec2.bin either
amdgpu/navy_flounder_mec2.bin: could not load binary firmware /boot/firmware/amdgpu/navy_flounder_mec2.bin either
amdgpu_navy_flounder_mec2.bin: could not load binary firmware /boot/firmware/amdgpu_navy_flounder_mec2.bin either
drmn0: successfully loaded firmware image 'amdgpu/navy_flounder_mec2.bin'
navy_flounder_sdma.bin: could not load binary firmware /boot/firmware/navy_flounder_sdma.bin either
amdgpu/navy_flounder_sdma.bin: could not load binary firmware /boot/firmware/amdgpu/navy_flounder_sdma.bin either
amdgpu_navy_flounder_sdma.bin: could not load binary firmware /boot/firmware/amdgpu_navy_flounder_sdma.bin either
drmn0: successfully loaded firmware image 'amdgpu/navy_flounder_sdma.bin'
[drm] use_doorbell being set to: [true]
[drm] use_doorbell being set to: [true]
navy_flounder_vcn.bin: could not load binary firmware /boot/firmware/navy_flounder_vcn.bin either
amdgpu/navy_flounder_vcn.bin: could not load binary firmware /boot/firmware/amdgpu/navy_flounder_vcn.bin either
amdgpu_navy_flounder_vcn.bin: could not load binary firmware /boot/firmware/amdgpu_navy_flounder_vcn.bin either
drmn0: successfully loaded firmware image 'amdgpu/navy_flounder_vcn.bin'

FreeBSD version FreeBSD Home 14.2-STABLE FreeBSD 14.2-STABLE stable/14-da80e62f9 GENERIC amd64 1402500 1402500

PCI Info

hostb0@pci0:0:0:0:  class=0x060000 rev=0x05 hdr=0x00 vendor=0x8086 device=0x9b53 subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake-S 6c Host Bridge/DRAM Controller'
    class      = bridge
    subclass   = HOST-PCI
pcib1@pci0:0:1:0:   class=0x060400 rev=0x05 hdr=0x01 vendor=0x8086 device=0x1901 subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    device     = '6th-10th Gen Core Processor PCIe Controller (x16)'
    class      = bridge
    subclass   = PCI-PCI
xhci0@pci0:0:20:0:  class=0x0c0330 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43ed subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-H USB 3.2 Gen 2x1 xHCI Host Controller'
    class      = serial bus
    subclass   = USB
none0@pci0:0:20:2:  class=0x050000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43ef subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-H Shared SRAM'
    class      = memory
    subclass   = RAM
ig4iic0@pci0:0:21:0:    class=0x0c8000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43e8 subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-H Serial IO I2C Controller'
    class      = serial bus
none1@pci0:0:22:0:  class=0x078000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43e0 subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-H Management Engine Interface'
    class      = simple comms
pcib4@pci0:0:27:0:  class=0x060400 rev=0x11 hdr=0x01 vendor=0x8086 device=0x43c4 subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-PCI
pcib5@pci0:0:28:0:  class=0x060400 rev=0x11 hdr=0x01 vendor=0x8086 device=0x43bc subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-H PCI Express Root Port'
    class      = bridge
    subclass   = PCI-PCI
pcib6@pci0:0:28:7:  class=0x060400 rev=0x11 hdr=0x01 vendor=0x8086 device=0x43bf subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-PCI
pcib7@pci0:0:29:0:  class=0x060400 rev=0x11 hdr=0x01 vendor=0x8086 device=0x43b0 subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-H PCI Express Root Port'
    class      = bridge
    subclass   = PCI-PCI
isab0@pci0:0:31:0:  class=0x060100 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4387 subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    device     = 'B560 LPC/eSPI Controller'
    class      = bridge
    subclass   = PCI-ISA
hdac1@pci0:0:31:3:  class=0x040300 rev=0x11 hdr=0x00 vendor=0x8086 device=0xf0c8 subvendor=0x1043 subdevice=0x881a
    vendor     = 'Intel Corporation'
    class      = multimedia
    subclass   = HDA
ichsmb0@pci0:0:31:4:    class=0x0c0500 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43a3 subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-H SMBus Controller'
    class      = serial bus
    subclass   = SMBus
none2@pci0:0:31:5:  class=0x0c8000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43a4 subvendor=0x1043 subdevice=0x8694
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-H SPI Controller'
    class      = serial bus
pcib2@pci0:1:0:0:   class=0x060400 rev=0xc5 hdr=0x01 vendor=0x1002 device=0x1478 subvendor=0x0000 subdevice=0x0000
    vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
    device     = 'Navi 10 XL Upstream Port of PCI Express Switch'
    class      = bridge
    subclass   = PCI-PCI
pcib3@pci0:2:0:0:   class=0x060400 rev=0x00 hdr=0x01 vendor=0x1002 device=0x1479 subvendor=0x1002 subdevice=0x1479
    vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
    device     = 'Navi 10 XL Downstream Port of PCI Express Switch'
    class      = bridge
    subclass   = PCI-PCI
vgapci0@pci0:3:0:0: class=0x030000 rev=0xc5 hdr=0x00 vendor=0x1002 device=0x73df subvendor=0x1043 subdevice=0x05cb
    vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
    device     = 'Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT]'
    class      = display
    subclass   = VGA
hdac0@pci0:3:0:1:   class=0x040300 rev=0x00 hdr=0x00 vendor=0x1002 device=0xab28 subvendor=0x1002 subdevice=0xab28
    vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
    device     = 'Navi 21/23 HDMI/DP Audio Controller'
    class      = multimedia
    subclass   = HDA
nvme0@pci0:4:0:0:   class=0x010802 rev=0x00 hdr=0x00 vendor=0x144d device=0xa809 subvendor=0x144d subdevice=0xa801
    vendor     = 'Samsung Electronics Co Ltd'
    device     = 'NVMe SSD Controller 980 (DRAM-less)'
    class      = mass storage
    subclass   = NVM
re0@pci0:6:0:0: class=0x020000 rev=0x05 hdr=0x00 vendor=0x10ec device=0x8125 subvendor=0x1043 subdevice=0x87d7
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8125 2.5GbE Controller'
    class      = network
    subclass   = ethernet

DRM KMOD version

pkg info drm-61-kmod
drm-61-kmod-6.1.92_2
Name           : drm-61-kmod
Version        : 6.1.92_2
Installed on   : Sat Nov  9 21:09:26 2024 CET
Origin         : graphics/drm-61-kmod
Architecture   : FreeBSD:14:amd64

To Reproduce Load the driver.

Additional context Everything works fine didn't notice it otherwise just saw it while booting up.

wulf7 commented 2 weeks ago

It is an expected behavior. drm-kmod tries to load firmware as a file than fallbacks to load it as kmod with success.

Should be closed as NOT-A-BUG

P.S.: The messages are really confusing

Alexander88207 commented 2 weeks ago

Alright, closing this.

Thanks for your quick answer.

wulf7 commented 2 weeks ago

Reopen NOT-A-BUG as I expect more bug reports like this one. The things are really very confusing.

evadot commented 2 weeks ago

Both main and stable/14 (so 14.2 too) can load binary files now, I plan to add support for this in the near future (I just need to adapt the port for 13 as it doesn't have this feature and never will). We can leave this bug open for now.