After GuC, Intel's Open-Source Driver Prepares For "HuC" Firmware Blobs
Intel's open-source developers working on their Linux DRM graphics driver have been working on adding support for HuC, a new firmware component to be used by Broxton and newer graphics hardware.
With Skylake and newer, Intel's Linux driver began making use of firmware blobs initially for DMC (display micro-controller) and GuC. GuC is an engine for workload scheduling of the parallel graphics engines. That Intel Linux GuC code has been tidied up over the course of a few kernel cycles since being introduced and now they are working on HuC.
Patches that are still in the process of being revised add support for loading the HuC binary-only firmware for this newest micro-controller. HuC appears to be a firmware blob responsible High Efficiency Video Coding (HEVC / H.265) support. One of the code comments explained, "GEN9 introduces a new dedicated firmware for usage in media HEVC (High Efficiency Video Coding) operations. Userspace can use the firmware capabilities by adding HuC specific commands to batch buffers. On supported platforms, i915's job is to load the firmware stored on the file system and assist with authentication. It is up to userspace to detect the presence of HuC support on a platform, on their own."
With HuC dealing with HEVC, don't expect the firmware to ever be opened up... The HuC firmware is also authenticated via RSA keys. This HuC support is initially implemented for Intel Broxton hardware on Linux.
HuC has yet to be queued into DRM-Next so this material is looking like it will come for Linux 4.9 or later. The latest patches can be found here should you be wanting to learn a bit more.
With Skylake and newer, Intel's Linux driver began making use of firmware blobs initially for DMC (display micro-controller) and GuC. GuC is an engine for workload scheduling of the parallel graphics engines. That Intel Linux GuC code has been tidied up over the course of a few kernel cycles since being introduced and now they are working on HuC.
Patches that are still in the process of being revised add support for loading the HuC binary-only firmware for this newest micro-controller. HuC appears to be a firmware blob responsible High Efficiency Video Coding (HEVC / H.265) support. One of the code comments explained, "GEN9 introduces a new dedicated firmware for usage in media HEVC (High Efficiency Video Coding) operations. Userspace can use the firmware capabilities by adding HuC specific commands to batch buffers. On supported platforms, i915's job is to load the firmware stored on the file system and assist with authentication. It is up to userspace to detect the presence of HuC support on a platform, on their own."
With HuC dealing with HEVC, don't expect the firmware to ever be opened up... The HuC firmware is also authenticated via RSA keys. This HuC support is initially implemented for Intel Broxton hardware on Linux.
HuC has yet to be queued into DRM-Next so this material is looking like it will come for Linux 4.9 or later. The latest patches can be found here should you be wanting to learn a bit more.
9 Comments