WOPCM LAYOUT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… WOPCM Layout β€” section 9, bestie

okay so this is from the Kernel API Manual, and it's literally just the map of WOPCM. no cap.

πŸ—ΊοΈ WOPCM Layout

so here's the tea: the layout of the WOPCM gets locked in (fixed, immovable, done-zo) right after you write to the GuC WOPCM size and offset registers. and those register values? they're not vibes-based β€” they get calculated and determined by the HuC/GuC firmware size plus whatever set of hardware requirements/restrictions is in play. it's giving very much calculated. as shown below:

:

   +=========> +====================+ <== WOPCM Top
   ^           |  HW contexts RSVD  |
   |     +===> +====================+ <== GuC WOPCM Top
   |     ^     |                    |
   |     |     |                    |
   |     |     |                    |
   |    GuC    |                    |
   |   WOPCM   |                    |
   |    Size   +--------------------+
 WOPCM   |     |    GuC FW RSVD     |
   |     |     +--------------------+
   |     |     |   GuC Stack RSVD   |
   |     |     +------------------- +
   |     v     |   GuC WOPCM RSVD   |
   |     +===> +====================+ <== GuC WOPCM base
   |           |     WOPCM RSVD     |
   |           +------------------- + <== HuC Firmware Top
   v           |      HuC FW        |
   +=========> +====================+ <== WOPCM Base

the GuC's accessible slice of WOPCM starts at GuC WOPCM base and ends at GuC WOPCM top. 🫢 and the top part of the WOPCM? that's reserved for hardware contexts (e.g. the RC6 context) β€” so hands off, that's their section. πŸ’…


πŸ‘€ SEE ALSO


✨ that's the whole page, icon status. shoutout to the source tree at ./drivers/gpu/drm/i915/gt, dated October 2026, from the Kernel API Manual β€” WOPCM Layout(9), periodt. πŸŽ€πŸ’–πŸ¦‹

πŸ“¦ where this page comes from