[Nouveau] Firmware required?

Ilia Mirkin imirkin at alum.mit.edu
Sun Feb 2 18:57:18 UTC 2020


All GPUs supported by nouveau (Riva TNT and newer) can work without
additional firmware. It all depends on the definition of what one
means by "work", of course.

Across the board, modesetting works without any additional firmware
(i.e. lighting up displays, making pictures appear on them), including
DP-MST. There is no support for HDR yet, but it's something I've
dabbled with a bit. (No firmware required.)

NV17/18 boards (GeForce 2/4 MX) have support for MPEG1/MPEG2 decoding
acceleration, but there is no support for this in nouveau (no firmware
required, just ... motivation).

NV4x/G7x (and the G80, I think) boards have a VP1 video decoding
engine which helps with some sort of WMV accel, which would require
firmware to operate. However there is no support for this in nouveau,
no linux drivers shipped by NVIDIA ever supported this, and by all
accounts, it didn't actually make things faster on Windows.

Starting with the G84 (and nouveau support ending at the GK20x
series), you need additional firmware for video decoding acceleration.
There is a script to extract this firmware from shipped NVIDIA
drivers, although the results can't be redistributed. This is detailed
at https://nouveau.freedesktop.org/wiki/VideoAcceleration/ . There are
some bugs in the H264 decoding which have never been tracked down, but
for most videos, it works fine.

A handful of GK106 boards (marketed as GTX 660) benefit from
NVIDIA-supplied context switching firmware. We have no idea why - the
nouveau-supplied one should be fine, but probably some error condition
is mishandled. Or something else odd.

Kepler and newer boards support video encoding, which requires
firmware, but nouveau has no support for this.

Starting with GM20x (generally, marketing names like GTX 9xx, but not
always), you need additional firmware for any 2D/3D acceleration, as
cryptographic signatures are verified by the GPU. While NVIDIA
supplies the firmware needed for acceleration (generally with a 1-2
year delay after launch), they do not supply the firmware necessary
for the PMU, which would control things like fans, voltages, clock
frequencies. Since (modern) GPUs boot up in the lowest performance
levels, that means that you're stuck there with nouveau, getting 5-10%
of maximum performance, depending on specifics.

There is presently no 3D acceleration support in mesa for Volta or
Turing, although I'm told this is in the works. There is also no 2D
acceleration support for Volta or Turing in xf86-video-nouveau.
Volta's shader execution model has changed somewhat from earlier gens
(while Fermi/Kepler/Maxwell were largely identical), so this has
required some additional effort (and since there's no ability to have
reclocking on those boards, a profound lack of caring from me).

I expect there are bits I missed here ... not 100% sure whether s2ram
would work on GM20x+ without firmware.

Hope this helps,

  -ilia


On Sun, Feb 2, 2020 at 6:09 AM Dennis den Brok <ddb at mailbox.org> wrote:
>
> Dear nouveau@,
>
> please forgive me if this is a FAQ or otherwise obvious; it isn't to me
> from searching the web, the nouveau mailing list archives and various
> Linux distributions' wiki pages.
>
> I'd like to know for which nvidia GPUs a firmware binary blob needs to
> be loaded to the GPU in order for nouveau to work with it, including
> binaries from what is often called "linux-firmware".  Hopefully more
> precisely:
>
> Are there GPUs supported by nouveau which do not work at all without a
> binary blob?
>
> Are there GPUs which work partially without a firmware binary blob?
> What are the restrictions?
>
> Are there GPUs which work without restrictions?
>
> If there is a resource with answers to my questions, I'd be grateful
> for a reference.
>
> Please CC me, as I am not subscribed to the list.
>
> Thanks and regards,
>
> Dennis den Brok
>
>
>
>
>
> _______________________________________________
> Nouveau mailing list
> Nouveau at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau


More information about the Nouveau mailing list