TisPc.c revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
2N/A Basic TIS (TPM Interface Specification) functions. 2N/ACopyright (c) 2005 - 2011, Intel Corporation. All rights reserved.<BR> 2N/AThis program and the accompanying materials 2N/Aare licensed and made available under the terms and conditions of the BSD License 2N/Awhich accompanies this distribution. The full text of the license may be found at 2N/ATHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 2N/AWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 2N/A Check whether TPM chip exist. 2N/A @param[in] TisReg Pointer to TIS register. 2N/A @retval TRUE TPM chip exists. 2N/A @retval FALSE TPM chip is not found. 2N/A Check whether the value of a TPM chip register satisfies the input BIT setting. 2N/A @param[in] Register Address port of register to be checked. 2N/A @param[in] BitSet Check these data bits are set. 2N/A @param[in] BitClear Check these data bits are clear. 2N/A @param[in] TimeOut The max wait time (unit MicroSecond) when checking register. 2N/A @retval EFI_SUCCESS The register satisfies the check bit. 2N/A @retval EFI_TIMEOUT The register can't run into the expected status in time. Get BurstCount by reading the burstCount field of a TIS regiger in the time of default TIS_TIMEOUT_D. @param[in] TisReg Pointer to TIS register. @param[out] BurstCount Pointer to a buffer to store the got BurstConut. @retval EFI_SUCCESS Get BurstCount. @retval EFI_INVALID_PARAMETER TisReg is NULL or BurstCount is NULL. @retval EFI_TIMEOUT BurstCount can't be got in time. // TIS_PC_REGISTERS_PTR->burstCount is UINT16, but it is not 2bytes aligned, // so it needs to use MmioRead8 to read two times Set TPM chip to ready state by sending ready command TIS_PC_STS_READY to Status Register in time. @param[in] TisReg Pointer to TIS register. @retval EFI_SUCCESS TPM chip enters into ready state. @retval EFI_INVALID_PARAMETER TisReg is NULL. @retval EFI_TIMEOUT TPM chip can't be set to ready state in time. Get the control of TPM chip by sending requestUse command TIS_PC_ACC_RQUUSE to ACCESS Register in the time of default TIS_TIMEOUT_D. @param[in] TisReg Pointer to TIS register. @retval EFI_SUCCESS Get the control of TPM chip. @retval EFI_INVALID_PARAMETER TisReg is NULL. @retval EFI_NOT_FOUND TPM chip doesn't exit. @retval EFI_TIMEOUT Can't get the TPM control in time.