1 /** @file 2 Implement TPM1.2 NV Self Test related commands. 3 4 Copyright (c) 2016, Intel Corporation. All rights reserved. <BR> 5 (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR> 6 This program and the accompanying materials 7 are licensed and made available under the terms and conditions of the BSD License 8 which accompanies this distribution. The full text of the license may be found at 9 http://opensource.org/licenses/bsd-license.php 10 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14 **/ 15 16 #include <PiPei.h> 17 #include <Library/Tpm12CommandLib.h> 18 #include <Library/BaseLib.h> 19 #include <Library/Tpm12DeviceLib.h> 20 21 /** 22 Send TPM_ContinueSelfTest command to TPM. 23 24 @retval EFI_SUCCESS Operation completed successfully. 25 @retval EFI_TIMEOUT The register can't run into the expected status in time. 26 @retval EFI_BUFFER_TOO_SMALL Response data buffer is too small. 27 @retval EFI_DEVICE_ERROR Unexpected device behavior. 28 29 **/ 30 EFI_STATUS 31 EFIAPI Tpm12ContinueSelfTest(VOID)32Tpm12ContinueSelfTest ( 33 VOID 34 ) 35 { 36 TPM_RQU_COMMAND_HDR Command; 37 TPM_RSP_COMMAND_HDR Response; 38 UINT32 Length; 39 40 // 41 // send Tpm command TPM_ORD_ContinueSelfTest 42 // 43 Command.tag = SwapBytes16 (TPM_TAG_RQU_COMMAND); 44 Command.paramSize = SwapBytes32 (sizeof (Command)); 45 Command.ordinal = SwapBytes32 (TPM_ORD_ContinueSelfTest); 46 Length = sizeof (Response); 47 return Tpm12SubmitCommand (sizeof (Command), (UINT8 *)&Command, &Length, (UINT8 *)&Response); 48 } 49