SYSTEM CONTROLLER ABI(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– SYSTEM CONTROLLER ABI πŸ’–

okay so bestie, welcome to System Controller ABI(9) from the Kernel API Manual. the tea β˜•: this header defines the Application Binary Interface (ABI) used by drm/xe to communicate with System Controller firmware on Intel Xe3p discrete GPU platforms. slay. 🫢

System Controller (sysctrl) is a firmware-managed entity on Intel dGPUs responsible for certain low-level platform management functions. iconic. πŸ‘‘

πŸ’¬ Communication protocol:

Communication uses a mailbox interface with messages composed of:

  • Application message header (struct xe_sysctrl_app_msg_hdr) β€” containing group_id, command, and version. that's the lil envelope, bestie ✨
  • Variable-length, command-specific payload β€” exactly what it says: variable-length, and it depends on the command. πŸŽ€

🧩 Message header format:

The 32-bit application message header is packed as:

  • Bits [7:0] β€” Group ID identifying command group
  • Bits [15:8] β€” Command identifier within group
  • Bits [23:16] β€” Command version for interface compatibility
  • Bits [31:24] β€” Reserved, must be zero (fr fr, do not touch πŸ’€)

This header defines firmware ABI message formats and constants shared between driver and System Controller firmware. periodt. 🌈

πŸ” SEE ALSO πŸ”

  • Kernel file ./drivers/gpu/drm/xe/abi/xe_sysctrl_abi.h struct xe_sysctrl_app_msg_hdr(9) β€” go read it, bestie, iykyk πŸ’…
🫢 cute sign-off: source/version is ./drivers/gpu/drm/xe/abi, dated October 2026, and this iconic page is System Controller ABI(9). bye bestie, mwah! πŸ’–
πŸ“¦ where this page comes from