summaryrefslogtreecommitdiffstats
path: root/MdePkg/Include/IndustryStandard/AlertStandardFormatTable.h
blob: ee1fbdce7625dac1893e1c785620b3d7c55febf9 (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
129
130
131
132
133
134
135
136
137
138
139
/** @file
  ACPI Alert Standard Format Description Table ASF! as described in the ASF2.0 Specification

  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/

#ifndef _ALERT_STANDARD_FORMAT_TABLE_H_
#define _ALERT_STANDARD_FORMAT_TABLE_H_

#include <IndustryStandard/Acpi.h>

//
// Ensure proper structure formats
//
#pragma pack (1)

///
/// Information Record header that appears at the beginning of each record
///
typedef struct {
  UINT8     Type;
  UINT8     Reserved;
  UINT16    RecordLength;
} EFI_ACPI_ASF_RECORD_HEADER;

///
/// This structure contains information that identifies the system's type
/// and configuration
///
typedef struct {
  EFI_ACPI_ASF_RECORD_HEADER    RecordHeader;
  UINT8                         MinWatchDogResetValue;
  UINT8                         MinPollingInterval;
  UINT16                        SystemID;
  UINT32                        IANAManufactureID;
  UINT8                         FeatureFlags;
  UINT8                         Reserved[3];
} EFI_ACPI_ASF_INFO;

///
/// ASF Alert Data
///
typedef struct {
  UINT8    DeviceAddress;
  UINT8    Command;
  UINT8    DataMask;
  UINT8    CompareValue;
  UINT8    EventSenseType;
  UINT8    EventType;
  UINT8    EventOffset;
  UINT8    EventSourceType;
  UINT8    EventSeverity;
  UINT8    SensorNumber;
  UINT8    Entity;
  UINT8    EntityInstance;
} EFI_ACPI_ASF_ALERTDATA;

///
/// Alert sensors definition
///
typedef struct {
  EFI_ACPI_ASF_RECORD_HEADER    RecordHeader;
  UINT8                         AssertionEventBitMask;
  UINT8                         DeassertionEventBitMask;
  UINT8                         NumberOfAlerts;
  UINT8                         ArrayElementLength;        ///< For ASF version 1.0 and later, this filed is set to 0x0C
  ///
  /// EFI_ACPI_ASF_ALERTDATA           DeviceArray[ANYSIZE_ARRAY];
  ///
} EFI_ACPI_ASF_ALRT;

///
/// Alert Control Data
///
typedef struct {
  UINT8    Function;
  UINT8    DeviceAddress;
  UINT8    Command;
  UINT8    DataValue;
} EFI_ACPI_ASF_CONTROLDATA;

///
/// Alert Remote Control System Actions
///
typedef struct {
  EFI_ACPI_ASF_RECORD_HEADER    RecordHeader;
  UINT8                         NumberOfControls;
  UINT8                         ArrayElementLength;        ///< For ASF version 1.0 and later, this filed is set to 0x4
  UINT16                        RctlReserved;
  ///
  /// EFI_ACPI_ASF_CONTROLDATA;        DeviceArray[ANYSIZE_ARRAY];
  ///
} EFI_ACPI_ASF_RCTL;

///
/// Remote Control Capabilities
///
typedef struct {
  EFI_ACPI_ASF_RECORD_HEADER    RecordHeader;
  UINT8                         RemoteControlCapabilities[7];
  UINT8                         RMCPCompletionCode;
  UINT32                        RMCPIANA;
  UINT8                         RMCPSpecialCommand;
  UINT8                         RMCPSpecialCommandParameter[2];
  UINT8                         RMCPBootOptions[2];
  UINT8                         RMCPOEMParameters[2];
} EFI_ACPI_ASF_RMCP;

///
/// SMBus Devices with fixed addresses
///
typedef struct {
  EFI_ACPI_ASF_RECORD_HEADER    RecordHeader;
  UINT8                         SEEPROMAddress;
  UINT8                         NumberOfDevices;
  ///
  /// UINT8                            FixedSmbusAddresses[ANYSIZE_ARRAY];
  ///
} EFI_ACPI_ASF_ADDR;

///
/// ASF! Description Table Header
///
typedef EFI_ACPI_DESCRIPTION_HEADER EFI_ACPI_ASF_DESCRIPTION_HEADER;

///
/// The revision stored in ASF! DESCRIPTION TABLE as BCD value
///
#define EFI_ACPI_2_0_ASF_DESCRIPTION_TABLE_REVISION  0x20

///
/// "ASF!" ASF Description Table Signature
///
#define EFI_ACPI_ASF_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32 ('A', 'S', 'F', '!')

#pragma pack ()

#endif // _ALERT_STANDARD_FORMAT_TABLE_H