GPU firmware naming and problems with loading

Jan Beich jbeich at FreeBSD.org
Tue Apr 28 21:19:03 UTC 2020


Alexey Dokuchaev via freebsd-x11 <freebsd-x11 at freebsd.org> writes:

> On Fri, Apr 24, 2020 at 10:42:29PM +0700, Alexey Dokuchaev wrote:
>
>> On Thu, Apr 23, 2020 at 10:42:22PM +0200, Niclas Zeising wrote:
>> > On 2020-04-21 15:09, Alexey Dokuchaev wrote:
>> > > ...
>> > >Why is it trying to load TAHITI modules is another question.
>> > 
>> > I don't know why it tries to load TAHITI, I'll try to figure more
>> > out, but in general, the firmware selection code is from the original
>> > source, so it should be the same elsewhere.  Does TAHITI load with
>> > drm-legacy-kmod?
>> 
>> Nope.  This is for legacy (kldstat | grep radeon_):
>> 41    1 0xffffffff81b31000     2385 radeon_ARUBA_pfp_bin.ko
>> 42    1 0xffffffff81b34000     2383 radeon_ARUBA_me_bin.ko
>> 43    1 0xffffffff81b37000     1985 radeon_ARUBA_rlc_bin.ko
>> 
>> This is for drm-{current,devel}-kmod (surprisingly, couple of my later
>> attempts to "kldload radeonkms" did not hang the laptop, but the very
>> latest still did):
>> 
>> 48    1 0xffffffff819d3000     2385 radeon_ARUBA_pfp_bin.ko
>> 49    1 0xffffffff819d6000     2383 radeon_ARUBA_me_bin.ko
>> 50    1 0xffffffff819d9000     1985 radeon_ARUBA_rlc_bin.ko
>> 51    1 0xffffffff819db000    35ba7 radeon_TAHITI_uvd_bin.ko
>> 52    1 0xffffffff81a11000     beb7 radeon_TAHITI_vce_bin.ko
>> 
>> Both drm-fbsd{11.2,12.0}-kmod still lock up the laptop, but the logs
>> show they do load TAHITI modules as well.
>
> Interestingly, Gentoo Wiki lists both ARUBA and TAHITI firmware as
> needed for NI/ARUBA:
>
>     https://wiki.gentoo.org/wiki/Radeon
>
> Unfortunately, it's unclear if that requirement predates Linux 4.14 (or
> even some older version) or not.  Maybe drm-legacy-kmod only needs
> and thus loads ARUBA files, while drm-{current,devel}-kmod need both.

TAHITI firmware on ARUBA is probably due to the following changes:
https://github.com/torvalds/linux/commit/a918efab631a # TAHITI_vce
https://github.com/torvalds/linux/commit/f2ba57b5eab8 # TAHITI_uvd

For example,

  $ rg TAHITI_vce
  drivers/gpu/drm/radeon/radeon_vce.c
  41:#define FIRMWARE_TAHITI      "radeon/TAHITI_vce.bin"

  $ rg -B6 FIRMWARE_TAHITI
  drivers/gpu/drm/radeon/radeon_vce.c
  67-     switch (rdev->family) {
  68-     case CHIP_TAHITI:
  69-     case CHIP_PITCAIRN:
  70-     case CHIP_VERDE:
  71-     case CHIP_OLAND:
  72-     case CHIP_ARUBA:
  73:             fw_name = FIRMWARE_TAHITI;

  $ git blame drivers/gpu/drm/radeon/radeon_vce.c | fgrep 'case CHIP_ARUBA'
  a918efab631a5 (Christian König   2015-05-11 22:01:53 +0200  72)         case CHIP_ARUBA:

  $ git log -1 -p a918efab631a5 | fgrep -A3 CHIP_ARUBA
  +       case CHIP_ARUBA:
  +               fw_name = FIRMWARE_TAHITI;
  +               break;
  +


More information about the freebsd-x11 mailing list