1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2023 Intel Corporation 4 */ 5 6 #ifndef _ABI_GSC_COMMAND_HEADER_ABI_H 7 #define _ABI_GSC_COMMAND_HEADER_ABI_H 8 9 #include <linux/types.h> 10 11 struct intel_gsc_mtl_header { 12 u32 validity_marker; 13 #define GSC_HECI_VALIDITY_MARKER 0xA578875A 14 15 u8 heci_client_id; 16 17 u8 reserved1; 18 19 u16 header_version; 20 #define MTL_GSC_HEADER_VERSION 1 21 22 /* FW allows host to decide host_session handle as it sees fit. */ 23 u64 host_session_handle; 24 25 /* handle generated by FW for messages that need to be re-submitted */ 26 u64 gsc_message_handle; 27 28 u32 message_size; /* lower 20 bits only, upper 12 are reserved */ 29 30 /* 31 * Flags mask: 32 * Bit 0: Pending 33 * Bit 1: Session Cleanup; 34 * Bits 2-15: Flags 35 * Bits 16-31: Extension Size 36 * According to internal spec flags are either input or output 37 * we distinguish the flags using OUTFLAG or INFLAG 38 */ 39 u32 flags; 40 #define GSC_OUTFLAG_MSG_PENDING BIT(0) 41 #define GSC_INFLAG_MSG_CLEANUP BIT(1) 42 43 u32 status; 44 } __packed; 45 46 #endif 47