]> git.proxmox.com Git - mirror_edk2.git/blob - Vlv2TbltDevicePkg/Include/Protocol/TcoReset.h
bda47c359dbc42bace1f615a5ea5fb28f515bf2a
[mirror_edk2.git] / Vlv2TbltDevicePkg / Include / Protocol / TcoReset.h
1 /*++
2
3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
4
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7
8
9
10 Module Name:
11
12 TcoReset.h
13
14 Abstract:
15
16 Protocol to communicate with ICH TCO.
17
18 GUID Info:
19 {A6A79162-E325-4c30-BCC3-59373064EFB3}
20 0xa6a79162, 0xe325, 0x4c30, 0xbc, 0xc3, 0x59, 0x37, 0x30, 0x64, 0xef, 0xb3);
21
22
23 --*/
24
25 #ifndef _TCO_RESET_H_
26 #define _TCO_RESET_H_
27
28
29 #define EFI_TCO_RESET_PROTOCOL_GUID \
30 {0xa6a79162, 0xe325, 0x4c30, 0xbc, 0xc3, 0x59, 0x37, 0x30, 0x64, 0xef, 0xb3}
31
32 typedef struct _EFI_TCO_RESET_PROTOCOL EFI_TCO_RESET_PROTOCOL;
33
34 /**
35 Enables the TCO timer to reset the system in case of a system hang. This is
36 used when writing the clock registers.
37
38 @param[in] RcrbGcsSaveValue This is the value of the RCRB GCS register before it is
39 changed by this procedure. This will be used to restore
40 the settings of this register in PpiDisableTcoReset.
41 **/
42 typedef
43 EFI_STATUS
44 (EFIAPI *EFI_TCO_RESET_PROTOCOL_ENABLE_TCO_RESET) (
45 IN UINT32 *RcrbGcsSaveValue
46 );
47
48 /**
49 Disables the TCO timer. This is used after writing the clock registers.
50
51 @param[in] RcrbGcsRestoreValue Value saved in PpiEnableTcoReset so that it can
52 restored.
53 **/
54 typedef
55 EFI_STATUS
56 (EFIAPI *EFI_TCO_RESET_PROTOCOL_DISABLE_TCO_RESET) (
57 OUT UINT32 RcrbGcsRestoreValue
58 );
59
60 typedef struct _EFI_TCO_RESET_PROTOCOL {
61 EFI_TCO_RESET_PROTOCOL_ENABLE_TCO_RESET EnableTcoReset;
62 EFI_TCO_RESET_PROTOCOL_DISABLE_TCO_RESET DisableTcoReset;
63 } EFI_TCO_RESET_PROTOCOL;
64
65 extern EFI_GUID gEfiTcoResetProtocolGuid;
66
67 #endif