GUC MEMORY MANAGEMENT(9)
π GuC Memory Management π
okay so bestie, this is the Kernel API Manual page for GuC memory management, and itβs honestly kind of iconic in a βthe hardware cannot do this aloneβ way.
GuC canβt allocate any memory for its own usage, so all the allocations must be handled by the host driver. GuC accesses the memory via the GGTT, with the exception of the top and bottom parts of the 4GB address space β those are instead re-mapped by the GuC HW to memory location of the FW itself (WOPCM) or other parts of the HW. The driver must take care not to place objects that the GuC is going to access in these reserved ranges. Like, reserved means reserved, periodt. π
The layout of the GuC address space is shown below:
:
+===========> +====================+ <== FFFF_FFFF
^ | Reserved |
| +====================+ <== GUC_GGTT_TOP
| | |
| | DRAM |
GuC | |
Address +===> +====================+ <== GuC ggtt_pin_bias
Space ^ | |
| | | |
| GuC | GuC |
| WOPCM | WOPCM |
| Size | |
| | | |
v v | |
+=======+===> +====================+ <== 0000_0000
The lower part of GuC Address Space [0, ggtt_pin_bias) is mapped to GuC WOPCM while upper part of GuC Address Space [ggtt_pin_bias, GUC_GGTT_TOP) is mapped to DRAM. The value of the GuC ggtt_pin_bias is the GuC WOPCM size. Slay, thatβs the whole map. πΊοΈβ¨
π¦ SEE ALSO π¦
- Kernel file
./drivers/gpu/drm/i915/gt/uc/intel_guc.cGuC(9) intel_guc_auth_huc(9)intel_guc_suspend(9)intel_guc_resume(9)intel_guc_allocate_vma(9)intel_guc_allocate_and_map_vma(9)intel_guc_load_status(9)
bye bestie β this page came from source/version ./drivers/gpu/drm/i915/gt/uc and itβs dated October 2026 ππ«Ά
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms