]> git.proxmox.com Git - mirror_edk2.git/blame - SecurityPkg/Library/Tpm12CommandLib/Tpm12Ownership.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / SecurityPkg / Library / Tpm12CommandLib / Tpm12Ownership.c
CommitLineData
c1d93242 1/** @file\r
4ccef561 2 Implement TPM1.2 Ownership related command.\r
c1d93242 3\r
b3548d32 4Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved. <BR>\r
289b714b 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
c1d93242
JY
6\r
7**/\r
8\r
83b9662f 9#include <PiPei.h>\r
c1d93242
JY
10#include <Library/BaseMemoryLib.h>\r
11#include <Library/BaseLib.h>\r
12#include <Library/Tpm12DeviceLib.h>\r
13\r
c1d93242
JY
14/**\r
15 Send ForceClear command to TPM1.2.\r
16\r
17 @retval EFI_SUCCESS Operation completed successfully.\r
18 @retval EFI_DEVICE_ERROR Unexpected device behavior.\r
19**/\r
20EFI_STATUS\r
21EFIAPI\r
22Tpm12ForceClear (\r
23 VOID\r
24 )\r
25{\r
83b9662f
MK
26 EFI_STATUS Status;\r
27 TPM_RQU_COMMAND_HDR Command;\r
28 TPM_RSP_COMMAND_HDR Response;\r
29 UINT32 Length;\r
c1d93242
JY
30\r
31 //\r
32 // send Tpm command TPM_ORD_ForceClear\r
33 //\r
c411b485
MK
34 Command.tag = SwapBytes16 (TPM_TAG_RQU_COMMAND);\r
35 Command.paramSize = SwapBytes32 (sizeof (Command));\r
36 Command.ordinal = SwapBytes32 (TPM_ORD_ForceClear);\r
37 Length = sizeof (Response);\r
c1d93242 38\r
83b9662f 39 Status = Tpm12SubmitCommand (sizeof (Command), (UINT8 *)&Command, &Length, (UINT8 *)&Response);\r
c1d93242
JY
40 if (EFI_ERROR (Status)) {\r
41 return Status;\r
42 }\r
c411b485 43\r
83b9662f 44 switch (SwapBytes32 (Response.returnCode)) {\r
c411b485
MK
45 case TPM_SUCCESS:\r
46 return EFI_SUCCESS;\r
47 default:\r
48 return EFI_DEVICE_ERROR;\r
c1d93242 49 }\r
b3548d32 50}\r