1// This file was extracted from the TCG Published
2// Trusted Platform Module Library
3// Part 4: Supporting Routines
4// Family "2.0"
5// Level 00 Revision 01.16
6// October 30, 2014
7
8#include       "PlatformData.h"
9#include       "Platform.h"
10//
11//
12//          Functions
13//
14//          _plat__Signal_PowerOn()
15//
16//     Signal platform power on
17//
18LIB_EXPORT int
19_plat__Signal_PowerOn(
20     void
21     )
22{
23     // Start clock
24     _plat__ClockReset();
25     // Initialize locality
26     s_locality = 0;
27     // Command cancel
28      s_isCanceled = FALSE;
29     // Need to indicate that we lost power
30     s_powerLost = TRUE;
31     return 0;
32}
33//
34//
35//          _plat__WasPowerLost()
36//
37//     Test whether power was lost before a _TPM_Init()
38//
39LIB_EXPORT BOOL
40_plat__WasPowerLost(
41     BOOL                 clear
42     )
43{
44     BOOL        retVal = s_powerLost;
45     if(clear)
46         s_powerLost = FALSE;
47     return retVal;
48}
49//
50//
51//          _plat_Signal_Reset()
52//
53//     This a TPM reset without a power loss.
54//
55LIB_EXPORT int
56_plat__Signal_Reset(
57     void
58     )
59{
60     // Need to reset the clock
61     _plat__ClockReset();
62   // if we are doing reset but did not have a power failure, then we should
63   // not need to reload NV ...
64   return 0;
65}
66//
67//
68//        _plat__Signal_PowerOff()
69//
70//     Signal platform power off
71//
72LIB_EXPORT void
73_plat__Signal_PowerOff(
74   void
75   )
76{
77   // Prepare NV memory for power off
78   _plat__NVDisable();
79   return;
80}
81