summaryrefslogtreecommitdiff
path: root/ChvRefCodePkg/Include/Rsci.h
blob: d9eafa7466789942128a32dffeb18df0067a74ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/** @file

  Copyright (c) 1996 - 2015, Intel Corporation. All rights reserved.<BR>

  This program and the accompanying materials
  are licensed and made available under the terms and conditions of the BSD License
  which accompanies this distribution.  The full text of the license may be found at
  http://opensource.org/licenses/bsd-license.php.

  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

**/

#ifndef _RSCI_H
#define _RSCI_H

//
// Statements that include other files
//
#include <IndustryStandard/Acpi10.h>
#include <IndustryStandard/Acpi20.h>
#include <IndustryStandard/Acpi30.h>

//
// Definitions
//
#define EFI_ACPI_OEM_RSCI_REVISION                      0x00000000
#define EFI_ACPI_RSCI_REVISION                          1
#define EFI_ACPI_RESET_SHUTDOWN_COMMUNICATION_INTERFACE_SIGNATURE  SIGNATURE_32('R', 'S', 'C', 'I')
#ifndef EFI_ACPI_OEM_ID
#define EFI_ACPI_OEM_ID                                 'I','N','T','E','L',' '    // 6 Bytes long
#endif
#define EFI_ACPI_RSCI_OEM_TABLE_ID                      SIGNATURE_64 ('B','O','O','T','S','R','C',' ') // OEM table id 8 bytes long
//
// RSCI structure
//
//
// Ensure proper structure formats
//

#pragma pack(1)

typedef enum {
  FBR_NONE = 0,
  FBR_WATCHDOG_COUNTER_EXCEEDED,
  FBR_NO_MATCHING_OS,

  FBR_INVALID_OSNIB_CHECKSUM,
} FALL_BACK_POLICY_REASON;

typedef struct {
  FALL_BACK_POLICY_REASON     FallbackPolicyReason;
  UINT8                       FastbootCombo;
  UINT8                       Reserved[2];
} EFI_ACPI_RSCI_INDICATORS;

typedef struct {
  EFI_ACPI_DESCRIPTION_HEADER Header;
  UINT8                       WakeSrc;
  UINT8                       Resets;
  UINT8                       ResetType;
  UINT8                       ShuntdownSrc;
  EFI_ACPI_RSCI_INDICATORS    Indicators;
} EFI_ACPI_RESET_SHUTDOWN_COMMUNICATION_INTERFACE;

#pragma pack()

//
//Android Wake Sources for S4/S5
//
typedef enum {
  WAKE_NOT_APPLICABLE = 0,
  WAKE_BATTERY_INSERTED,
  WAKE_USB_CHARGER_INSERTED,
  WAKE_ACDC_CHARGER_INSERTED,
  WAKE_POWER_BUTTON_PRESSED,
  WAKE_RTC_TIMER,
  WAKE_BATTERY_REACHED_IA_THRESHOLD
} ANDROID_WAKE_SOURCE;

//
//Android Reset Sources
//
typedef enum {
  RESET_NOT_APPLICABLE = 0,
  RESET_OS_INITIATED,
  RESET_FORCED,
  RESET_FW_UPDATE,
  RESET_KERNEL_WATCHDOG,
  RESET_SECURITY_WATCHDOG,
  RESET_SECURITY_INITIATED,
  RESET_PMC_WATCHDOG,
  RESET_EC_WATCHDOG,
  RESET_PLATFORM_WATCHDOG,
} ANDROID_RESET_SOURCE;

typedef enum {
  NOT_APPLICABLE_RESET = 0,
  WARM_RESET = 1,
  COLD_RESET = 2,
  GLOBAL_RESET = 7,
}ANDROID_RESET_TYPE;

//
//Android Shutdown sources
//
typedef enum {
  SHTDWN_NOT_APPLICABLE = 0,
  SHTDWN_POWER_BUTTON_OVERRIDE,
  SHTDWN_BATTERY_REMOVAL,
  SHTDWN_VCRIT,
  SHTDWN_THERMTRIP,
  SHTDWN_PMICTEMP,
  SHTDWN_SYSTEMP,
  SHTDWN_BATTEMP,
  SHTDWN_SYSUVP,
  SHTDWN_SYSOVP,
  SHTDWN_SECURITY_WATCHDOG,
  SHTDWN_SECURITY_INITIATED,
  SHTDWN_PMC_WATCHDOG,
  SHTDWN_EC_WATCHDOG,
  SHTDWN_PLATFORM_WATCHDOG,
  SHTDWN_KERNEL_WATCHDOG
}ANDROID_SHUTDOWN_SOURCE;

#define EFI_OS_INDICATIONS_OS_INITIATED_RESET 0x00000040
#endif