1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Hip Hip Hurrah, Nouveau Frees Up The Fermi Microcode

Nouveau

Published on 25 May 2011 07:57 AM EDT
Written by Michael Larabel in Nouveau
10 Comments

Within the Nouveau kernel module there's been reverse-engineered kernel mode-setting support for NVIDIA's Fermi GPUs (the GeForce 400/500 series) since last summer. Earlier this year, Nouveau Fermi acceleration support was added with the necessary kernel DRM bits, to the Nouveau X.Org driver for EXA/X-Video acceleration, and a respective Gallium3D Mesa driver.

The Nouveau Fermi support continued to be improved with KMS page-flipping and other features and fixes, but there was a big limitation of all this open-source Fermi acceleration support. The Nouveau Fermi driver doesn't have any "free" firmware that it can ship with the driver nor was the driver in a position to automatically generate its own firmware / microcode.

As a result, users needed to extract the firmware for their graphics card by first running the NVIDIA binary driver and then running a few commands to create a dump. After that, the Nouveau driver could be loaded with this microcode and there would be acceleration support available. However, as these dumps are created from the NVIDIA driver and for a specific ASIC, they aren't legally re-distributable upstream in the kernel or by most distribution vendors. As a result, most NVIDIA GeForce 400/500 owners have kernel mode-setting if using the open-source driver, but there's no acceleration.

While it likely won't make it for the Linux 2.6.40/3.0 kernel, Red Hat's Ben Skeggs yesterday commited to the Nouveau Git code-base his initial attempt at creating a free replacement to this NVIDIA PGRAPH micro-code that's needed by Fermi. So far it's been successfully tested on NVC0 and NVC4, but in theory should also work on NVC1, NVC3, NVC8, and NVCE. The NVD9 (GF119) ASIC is still in need of an MMIO trace from the NVIDIA binary blob for implementing proper support.

For some of these other untested chipsets, acceleration is disabled by default as a result until booting the system with nouveau.noaccel=0. Ben also has in a nouveau.ctxfw=1 module option for now as well, which will instead load NVIDIA's microcode (if available) rather than using this free software replacement.

The initial "FUC" microcode replacement can be found in this Git commit that adds in 3,100 lines of code to the Nouveau DRM module in the kernel. There's also been various other Fermi-related commits to the Nouveau tree in the past 48 hours as well (Git log). There's also this mailing list message looking for users to test out this microcode replacement; hopefully it will be merged in the next kernel merge window (Linux 3.1?).

Besides this initial FUC microcode firmware issue, the Nouveau developers are also struggling with re-clocking support / power management / fan control, which hopefully they'll have made more progress on in time for the next kernel merge window in a couple of months. Most NVIDIA Fermi owners will be best off right now using the proprietary NVIDIA Linux driver.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. NVIDIA GeForce GTX 970 Offers Great Linux Performance
  2. CompuLab Intense-PC2: An Excellent, Fanless, Mini PC Powered By Intel's i7 Haswell
  3. From The Atom 330 To Haswell ULT: Intel Linux Performance Benchmarks
  4. AMD Radeon R9 285 Tonga Performance On Linux
Latest Linux Articles
  1. Btrfs RAID HDD Testing On Ubuntu Linux 14.10
  2. Ubuntu 14.10 Linux 32-bit vs. 64-bit Performance
  3. AMD Moves Forward With Unified Linux Driver Strategy, New Kernel Driver
  4. MSI: Update Your BIOS From The Linux Desktop
Latest Linux News
  1. Mesa 10.4 Tentatively Planned For Early December
  2. SteamOS Update 145 Brings Compositor, Update Fixes
  3. GStreamer 2014 Conference Videos Posted: Wayland, HTML5, 3D
  4. Nouveau Now Supports DRI3 Without GLAMOR
  5. Features Of The Linux 3.18 Kernel
  6. Debian Now Defaults To Xfce On Non-x86 Desktops
  7. Phoenix Is Trying To Be An Open Version Of Apple's Swift
  8. Linux 3.19 To Have Skylake Graphics, PPGTT Enablement
  9. Ubuntu 16.04 Might Be The Distribution's Last 32-Bit Release
  10. Imagination Releases Full ISA Documentation For PowerVR Rogue GPUs
Latest Forum Discussions
  1. Users/Developers Threatening Fork Of Debian GNU/Linux
  2. Ubuntu 16.04 Might Be The Distribution's Last 32-Bit Release
  3. AMD Releases UVD Video Decode Support For R600 GPUs
  4. HOPE: The Ease Of Python With The Speed Of C++
  5. Proof that strlcpy is un-needed
  6. xbox one tv tuner
  7. Bye bye BSD, Hello Linux: A Sys Admin's Story
  8. Updated and Optimized Ubuntu Free Graphics Drivers