MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TrEEProtocol.h File Reference

Data Structures

struct  _TREE_VERSION
 
struct  _TREE_BOOT_SERVICE_CAPABILITY
 
struct  TrEE_EVENT_HEADER
 
struct  TrEE_EVENT
 
struct  _EFI_TREE_PROTOCOL
 

Macros

#define EFI_TREE_PROTOCOL_GUID   {0x607f766c, 0x7455, 0x42be, 0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f}
 
#define TREE_EVENT_LOG_FORMAT_TCG_1_2   0x00000001
 
#define TREE_BOOT_HASH_ALG_SHA1   0x00000001
 
#define TREE_BOOT_HASH_ALG_SHA256   0x00000002
 
#define TREE_BOOT_HASH_ALG_SHA384   0x00000004
 
#define TREE_BOOT_HASH_ALG_SHA512   0x00000008
 
#define TREE_EXTEND_ONLY   0x0000000000000001
 
#define PE_COFF_IMAGE   0x0000000000000010
 
#define MAX_PCR_INDEX   23
 
#define TREE_EVENT_HEADER_VERSION   1
 

Typedefs

typedef struct _EFI_TREE_PROTOCOL EFI_TREE_PROTOCOL
 
typedef struct _TREE_VERSION TREE_VERSION
 
typedef UINT32 TREE_EVENT_LOG_BITMAP
 
typedef UINT32 TREE_EVENT_LOG_FORMAT
 
typedef struct
_TREE_BOOT_SERVICE_CAPABILITY 
TREE_BOOT_SERVICE_CAPABILITY_1_0
 
typedef
TREE_BOOT_SERVICE_CAPABILITY_1_0 
TREE_BOOT_SERVICE_CAPABILITY
 
typedef UINT32 TrEE_PCRINDEX
 
typedef UINT32 TrEE_EVENTTYPE
 
typedef IN OUT
TREE_BOOT_SERVICE_CAPABILITY
ProtocolCapability
 
typedef IN TREE_EVENT_LOG_FORMAT EventLogFormat
 
typedef IN
TREE_EVENT_LOG_FORMAT OUT
EFI_PHYSICAL_ADDRESS
EventLogLocation
 
typedef IN
TREE_EVENT_LOG_FORMAT OUT
EFI_PHYSICAL_ADDRESS OUT
EFI_PHYSICAL_ADDRESS
EventLogLastEntry
 
typedef IN
TREE_EVENT_LOG_FORMAT OUT
EFI_PHYSICAL_ADDRESS OUT
EFI_PHYSICAL_ADDRESS OUT
BOOLEAN
EventLogTruncated
 
typedef IN UINT64 Flags
 
typedef IN UINT64 IN
EFI_PHYSICAL_ADDRESS 
DataToHash
 
typedef IN UINT64 IN
EFI_PHYSICAL_ADDRESS IN UINT64 
DataToHashLen
 
typedef IN UINT64 IN
EFI_PHYSICAL_ADDRESS IN UINT64
IN TrEE_EVENT
Event
 
typedef IN UINT32 InputParameterBlockSize
 
typedef IN UINT32 IN UINT8InputParameterBlock
 
typedef IN UINT32 IN UINT8 IN
UINT32 
OutputParameterBlockSize
 
typedef IN UINT32 IN UINT8 IN
UINT32 IN UINT8
OutputParameterBlock
 

Functions

typedef EFI_STATUS (EFIAPI *EFI_TREE_GET_CAPABILITY)(IN EFI_TREE_PROTOCOL *This
 

Variables

EFI_GUID gEfiTrEEProtocolGuid
 

Detailed Description

This protocol is defined to abstract TPM2 hardware access in boot phase.

Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#define EFI_TREE_PROTOCOL_GUID   {0x607f766c, 0x7455, 0x42be, 0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f}
#define MAX_PCR_INDEX   23
#define PE_COFF_IMAGE   0x0000000000000010
#define TREE_BOOT_HASH_ALG_SHA1   0x00000001
#define TREE_BOOT_HASH_ALG_SHA256   0x00000002
#define TREE_BOOT_HASH_ALG_SHA384   0x00000004
#define TREE_BOOT_HASH_ALG_SHA512   0x00000008
#define TREE_EVENT_HEADER_VERSION   1
#define TREE_EVENT_LOG_FORMAT_TCG_1_2   0x00000001
#define TREE_EXTEND_ONLY   0x0000000000000001

Typedef Documentation

typedef IN UINT64 Flags
typedef struct _TREE_VERSION TREE_VERSION

Function Documentation

typedef EFI_STATUS ( EFIAPI EFI_TREE_SUBMIT_COMMAND)

The EFI_TREE_PROTOCOL GetCapability function call provides protocol capability information and state information about the TrEE.

Parameters
[in]ThisIndicates the calling context
[out]ProtocolCapabilityThe caller allocates memory for a TREE_BOOT_SERVICE_CAPABILITY structure and sets the size field to the size of the structure allocated. The callee fills in the fields with the EFI protocol capability information and the current TrEE state information up to the number of fields which fit within the size of the structure passed in.
Return values
EFI_SUCCESSOperation completed successfully.
EFI_DEVICE_ERRORThe command was unsuccessful. The ProtocolCapability variable will not be populated.
EFI_INVALID_PARAMETEROne or more of the parameters are incorrect. The ProtocolCapability variable will not be populated.
EFI_BUFFER_TOO_SMALLThe ProtocolCapability variable is too small to hold the full response. It will be partially populated (required Size field will be set).

The EFI_TREE_PROTOCOL Get Event Log function call allows a caller to retrieve the address of a given event log and its last entry.

Parameters
[in]ThisIndicates the calling context
[in]EventLogFormatThe type of the event log for which the information is requested.
[out]EventLogLocationA pointer to the memory address of the event log.
[out]EventLogLastEntryIf the Event Log contains more than one entry, this is a pointer to the address of the start of the last entry in the event log in memory.
[out]EventLogTruncatedIf the Event Log is missing at least one entry because an event would have exceeded the area allocated for events, this value is set to TRUE. Otherwise, the value will be FALSE and the Event Log will be complete.
Return values
EFI_SUCCESSOperation completed successfully.
EFI_INVALID_PARAMETEROne or more of the parameters are incorrect (e.g. asking for an event log whose format is not supported).

The EFI_TREE_PROTOCOL HashLogExtendEvent function call provides callers with an opportunity to extend and optionally log events without requiring knowledge of actual TPM commands. The extend operation will occur even if this function cannot create an event log entry (e.g. due to the event log being full).

Parameters
[in]ThisIndicates the calling context
[in]FlagsBitmap providing additional information.
[in]DataToHashPhysical address of the start of the data buffer to be hashed.
[in]DataToHashLenThe length in bytes of the buffer referenced by DataToHash.
[in]EventPointer to data buffer containing information about the event.
Return values
EFI_SUCCESSOperation completed successfully.
EFI_DEVICE_ERRORThe command was unsuccessful.
EFI_VOLUME_FULLThe extend operation occurred, but the event could not be written to one or more event logs.
EFI_INVALID_PARAMETEROne or more of the parameters are incorrect.
EFI_UNSUPPORTEDThe PE/COFF image type is not supported.

This service enables the sending of commands to the TrEE.

Parameters
[in]ThisIndicates the calling context
[in]InputParameterBlockSizeSize of the TrEE input parameter block.
[in]InputParameterBlockPointer to the TrEE input parameter block.
[in]OutputParameterBlockSizeSize of the TrEE output parameter block.
[in]OutputParameterBlockPointer to the TrEE output parameter block.
Return values
EFI_SUCCESSThe command byte stream was successfully sent to the device and a response was successfully received.
EFI_DEVICE_ERRORThe command was not successfully sent to the device or a response was not successfully received from the device.
EFI_INVALID_PARAMETEROne or more of the parameters are incorrect.
EFI_BUFFER_TOO_SMALLThe output parameter block is too small.

Variable Documentation

EFI_GUID gEfiTrEEProtocolGuid