| /* SPDX-License-Identifier: MIT */ |
| /* |
| * Copyright © 2026 Intel Corporation |
| */ |
| |
| #ifndef _XE_SYSCTRL_ABI_H_ |
| #define _XE_SYSCTRL_ABI_H_ |
| |
| #include <linux/types.h> |
| |
| /** |
| * DOC: System Controller ABI |
| * |
| * This header defines the Application Binary Interface (ABI) used by |
| * drm/xe to communicate with System Controller firmware on Intel Xe3p |
| * discrete GPU platforms. |
| * |
| * System Controller (sysctrl) is a firmware-managed entity on Intel |
| * dGPUs responsible for certain low-level platform management |
| * functions. |
| * |
| * 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 |
| * - Variable-length, command-specific payload |
| * |
| * 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 |
| * |
| * This header defines firmware ABI message formats and constants shared |
| * between driver and System Controller firmware. |
| */ |
| |
| /** |
| * struct xe_sysctrl_app_msg_hdr - Application layer message header |
| * @data: 32-bit header data |
| * |
| * Header structure for application-level messages. |
| */ |
| struct xe_sysctrl_app_msg_hdr { |
| u32 data; |
| } __packed; |
| |
| #define SYSCTRL_HDR_GROUP_ID_MASK GENMASK(7, 0) |
| #define SYSCTRL_HDR_COMMAND_MASK GENMASK(14, 8) |
| #define SYSCTRL_HDR_COMMAND_MAX 0x7f |
| #define SYSCTRL_HDR_IS_RESPONSE BIT(15) |
| #define SYSCTRL_HDR_RESERVED_MASK GENMASK(23, 16) |
| #define SYSCTRL_HDR_RESULT_MASK GENMASK(31, 24) |
| |
| #define APP_HDR_GROUP_ID_MASK GENMASK(7, 0) |
| #define APP_HDR_COMMAND_MASK GENMASK(15, 8) |
| #define APP_HDR_VERSION_MASK GENMASK(23, 16) |
| #define APP_HDR_RESERVED_MASK GENMASK(31, 24) |
| |
| #endif |