]> git.proxmox.com Git - mirror_edk2.git/blob - SecurityPkg/Library/PeiTcg2PhysicalPresenceLib/PeiTcg2PhysicalPresenceLib.c
MdePkg: add definitions for ACPI NVDIMM Device Path
[mirror_edk2.git] / SecurityPkg / Library / PeiTcg2PhysicalPresenceLib / PeiTcg2PhysicalPresenceLib.c
1 /** @file
2 Get TPM 2.0 physical presence information.
3
4 This library will get TPM 2.0 physical presence information.
5
6 Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
8
9 **/
10
11 #include <PiPei.h>
12
13 #include <Guid/Tcg2PhysicalPresenceData.h>
14 #include <Ppi/ReadOnlyVariable2.h>
15
16 #include <Library/DebugLib.h>
17 #include <Library/PeiServicesLib.h>
18 #include <Library/PeiServicesTablePointerLib.h>
19 #include <Library/Tcg2PhysicalPresenceLib.h>
20
21 /**
22 Return TPM2 ManagementFlags set by PP interface.
23
24 @retval ManagementFlags TPM2 Management Flags.
25 **/
26 UINT32
27 EFIAPI
28 Tcg2PhysicalPresenceLibGetManagementFlags (
29 VOID
30 )
31 {
32 EFI_STATUS Status;
33 EFI_PEI_READ_ONLY_VARIABLE2_PPI *VariablePpi;
34 EFI_TCG2_PHYSICAL_PRESENCE_FLAGS PpiFlags;
35 UINTN DataSize;
36
37 Status = PeiServicesLocatePpi (&gEfiPeiReadOnlyVariable2PpiGuid, 0, NULL, (VOID **) &VariablePpi);
38 ASSERT_EFI_ERROR (Status);
39
40 DataSize = sizeof (EFI_TCG2_PHYSICAL_PRESENCE_FLAGS);
41 Status = VariablePpi->GetVariable (
42 VariablePpi,
43 TCG2_PHYSICAL_PRESENCE_FLAGS_VARIABLE,
44 &gEfiTcg2PhysicalPresenceGuid,
45 NULL,
46 &DataSize,
47 &PpiFlags
48 );
49 if (EFI_ERROR (Status)) {
50 PpiFlags.PPFlags = TCG2_BIOS_TPM_MANAGEMENT_FLAG_DEFAULT | TCG2_BIOS_STORAGE_MANAGEMENT_FLAG_DEFAULT;
51 }
52 return PpiFlags.PPFlags;
53 }