/** @file
  Provides function interfaces to communicate with TPM 2.0 service through FF-A.

  This header follows the TPM over FF-A specification:
  https://developer.arm.com/documentation/den0138/latest/

  Copyright (c), Microsoft Corporation.

  SPDX-License-Identifier: BSD-2-Clause-Patent
**/

#pragma once

#define TPM2_SERVICE_FFA_GUID \
  { 0x17b862a4, 0x1806, 0x4faf, { 0x86, 0xb3, 0x08, 0x9a, 0x58, 0x35, 0x38, 0x61 } }

#define TPM2_FFA_SERVICE_MAJOR_VER_MASK   0xffff0000
#define TPM2_FFA_SERVICE_MINOR_VER_MASK   0x0000ffff
#define TPM2_FFA_SERVICE_MAJOR_VER_SHIFT  16
#define TPM2_FFA_SERVICE_MINOR_VER_SHIFT  0

#define TPM2_FFA_GET_INTERFACE_VERSION         0x0f000001
#define TPM2_FFA_GET_FEATURE_INFO              0x0f000101
#define TPM2_FFA_START                         0x0f000201
#define TPM2_FFA_REGISTER_FOR_NOTIFICATION     0x0f000301
#define TPM2_FFA_UNREGISTER_FROM_NOTIFICATION  0x0f000401
#define TPM2_FFA_FINISH_NOTIFIED               0x0f000501

#define TPM2_FFA_SUCCESS_OK                   0x05000001
#define TPM2_FFA_SUCCESS_OK_RESULTS_RETURNED  0x05000002

#define TPM2_FFA_ERROR_NOFUNC             0x8e000001
#define TPM2_FFA_ERROR_NOTSUP             0x8e000002
#define TPM2_FFA_ERROR_INVARG             0x8e000005
#define TPM2_FFA_ERROR_INV_CRB_CTRL_DATA  0x8e000006
#define TPM2_FFA_ERROR_ALREADY            0x8e000009
#define TPM2_FFA_ERROR_DENIED             0x8e00000a
#define TPM2_FFA_ERROR_NOMEM              0x8e00000b

#define TPM_SERVICE_FEATURE_SUPPORT_NOTIFICATION  0xfea70000
#define TPM2_FFA_FEAT_NOTIFICATION_DEST_ID_MASK   0x000000ff
#define TPM2_FFA_FEAT_NOTIFICATION_TYPE_SHIFT     16
#define TPM2_FFA_FEAT_NOTIFICATION_TYPE_MASK      (1 << TPM_CRB_FFA_FEAT_NOTIFICATION_TYPE_SHIFT)
#define TPM2_FFA_FEAT_NOTIFICATION_TYPE_GLOBAL    (0 << TPM_CRB_FFA_FEAT_NOTIFICATION_TYPE_SHIFT)
#define TPM2_FFA_FEAT_NOTIFICATION_TYPE_PER_VCPU  (1 << TPM_CRB_FFA_FEAT_NOTIFICATION_TYPE_SHIFT)

#define TPM2_FFA_START_FUNC_QUALIFIER_COMMAND   0x0
#define TPM2_FFA_START_FUNC_QUALIFIER_LOCALITY  0x1
#define TPM2_FFA_START_FUNC_COMMAND_TYPE_MASK   0x000000ff
#define TPM2_FFA_START_FUNC_LOCALITY_MASK       0x000000ff

extern EFI_GUID  gTpm2ServiceFfaGuid;

typedef UINT32 TPM2_FFA_STATUS;
