175584Sru/* SPDX-License-Identifier: MIT */ 275584Sru/* 375584Sru * Copyright(c) 2022, Intel Corporation. All rights reserved. 475584Sru */ 575584Sru 6114402Sru#ifndef __INTEL_PXP_FW_INTERFACE_43_H__ 7114402Sru#define __INTEL_PXP_FW_INTERFACE_43_H__ 8114402Sru 9114402Sru#include <linux/types.h> 10114402Sru#include "intel_pxp_cmd_interface_cmn.h" 11114402Sru 12114402Sru/* PXP-Cmd-Op definitions */ 13114402Sru#define PXP43_CMDID_START_HUC_AUTH 0x0000003A 14114402Sru#define PXP43_CMDID_NEW_HUC_AUTH 0x0000003F /* MTL+ */ 15114402Sru#define PXP43_CMDID_INIT_SESSION 0x00000036 16114402Sru 17114402Sru/* PXP-Packet sizes for MTL's GSCCS-HECI instruction is spec'd at 65K before page alignment*/ 18114402Sru#define PXP43_MAX_HECI_INOUT_SIZE (PAGE_ALIGN(SZ_64K + SZ_1K)) 19114402Sru 20114402Sru/* PXP-Packet size for MTL's NEW_HUC_AUTH instruction */ 21114402Sru#define PXP43_HUC_AUTH_INOUT_SIZE (SZ_4K) 22114402Sru 23114402Sru/* PXP-Input-Packet: HUC Load and Authentication */ 24114402Srustruct pxp43_start_huc_auth_in { 25114402Sru struct pxp_cmd_header header; 26114402Sru __le64 huc_base_address; 27114402Sru} __packed; 28114402Sru 29114402Sru/* PXP-Input-Packet: HUC Auth-only */ 30114402Srustruct pxp43_new_huc_auth_in { 31114402Sru struct pxp_cmd_header header; 32114402Sru u64 huc_base_address; 33114402Sru u32 huc_size; 34114402Sru} __packed; 35114402Sru 36114402Sru/* PXP-Output-Packet: HUC Load and Authentication or Auth-only */ 37114402Srustruct pxp43_huc_auth_out { 38114402Sru struct pxp_cmd_header header; 39114402Sru} __packed; 40114402Sru 41114402Sru/* PXP-Input-Packet: Init PXP session */ 42114402Srustruct pxp43_create_arb_in { 43114402Sru struct pxp_cmd_header header; 44114402Sru /* header.stream_id fields for vesion 4.3 of Init PXP session: */ 45114402Sru #define PXP43_INIT_SESSION_VALID BIT(0) 46114402Sru #define PXP43_INIT_SESSION_APPTYPE BIT(1) 47114402Sru #define PXP43_INIT_SESSION_APPID GENMASK(17, 2) 48114402Sru u32 protection_mode; 49114402Sru #define PXP43_INIT_SESSION_PROTECTION_ARB 0x2 50114402Sru u32 sub_session_id; 51114402Sru u32 init_flags; 52114402Sru u32 rsvd[12]; 53114402Sru} __packed; 54114402Sru 55114402Sru/* PXP-Input-Packet: Init PXP session */ 56114402Srustruct pxp43_create_arb_out { 57114402Sru struct pxp_cmd_header header; 58114402Sru u32 rsvd[8]; 59114402Sru} __packed; 60114402Sru 61114402Sru#endif /* __INTEL_PXP_FW_INTERFACE_43_H__ */ 62114402Sru