1 /** @file 2 Define the variable data structures used for TCG physical presence. 3 The TPM request from firmware or OS is saved to variable. And it is 4 cleared after it is processed in the next boot cycle. The TPM response 5 is saved to variable. 6 7 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> 8 SPDX-License-Identifier: BSD-2-Clause-Patent 9 10 **/ 11 12 #ifndef __PHYSICAL_PRESENCE_DATA_GUID_H__ 13 #define __PHYSICAL_PRESENCE_DATA_GUID_H__ 14 15 #define EFI_PHYSICAL_PRESENCE_DATA_GUID \ 16 { \ 17 0xf6499b1, 0xe9ad, 0x493d, { 0xb9, 0xc2, 0x2f, 0x90, 0x81, 0x5c, 0x6c, 0xbc }\ 18 } 19 20 #define PHYSICAL_PRESENCE_VARIABLE L"PhysicalPresence" 21 22 typedef struct { 23 UINT8 PPRequest; ///< Physical Presence request command. 24 UINT8 LastPPRequest; 25 UINT32 PPResponse; 26 } EFI_PHYSICAL_PRESENCE; 27 28 // 29 // The definition of physical presence operation actions 30 // 31 #define PHYSICAL_PRESENCE_NO_ACTION 0 32 #define PHYSICAL_PRESENCE_ENABLE 1 33 #define PHYSICAL_PRESENCE_DISABLE 2 34 #define PHYSICAL_PRESENCE_ACTIVATE 3 35 #define PHYSICAL_PRESENCE_DEACTIVATE 4 36 #define PHYSICAL_PRESENCE_CLEAR 5 37 #define PHYSICAL_PRESENCE_ENABLE_ACTIVATE 6 38 #define PHYSICAL_PRESENCE_DEACTIVATE_DISABLE 7 39 #define PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE 8 40 #define PHYSICAL_PRESENCE_SET_OWNER_INSTALL_FALSE 9 41 #define PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE 10 42 #define PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE 11 43 #define PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE 12 44 #define PHYSICAL_PRESENCE_SET_OPERATOR_AUTH 13 45 #define PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE 14 46 #define PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE 15 47 #define PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_TRUE 16 48 #define PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_FALSE 17 49 #define PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_TRUE 18 50 #define PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_FALSE 19 51 #define PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_TRUE 20 52 #define PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR 21 53 #define PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE 22 54 55 // 56 // This variable is used to save TPM Management Flags and corresponding operations. 57 // It should be protected from malicious software (e.g. Set it as read-only variable). 58 // 59 #define PHYSICAL_PRESENCE_FLAGS_VARIABLE L"PhysicalPresenceFlags" 60 typedef struct { 61 UINT8 PPFlags; 62 } EFI_PHYSICAL_PRESENCE_FLAGS; 63 64 // 65 // The definition bit of the TPM Management Flags 66 // 67 #define FLAG_NO_PPI_PROVISION BIT0 68 #define FLAG_NO_PPI_CLEAR BIT1 69 #define FLAG_NO_PPI_MAINTENANCE BIT2 70 #define FLAG_RESET_TRACK BIT3 71 72 extern EFI_GUID gEfiPhysicalPresenceGuid; 73 74 #endif 75 76