View Issue Details

IDProjectCategoryView StatusLast Update
0000676channel: kernel/el7kernel-mlpublic2021-04-16 01:17
Reportervacaloca Assigned Totoracat  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionwon't fix 
Summary0000676: missing radeon/oland_k_smc.bin firmware on 4.8.4-1.el7.elrepo.x86_64
DescriptionIt seems that from 4.6.4 to 4.8.4 there were some changes in the radeon driver --- see here: https://patchwork.kernel.org/patch/9148185/ and here: https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/commit/?id=bd43d6f58d46eee242a45d355006a0cf7c933008

This new firmware is not being packaged with the kernel nor with the latest linux-firmware RPM linux-firmware-20160216-43.git6ebf5d5.el7.elrepo.noarch.rpm located here: http://elrepo.org/linux/extras/el7/x86_64/RPMS/

dmesg output:

[ 1.727932] [drm] initializing kernel modesetting (OLAND 0x1002:0x6600 0x1028:0x06C5 0x81).
[ 1.728001] [drm] register mmio base: 0xF7100000
[ 1.728001] [drm] register mmio size: 262144
[ 1.759332] ATOM BIOS: C54332
[ 1.759340] [drm] GPU not posted. posting now...
[ 1.762618] radeon 0000:01:00.0: VRAM: 2048M 0x0000000000000000 - 0x000000007FFFFFFF (2048M used)
[ 1.762619] radeon 0000:01:00.0: GTT: 2048M 0x0000000080000000 - 0x00000000FFFFFFFF
[ 1.762619] [drm] Detected VRAM RAM=2048M, BAR=256M
[ 1.762620] [drm] RAM width 128bits DDR
[ 1.762715] [TTM] Zone kernel: Available graphics memory: 8158456 kiB
[ 1.762716] [TTM] Zone dma32: Available graphics memory: 2097152 kiB
[ 1.762716] [TTM] Initializing pool allocator
[ 1.762719] [TTM] Initializing DMA pool allocator
[ 1.762730] [drm] radeon: 2048M of VRAM memory ready
[ 1.762731] [drm] radeon: 2048M of GTT memory ready.
[ 1.762737] [drm] Loading oland Microcode
[ 1.762783] radeon 0000:01:00.0: Direct firmware load for radeon/oland_k_smc.bin failed with error -2
[ 1.762796] si_fw: mixing new and old firmware!
[ 1.762920] [drm:si_init [radeon]] *ERROR* Failed to load firmware!
[ 1.763021] radeon 0000:01:00.0: Fatal error during GPU init
[ 1.763120] [drm] radeon: finishing device.

Further, I attempted to fix this issue by cloning the above linux-firmware repository locally, copying the missing file to /lib/firmware and rebuilt the initramfs (dracut -f) and I get a nasty kernel panic on boot... not sure if this is because of insufficient testing on the part of the patch(es) above or if it is a versioning issue of the specific oland_k_smc.bin firmware that needs to be installed.
Additional Informationlspci -vmm of GPU in question:

Slot: 01:00.0
Class: Display controller
Vendor: Advanced Micro Devices, Inc. [AMD/ATI]
Device: Mars [Radeon HD 8670A/8670M/8750M]
SVendor: Dell
SDevice: Device 06c5
Rev: 81
TagsNo tags attached.
Attached Files

Activities

toracat

2016-10-28 18:55

administrator   ~0004887

We are trying to understand the error you are seeing. Probably because we do not have the right hardware to test on, we cannot reproduce the issue.

There is an update to kernel-ml (v4.8.5). Could you test it and see if the problem persists?

vacaloca

2016-10-28 23:21

reporter   ~0004888

No change with 4.8.5. The particular issue is that drivers/gpu/drm/radeon/si.c introduced a new firmware (oland_k_smc.bin) for the particular card that our systems have -- the if statement includes the particular card (switchable graphics). This new firmware is not in the default /lib/firmware contents, nor in linux-firmware-20160216-43.git6ebf5d5.el7.elrepo.noarch.rpm in the elrepo-extras repository.

As I mentioned, I attempted to get the above file from the linux-firmware git repo and rebuilt the initramfs via dracut -f and got a kernel panic, and unsure if if it's because some particular version of this firmware is required. I tried the only two I found and no dice with either. At the very minimum, the linux-firmware rpm is outdated, and perhaps should be updated close to the date that the changes were made to drivers/gpu/drm/radeon/si.c

The card DID initialize and work correctly on 4.6.4, perhaps the real bug is that this new firmware might have not been tested w/ this particular card, not sure.

toracat

2016-10-29 00:16

administrator   ~0004889

I built the linux-firmware package using the files from git (a179db9 as of 2016-10-05) and put it in:

http://elrepo.org/people/akemi/testing/el7/linux-firmware/linux-firmware-20161005-43.gita179db9.el7.noarch.rpm

Please note it is not signed. Can you give it a try?

vacaloca

2016-10-31 11:44

reporter   ~0004892

Tried it this morning -- rpm -i --force linux-firmware-20161005-43.gita179db9.el7.noarch.rpm and dracut -f

and then get the same kernel panic as I did when I downloaded the single oland_k_smc.bin and rebuilt initramfs w/ dracut -f from the same linux-firmware kernel git tree.

Seems like the problem is upstream. Also tried using the old firmware (oland_smc.bin) by renaming to oland_k_smc.bin, and dracut -f, but that also kernel panics.

I also upgraded the BIOS to the latest one available on the particular affected machine (Dell 7440 AIO) and that also did not fix the issue with the old or new firmware after rebuilding initramfs. Seems like these new particular code changes in the OP were not 100% tested.

Should I report on kernel.org directly? I attached screenshots of the kernel panic messages for reference.

toracat

2016-10-31 11:54

administrator   ~0004893

Yes, by all means, please report this upstream (kernel.org).

What was the last "good" version?

vacaloca

2016-10-31 12:09

reporter   ~0004894

Last 'good' version that I tested was 4.6.4 before upgrading to patch against dirtycow/dirtyc0w

Presumably it started shortly after the June 1, 2016 commits of 'drm/radeon: load different smc firmware on some SI variants', but unsure.

I *just* actually found a temporary workaround. Googled the messages before the panic which led to previous suggestions of adding radeon.runpm=0 as a kernel boot parameter to disable power management on the AMD card, and with this the new firmware from linux-firmware-20161005-43.gita179db9.el7.noarch.rpm loads correctly and I'm able to do the switching between the integrated graphics & radeon card... i.e:

bash-4.2$ DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Gallium 0.4 on AMD OLAND

bash-4.2$ DRI_PRIME=0 glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa DRI Intel(R) Skylake DT GT2

But yes, will report this upstream with the potential workaround for the moment as well.

toracat

2021-04-16 01:17

administrator   ~0007552

Closing due to inactivity.

Issue History

Date Modified Username Field Change
2016-10-27 14:04 vacaloca New Issue
2016-10-27 14:04 vacaloca Status new => assigned
2016-10-27 14:04 vacaloca Assigned To => burakkucat
2016-10-28 18:55 toracat Note Added: 0004887
2016-10-28 23:21 vacaloca Note Added: 0004888
2016-10-29 00:16 toracat Note Added: 0004889
2016-10-31 08:41 burakkucat Assigned To burakkucat => toracat
2016-10-31 08:41 burakkucat Status assigned => feedback
2016-10-31 11:41 vacaloca File Added: 00034IMG_00034_BURST20161031130259.jpg
2016-10-31 11:42 vacaloca File Added: 00035IMG_00035_BURST20161031130259.jpg
2016-10-31 11:44 vacaloca Note Added: 0004892
2016-10-31 11:54 toracat Note Added: 0004893
2016-10-31 12:09 vacaloca Note Added: 0004894
2021-04-16 01:17 toracat Status feedback => closed
2021-04-16 01:17 toracat Resolution open => won't fix
2021-04-16 01:17 toracat Note Added: 0007552