]> git.proxmox.com Git - mirror_edk2.git/blob - Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscSubclassDriver.h
67ea100fadde5c8f3339a4034d81cf4ec4e7ecb7
[mirror_edk2.git] / Vlv2TbltDevicePkg / SmBiosMiscDxe / MiscSubclassDriver.h
1 /** @file
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 MiscSubclassDriver.h
13
14 Abstract:
15
16 Header file for MiscSubclass Driver.
17
18
19 **/
20
21 #ifndef _MISC_SUBCLASS_DRIVER_H
22 #define _MISC_SUBCLASS_DRIVER_H
23
24
25 #include "CommonHeader.h"
26
27 extern UINT8 MiscSubclassStrings[];
28
29
30 #define T14_FVI_STRING "Driver/firmware version"
31 #define EFI_SMBIOS_TYPE_FIRMWARE_VERSION_INFO 0x90
32 #define EFI_SMBIOS_TYPE_MISC_VERSION_INFO 0x94
33 #define TOUCH_ACPI_ID "I2C05\\SFFFF\\400K"
34 #define TOUCH_RESET_GPIO_MMIO 0xFED0C508
35 #define EFI_SMBIOS_TYPE_SEC_INFO 0x83
36 #define IntelIdentifer 0x6F725076
37
38 //
39 // Data table entry update function.
40 //
41 typedef EFI_STATUS (EFIAPI EFI_MISC_SMBIOS_DATA_FUNCTION) (
42 IN VOID *RecordData,
43 IN EFI_SMBIOS_PROTOCOL *Smbios
44 );
45
46 //
47 // Data table entry definition.
48 //
49 typedef struct {
50 //
51 // intermediat input data for SMBIOS record
52 //
53 VOID *RecordData;
54 EFI_MISC_SMBIOS_DATA_FUNCTION *Function;
55 } EFI_MISC_SMBIOS_DATA_TABLE;
56
57 //
58 // Data Table extern definitions.
59 //
60 #define MISC_SMBIOS_TABLE_EXTERNS(NAME1, NAME2, NAME3) \
61 extern NAME1 NAME2 ## Data; \
62 extern EFI_MISC_SMBIOS_DATA_FUNCTION NAME3 ## Function
63
64
65 //
66 // Data Table entries
67 //
68 #define MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(NAME1, NAME2) \
69 { \
70 & NAME1 ## Data, \
71 & NAME2 ## Function \
72 }
73
74 //
75 // Global definition macros.
76 //
77 #define MISC_SMBIOS_TABLE_DATA(NAME1, NAME2) \
78 NAME1 NAME2 ## Data
79
80 #define MISC_SMBIOS_TABLE_FUNCTION(NAME2) \
81 EFI_STATUS EFIAPI NAME2 ## Function( \
82 IN VOID *RecordData, \
83 IN EFI_SMBIOS_PROTOCOL *Smbios \
84 )
85
86 #pragma pack(1)
87
88 //
89 // This is definition for SMBIOS Oem data type 0x90
90 //
91 typedef struct {
92 STRING_REF SECVersion;
93 STRING_REF uCodeVersion;
94 STRING_REF GOPVersion;
95 STRING_REF CpuStepping;
96 } EFI_MISC_OEM_TYPE_0x90;
97
98 //
99 // This is definition for SMBIOS Oem data type 0x90
100 //
101 typedef struct {
102 SMBIOS_STRUCTURE Hdr;
103 SMBIOS_TABLE_STRING SECVersion;
104 SMBIOS_TABLE_STRING uCodeVersion;
105 SMBIOS_TABLE_STRING GOPVersion;
106 SMBIOS_TABLE_STRING CpuStepping;
107 } SMBIOS_TABLE_TYPE90;
108
109 typedef struct {
110 STRING_REF GopVersion;
111 STRING_REF UCodeVersion;
112 STRING_REF MRCVersion;
113 STRING_REF SECVersion;
114 STRING_REF ULPMCVersion;
115 STRING_REF PMCVersion;
116 STRING_REF PUnitVersion;
117 STRING_REF SoCVersion;
118 STRING_REF BoardVersion;
119 STRING_REF FabVersion;
120 STRING_REF CPUFlavor;
121 STRING_REF BiosVersion;
122 STRING_REF PmicVersion;
123 STRING_REF TouchVersion;
124 STRING_REF SecureBoot;
125 STRING_REF BootMode;
126 STRING_REF SpeedStepMode;
127 STRING_REF CPUTurboMode;
128 STRING_REF MaxCState;
129 STRING_REF GfxTurbo;
130 STRING_REF IdleReserve;
131 STRING_REF RC6;
132 }EFI_MISC_OEM_TYPE_0x94;
133
134 typedef struct {
135 SMBIOS_STRUCTURE Hdr;
136 SMBIOS_TABLE_STRING GopVersion;
137 SMBIOS_TABLE_STRING uCodeVersion;
138 SMBIOS_TABLE_STRING MRCVersion;
139 SMBIOS_TABLE_STRING SECVersion;
140 SMBIOS_TABLE_STRING ULPMCVersion;
141 SMBIOS_TABLE_STRING PMCVersion;
142 SMBIOS_TABLE_STRING PUnitVersion;
143 SMBIOS_TABLE_STRING SoCVersion;
144 SMBIOS_TABLE_STRING BoardVersion;
145 SMBIOS_TABLE_STRING FabVersion;
146 SMBIOS_TABLE_STRING CPUFlavor;
147 SMBIOS_TABLE_STRING BiosVersion;
148 SMBIOS_TABLE_STRING PmicVersion;
149 SMBIOS_TABLE_STRING TouchVersion;
150 SMBIOS_TABLE_STRING SecureBoot;
151 SMBIOS_TABLE_STRING BootMode;
152 SMBIOS_TABLE_STRING SpeedStepMode;
153 SMBIOS_TABLE_STRING CPUTurboMode;
154 SMBIOS_TABLE_STRING MaxCState;
155 SMBIOS_TABLE_STRING GfxTurbo;
156 SMBIOS_TABLE_STRING IdleReserve;
157 SMBIOS_TABLE_STRING RC6;
158 }SMBIOS_TABLE_TYPE94;
159
160 #pragma pack()
161 //
162 // Data Table Array
163 //
164 extern EFI_MISC_SMBIOS_DATA_TABLE mMiscSubclassDataTable[];
165
166 //
167 // Data Table Array Entries
168 //
169 extern UINTN mMiscSubclassDataTableEntries;
170 extern EFI_HII_HANDLE mHiiHandle;
171
172 //
173 // Prototypes
174 //
175 EFI_STATUS
176 EFIAPI
177 MiscSubclassDriverEntryPoint (
178 IN EFI_HANDLE ImageHandle,
179 IN EFI_SYSTEM_TABLE *SystemTable
180 );
181
182 EFI_STRING
183 EFIAPI
184 SmbiosMiscGetString (
185 IN EFI_STRING_ID StringId
186 );
187
188 #endif