HuC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ HuC(9) β€” Kernel API Manual, group-chat edition ✨

πŸŽ€ NAME πŸŽ€

HuC β€” the dedicated microcontroller for usage in media HEVC (High Efficiency Video Coding) operations. πŸ‘‘

🌸 DESCRIPTION 🌸

Okay so picture this: the HuC is a dedicated microcontroller for media HEVC (High Efficiency Video Coding) operations. Userspace can directly use the firmware capabilities by adding HuC specific commands to batch buffers. ✨

The kernel driver is only responsible for loading the HuC firmware and triggering its security authentication. And the way that happens is platform-dependent, bestie:

  • older platforms (from Gen9 to most Gen12s) β€” the load is performed via DMA, and the authentication via GuC.
  • DG2 β€” load and authentication are both performed via GSC.
  • MTL and newer platforms β€” the load is performed via DMA (same as with not-DG2 older platforms), while the authentication is done in 2-steps: a first auth for clear-media workloads via GuC, and a second one for all workloads via GSC.

On platforms where the GuC does the authentication, to correctly do so the HuC binary must be loaded before the GuC one. ⚠️

Loading the HuC is optional; however, not using the HuC might negatively impact power usage and/or performance of media workloads, depending on the use-cases. (optional, but skipping it can hit power/performance depending on the use-cases πŸ’€)

HuC must be reloaded on events that cause the WOPCM to lose its contents (S3/S4, FLR); on older platforms the HuC must also be reloaded on GuC/GT reset, while on newer ones it will survive that. 🫢

See https://github.com/intel/media-driver for the latest details on HuC functionality. πŸ”₯

πŸ’… SEE ALSO πŸ’…


mwah πŸ’– source path ./drivers/gpu/drm/i915/gt/uc, dated October 2026, for HuC(9) β€” slay and read the source, bestie πŸ’…

πŸ“¦ where this page comes from