Description

New generations of Intel® graphics hardware make use of firmware with power and performance benefits and functionalities like scheduling and media offloading. For more details about separate firmware functions see the section below. Firmware binaries are available on the linux-firmware repository, so it is most likely your current Linux distribution already packages them. Please check with your Linux distribution to see what is currently included.

All firmware binaries are posted on the public mailing of the linux-firmware project. This page is for descriptive purposes and a pointer to the relevant link on the git.kernel.org website. It is generally recommended that you wait for your Linux distribution to update its kernel.

Graphics microController (GuC)

The Graphics micro (µ) Controller (GuC) is designed to offload some of the functionality usually run on the host driver. This functionality includes:

Authentication of the HEVC/H.265 micro (µ) Controller (HuC)

Enables use of HuC codec acceleration extensions by the iHD Intel media driver (described below).

Low latency graphics context scheduling

GuC context scheduling operations will include determining which context to run next, submitting a context to a command streamer for a next available engine and pre-empting and resubmitting existing contexts as required.

Power management

When performing scheduling, the GuC is well placed to track busyness and enable efficient frequency and power gating decisions.

Usage

The GuC was first introduced in Gen9 devices with the above functionalities to be introduced over time. Today the only officially supported functionality is HuC authentication; submission and power management are in development. It is not recommended to enable the unsupported features which are treated as unsafe kernel options that will taint the kernel.

HuC authentication by the GuC is supported for the specific platforms and kernels as listed below:

Gen Platform Kernel 9 APL, SKL, KBL 4.11 9 CFL 4.15 11 ICL 5.4 12 TGL 5.6 (eta)

The feature is enabled by setting the kernel module parameter: i915.enable_guc=2

Please note that prior to kernel 4.16, HuC authentication was enabled by setting: i915.enable_guc_loading=1

Please see kernel documentation at https://www.kernel.org/doc/html/latest/gpu/i915.html#guc for more details.

HEVC/H.265 microController (HuC).

The HEVC/H.265 micro (µ) Controller (HuC) offloads some of the media functions from CPU to the GPU and is utilized by the iHD Intel media driver. These include but are not limited to bitrate control and header parsing. For example in the case of bitrate control, driver invokes HuC in the beginning of each frame encoding pass, encode bitrate is adjusted by the calculation done by HuC. Both the HuC hardware and the encode hardcode reside in GPU. Using HuC will save unnecessary CPU-GPU synchronization. Note that the GuC is required to enable the loading of HuC as descibed above.

Please see https://github.com/intel/media-driver for latest details on functionality and on which platforms and kernel versions it is available.

Display Microcontroller (DMC)

DMC provides additional graphics low-power idle states. It provides capability to save and restore display registers across these low-power states independently from the OS/Kernel.

Where to download

Firmware for Intel Linux Graphics is available on the git.kernel.org website. It is sorted by the three letter product code for your processor (for example Kabylake GuC might look like this: kbl_guc_33.0.0.bin). The i915 firmware download site for Linux Graphics can be found here: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915