1 /* SPDX-License-Identifier: MIT */
3 * Copyright © 2023 Intel Corporation
6 #ifndef _ABI_GSC_PROXY_COMMANDS_ABI_H
7 #define _ABI_GSC_PROXY_COMMANDS_ABI_H
9 #include <linux/types.h>
11 /* Heci client ID for proxy commands */
12 #define HECI_MEADDRESS_PROXY 10
14 /* FW-defined proxy header */
15 struct xe_gsc_proxy_header {
18 * Bits 0-7: type of the proxy message (see enum xe_gsc_proxy_type)
20 * Bits 16-31: length in bytes of the payload following the proxy header
23 #define GSC_PROXY_TYPE GENMASK(7, 0)
24 #define GSC_PROXY_PAYLOAD_LENGTH GENMASK(31, 16)
26 u32 source; /* Source of the Proxy message */
27 u32 destination; /* Destination of the Proxy message */
28 #define GSC_PROXY_ADDRESSING_KMD 0x10000
29 #define GSC_PROXY_ADDRESSING_GSC 0x20000
30 #define GSC_PROXY_ADDRESSING_CSME 0x30000
32 u32 status; /* Command status */
35 /* FW-defined proxy types */
36 enum xe_gsc_proxy_type {
37 GSC_PROXY_MSG_TYPE_PROXY_INVALID = 0,
38 GSC_PROXY_MSG_TYPE_PROXY_QUERY = 1,
39 GSC_PROXY_MSG_TYPE_PROXY_PAYLOAD = 2,
40 GSC_PROXY_MSG_TYPE_PROXY_END = 3,
41 GSC_PROXY_MSG_TYPE_PROXY_NOTIFICATION = 4,