| // This file was extracted from the TCG Published |
| // Trusted Platform Module Library |
| // Part 4: Supporting Routines |
| // Family "2.0" |
| // Level 00 Revision 01.16 |
| // October 30, 2014 |
| |
| #include "PlatformData.h" |
| #include "Platform.h" |
| // |
| // |
| // Functions |
| // |
| // _plat__Signal_PowerOn() |
| // |
| // Signal platform power on |
| // |
| LIB_EXPORT int |
| _plat__Signal_PowerOn( |
| void |
| ) |
| { |
| // Start clock |
| _plat__ClockReset(); |
| // Initialize locality |
| s_locality = 0; |
| // Command cancel |
| s_isCanceled = FALSE; |
| // Need to indicate that we lost power |
| s_powerLost = TRUE; |
| return 0; |
| } |
| // |
| // |
| // _plat__WasPowerLost() |
| // |
| // Test whether power was lost before a _TPM_Init() |
| // |
| LIB_EXPORT BOOL |
| _plat__WasPowerLost( |
| BOOL clear |
| ) |
| { |
| BOOL retVal = s_powerLost; |
| if(clear) |
| s_powerLost = FALSE; |
| return retVal; |
| } |
| // |
| // |
| // _plat_Signal_Reset() |
| // |
| // This a TPM reset without a power loss. |
| // |
| LIB_EXPORT int |
| _plat__Signal_Reset( |
| void |
| ) |
| { |
| // Need to reset the clock |
| _plat__ClockReset(); |
| // if we are doing reset but did not have a power failure, then we should |
| // not need to reload NV ... |
| return 0; |
| } |
| // |
| // |
| // _plat__Signal_PowerOff() |
| // |
| // Signal platform power off |
| // |
| LIB_EXPORT void |
| _plat__Signal_PowerOff( |
| void |
| ) |
| { |
| // Prepare NV memory for power off |
| _plat__NVDisable(); |
| return; |
| } |