You are not logged in.

#1 2018-11-14 07:32:18

Amao_Three
Member
Registered: 2018-07-14
Posts: 15

[SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

My laptop use intel i7-6500U + amd r5 m430.
After upgrade (4.19.1), kernal can't load the gpu firmware anymore.
linux-firmware is the last version and I try to reinstall but not solve this.

 $ dmesg | grep amdgpu
[    0.000000] Command line: initrd=\intel-ucode.img initrd=\initramfs-linux.img root=/dev/sda2 rw radeon.si_support=0 amdgpu.si_support=1
[    0.166929] Kernel command line: initrd=\intel-ucode.img initrd=\initramfs-linux.img root=/dev/sda2 rw radeon.si_support=0 amdgpu.si_support=1
[    1.502494] [drm] amdgpu kernel modesetting enabled.
[    1.503467] amdgpu 0000:03:00.0: enabling device (0500 -> 0503)
[    1.503670] [drm:amdgpu_ucode_get_load_type [amdgpu]] *ERROR* Unknown firmware load type
[    1.517397] amdgpu 0000:03:00.0: Direct firmware load for amdgpu/hainan_mc.bin failed with error -2
[    1.517399] amdgpu 0000:03:00.0: si_mc: Failed to load firmware "amdgpu/hainan_mc.bin"
[    1.517435] amdgpu 0000:03:00.0: Failed to load mc firmware!
[    1.517534] [drm:amdgpu_device_init.cold.14 [amdgpu]] *ERROR* sw_init of IP block <gmc_v6_0> failed -2
[    1.517593] amdgpu 0000:03:00.0: amdgpu_device_ip_init failed
[    1.517632] amdgpu 0000:03:00.0: Fatal error during GPU init
[    1.517657] [drm] amdgpu: finishing device.
[    1.518035] amdgpu: probe of 0000:03:00.0 failed with error -2

Final solution:

loqs wrote:

https://git.kernel.org/pub/scm/linux/ke … 5c6ef41e0d
It seems the MODULE_FIRMWARE line has always been missing for hainan_mc.bin from the amdgpu module.
When it shared the same path as the radeon module which did list hainan_mc.bin then so long as both modules were loaded into the initrd the firmware would be pulled in by the radeon module.
Edit:
@Amao_Three please try adding /usr/lib/firmware/amdgpu/hainan_mc.bin to the FILES array of mkinitcpio.conf rebuild the initrd and see if that has any effect if not please post and updated dmesg.

Last edited by Amao_Three (2018-11-17 19:10:42)

Offline

#2 2018-11-14 11:29:29

nassi
Member
From: Finland
Registered: 2017-01-27
Posts: 35

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

Does your /usr/lib/firmware/amdgpu/ directory contain the file in question (hainan_mc.bin)? I don't really know much about modules, but here's my thinking: either the file itself is missing even though you have installed and also tried reinstalling the linux-firmware package, or for some reason cannot be accessed during boot. What about mentions of amdgpu in

lsinitcpio /boot/initramfs-linux.img

?

Offline

#3 2018-11-14 13:02:16

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,920

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#4 2018-11-14 16:01:35

loqs
Member
Registered: 2014-03-06
Posts: 17,371

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

@Lone_wolf

[    1.517397] amdgpu 0000:03:00.0: Direct firmware load for amdgpu/hainan_mc.bin failed with error -2

Does that not indicate the fallback to direct firmware loading also failed?

Offline

#5 2018-11-15 02:27:10

Amao_Three
Member
Registered: 2018-07-14
Posts: 15

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

nassi wrote:

Does your /usr/lib/firmware/amdgpu/ directory contain the file in question (hainan_mc.bin)? I don't really know much about modules, but here's my thinking: either the file itself is missing even though you have installed and also tried reinstalling the linux-firmware package, or for some reason cannot be accessed during boot. What about mentions of amdgpu in

lsinitcpio /boot/initramfs-linux.img

?

$ lsinitcpio /boot/initramfs-linux.img  | grep hainan
usr/lib/firmware/radeon/hainan_pfp.bin
usr/lib/firmware/radeon/hainan_me.bin
usr/lib/firmware/radeon/hainan_ce.bin
usr/lib/firmware/radeon/hainan_mc.bin
usr/lib/firmware/radeon/hainan_rlc.bin
usr/lib/firmware/radeon/hainan_smc.bin
usr/lib/firmware/radeon/hainan_k_smc.bin
usr/lib/firmware/amdgpu/hainan_smc.bin
usr/lib/firmware/amdgpu/hainan_k_smc.bin
usr/lib/firmware/amdgpu/hainan_pfp.bin
usr/lib/firmware/amdgpu/hainan_me.bin
usr/lib/firmware/amdgpu/hainan_ce.bin
usr/lib/firmware/amdgpu/hainan_rlc.bin

amdgpu/hainan_mc.bin is lost.

I try to reinstall linux and linux-firmware, but not work still.

lspci can found my card, but it not appear in the xrander provider list (means not work).

Last edited by Amao_Three (2018-11-15 02:32:02)

Offline

#6 2018-11-15 07:05:17

loqs
Member
Registered: 2014-03-06
Posts: 17,371

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

modinfo -k 4.19.1-arch1-1-ARCH amdgpu | grep amdgpu/hainan_mc.bin

The module does not list that firmware as being needed by the module so mkinitcpio does not include it in the initrd.

Offline

#7 2018-11-15 08:56:10

progandy
Member
Registered: 2012-05-17
Posts: 5,193

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

loqs wrote:
modinfo -k 4.19.1-arch1-1-ARCH amdgpu | grep amdgpu/hainan_mc.bin

The module does not list that firmware as being needed by the module so mkinitcpio does not include it in the initrd.

In that case, you can try to add it manually with the FILES array in mkinitcpio.conf. If that works, then I think a bug report for amdgpu is in order.

FILES=(/usr/lib/firmware/amdgpu/hainan_mc.bin)

Last edited by progandy (2018-11-15 09:01:36)


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |

Offline

#8 2018-11-15 11:13:07

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,920

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

loqs wrote:

@Lone_wolf

[    1.517397] amdgpu 0000:03:00.0: Direct firmware load for amdgpu/hainan_mc.bin failed with error -2

Does that not indicate the fallback to direct firmware loading also failed?

Yup, I missed that part.

ddg'ing that error message gives https://bbs.archlinux.org/viewtopic.php?id=241528 as first result .

It's in laptop forum ( which i rarely check) and shows  a solution/workaround that works for atleast 2 people.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#9 2018-11-15 11:29:01

progandy
Member
Registered: 2012-05-17
Posts: 5,193

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

@Lone_Wolf: That workaround is probably not working anymore since in kernel 4.19 amdgpu changed the firmware path from radeon/hainan_mc.bin to amdgpu/hainan_mc.bin.

Last edited by progandy (2018-11-15 11:29:30)


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |

Offline

#10 2018-11-15 13:04:38

loqs
Member
Registered: 2014-03-06
Posts: 17,371

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

https://git.kernel.org/pub/scm/linux/ke … 5c6ef41e0d
It seems the MODULE_FIRMWARE line has always been missing for hainan_mc.bin from the amdgpu module.
When it shared the same path as the radeon module which did list hainan_mc.bin then so long as both modules were loaded into the initrd the firmware would be pulled in by the radeon module.
Edit:
@Amao_Three please try adding /usr/lib/firmware/amdgpu/hainan_mc.bin to the FILES array of mkinitcpio.conf rebuild the initrd and see if that has any effect if not please post and updated dmesg.

Last edited by loqs (2018-11-15 13:21:33)

Offline

#11 2018-11-17 19:07:23

Amao_Three
Member
Registered: 2018-07-14
Posts: 15

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

loqs wrote:

https://git.kernel.org/pub/scm/linux/ke … 5c6ef41e0d
It seems the MODULE_FIRMWARE line has always been missing for hainan_mc.bin from the amdgpu module.
When it shared the same path as the radeon module which did list hainan_mc.bin then so long as both modules were loaded into the initrd the firmware would be pulled in by the radeon module.
Edit:
@Amao_Three please try adding /usr/lib/firmware/amdgpu/hainan_mc.bin to the FILES array of mkinitcpio.conf rebuild the initrd and see if that has any effect if not please post and updated dmesg.

@loqs
That's work! Thanks a lot.

Last edited by Amao_Three (2018-11-17 19:07:48)

Offline

#12 2018-11-17 19:45:45

loqs
Member
Registered: 2014-03-06
Posts: 17,371

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

Please consider sending a mailing  to  the amd-gfx list to let upstream know that
drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c is missing the following from the its list of firmwares

MODULE_FIRMWARE("amdgpu/hainan_mc.bin");

and reference this thread

Offline

#13 2018-11-17 19:46:51

progandy
Member
Registered: 2012-05-17
Posts: 5,193

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

I already sent the report to the amdgpu section of the freedesktop bug tracker.
https://bugs.freedesktop.org/show_bug.cgi?id=108780

Last edited by progandy (2018-11-17 19:50:03)


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |

Offline

#14 2018-11-17 19:50:14

loqs
Member
Registered: 2014-03-06
Posts: 17,371

Re: [SOLVED] After upgrade the kernal, amdgpu firmware can't load anymore

Thank you progandy.

Offline

Board footer

Powered by FluxBB