AMDGPU Support

Morris Zuss morris at
Mon May 2 15:56:20 UTC 2022

On 02/05/2022 15:26, Denis 'GNUtoo' Carikli wrote:

>>          }
>>      } else if (adev->asic_type == CHIP_POLARIS11 ||
>>              adev->asic_type == CHIP_POLARIS10 ||
>>              adev->asic_type == CHIP_POLARIS12) {
>>          r = gmc_v8_0_polaris_mc_load_microcode(adev);
>>          if (r) {
>>              DRM_ERROR("Failed to load MC firmware!\n");
>>              return r;
> If for some reasons it it's isn't patched it can fail here. Could you
> verify in the sources generated by the linux-libre scripts that the
> return r is removed/commented here?

After adding the pr_err() and recompiling, the issue of trying to get 
past loading the MC firmware seemed to have gone away. I must have done 
something wrong on my part and it didn't apply. Sorry for the time spent 
sifting through those other files.

Here is the dmesg output after recompiling:

> [drm:gfx_v8_0_sw_init.cold [amdgpu]] *ERROR* Failed to load gfx firmware!

I noticed we are reaching the gfx_v8_0.c file again, so I went ahead and 
edited the deblob script to comment out the return statement under 
gfx_v8_0_init_microcode(adev). I double checked and it did comment it out:

>         r = gfx_v8_0_init_microcode(adev);
>         if (r) {
>                 DRM_ERROR("Failed to load gfx firmware!\n");
>                 /*(DEBLOBBED)*/
>         }

After compiling again, the dmesg output was pretty much the same:

> *ERROR* sw_init of IP block <gfx_v8_0> failed -2

One thing I did notice is that the amdgpu is being loaded now according 
to lspci -k. Although I cannot seem to unload the amdgpu module and when 
I try to shutdown it just hangs indefinitely unless I force it off.

> rmmod: ERROR: Module amdgpu is in use

> Could you also provide the output of the following command:
>> sudo lspci -s 0000:07:00.0 -vvvv -nn

Here is the output of that command:

This is what my deblob script currently looks like as well:

-- Morris Zuss

More information about the linux-libre mailing list