HXG MESSAGE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’Œ HXG MESSAGE πŸ’Œ

okay bestie, welcome to HXG Message β€” straight out of the Kernel API Manual, section 9, and it is literally the blueprint for talking to GuC. iykyk ✨

every message you exchange with GuC is defined using 32 bit dwords. the first dword is treated as the message header, and the remaining dwords are optional. no cap.

πŸŽ€ the header dword, unpacked πŸŽ€

the first dword is giving main character energy, and its bits are laid out like this:

  • ORIGIN β€” header dword 0, bit 31 β€” originator of the message 🌈
    • GUC_HXG_ORIGIN_HOST = 0
    • GUC_HXG_ORIGIN_GUC = 1
  • TYPE β€” bits 30:28 β€” message type πŸ’…
    • GUC_HXG_TYPE_REQUEST = 0
    • GUC_HXG_TYPE_EVENT = 1
    • GUC_HXG_TYPE_FAST_REQUEST = 2
    • GUC_HXG_TYPE_NO_RESPONSE_BUSY = 3
    • GUC_HXG_TYPE_NO_RESPONSE_RETRY = 5
    • GUC_HXG_TYPE_RESPONSE_FAILURE = 6
    • GUC_HXG_TYPE_RESPONSE_SUCCESS = 7
  • AUX β€” bits 27:0 β€” auxiliary data (depends on TYPE) 🫢

πŸ¦‹ the payload dwords πŸ¦‹

then the optional payload can show up after the header:

  • PAYLOAD β€” dwords 1 … n, bits 31:0 β€” optional payload (depends on TYPE) πŸ¦‹

πŸ‘€ SEE ALSO πŸ‘€

  • Kernel file ./drivers/gpu/drm/xe/abi/guc_messages_abi.h
  • HXG Request(9), HXG Fast Request(9), HXG Event(9), HXG Busy(9), HXG Retry(9), HXG Failure(9), HXG Response(9)
bestie, that’s the whole map β€” go check the kernel file and the sibling pages if you want the deep lore. 🫢

that’s the vibe check, bestie πŸ’– β€” source/version ./drivers/gpu/drm/xe/abi, date October 2026, and this iconic page is HXG Message(9). periodt. ✨

πŸ“¦ where this page comes from