| /* SPDX-License-Identifier: MIT */ |
| /* |
| * Copyright © 2023 Intel Corporation |
| */ |
| |
| #ifndef _ABI_GSC_PROXY_COMMANDS_ABI_H |
| #define _ABI_GSC_PROXY_COMMANDS_ABI_H |
| |
| #include <linux/types.h> |
| |
| /* Heci client ID for proxy commands */ |
| #define HECI_MEADDRESS_PROXY 10 |
| |
| /* FW-defined proxy header */ |
| struct xe_gsc_proxy_header { |
| /* |
| * hdr: |
| * Bits 0-7: type of the proxy message (see enum xe_gsc_proxy_type) |
| * Bits 8-15: rsvd |
| * Bits 16-31: length in bytes of the payload following the proxy header |
| */ |
| u32 hdr; |
| #define GSC_PROXY_TYPE GENMASK(7, 0) |
| #define GSC_PROXY_PAYLOAD_LENGTH GENMASK(31, 16) |
| |
| u32 source; /* Source of the Proxy message */ |
| u32 destination; /* Destination of the Proxy message */ |
| #define GSC_PROXY_ADDRESSING_KMD 0x10000 |
| #define GSC_PROXY_ADDRESSING_GSC 0x20000 |
| #define GSC_PROXY_ADDRESSING_CSME 0x30000 |
| |
| u32 status; /* Command status */ |
| } __packed; |
| |
| /* FW-defined proxy types */ |
| enum xe_gsc_proxy_type { |
| GSC_PROXY_MSG_TYPE_PROXY_INVALID = 0, |
| GSC_PROXY_MSG_TYPE_PROXY_QUERY = 1, |
| GSC_PROXY_MSG_TYPE_PROXY_PAYLOAD = 2, |
| GSC_PROXY_MSG_TYPE_PROXY_END = 3, |
| GSC_PROXY_MSG_TYPE_PROXY_NOTIFICATION = 4, |
| }; |
| |
| #endif |