1 /** @file 2 3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR> 4 5 This program and the accompanying materials are licensed and made available under 7 the terms and conditions of the BSD License that accompanies this distribution. 9 The full text of the license may be found at 11 http://opensource.org/licenses/bsd-license.php. 13 15 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 17 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 19 21 23 24 Module Name: 25 26 MiscSubclassDriver.h 27 28 Abstract: 29 30 Header file for MiscSubclass Driver. 31 32 33 **/ 34 35 #ifndef _MISC_SUBCLASS_DRIVER_H 36 #define _MISC_SUBCLASS_DRIVER_H 37 38 39 #include "CommonHeader.h" 40 41 extern UINT8 MiscSubclassStrings[]; 42 43 44 #define T14_FVI_STRING "Driver/firmware version" 45 #define EFI_SMBIOS_TYPE_FIRMWARE_VERSION_INFO 0x90 46 #define EFI_SMBIOS_TYPE_MISC_VERSION_INFO 0x94 47 #define TOUCH_ACPI_ID "I2C05\\SFFFF\\400K" 48 #define TOUCH_RESET_GPIO_MMIO 0xFED0C508 49 #define EFI_SMBIOS_TYPE_SEC_INFO 0x83 50 #define IntelIdentifer 0x6F725076 51 52 // 53 // Data table entry update function. 54 // 55 typedef EFI_STATUS (EFIAPI EFI_MISC_SMBIOS_DATA_FUNCTION) ( 56 IN VOID *RecordData, 57 IN EFI_SMBIOS_PROTOCOL *Smbios 58 ); 59 60 // 61 // Data table entry definition. 62 // 63 typedef struct { 64 // 65 // intermediat input data for SMBIOS record 66 // 67 VOID *RecordData; 68 EFI_MISC_SMBIOS_DATA_FUNCTION *Function; 69 } EFI_MISC_SMBIOS_DATA_TABLE; 70 71 // 72 // Data Table extern definitions. 73 // 74 #define MISC_SMBIOS_TABLE_EXTERNS(NAME1, NAME2, NAME3) \ 75 extern NAME1 NAME2 ## Data; \ 76 extern EFI_MISC_SMBIOS_DATA_FUNCTION NAME3 ## Function 77 78 79 // 80 // Data Table entries 81 // 82 #define MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(NAME1, NAME2) \ 83 { \ 84 & NAME1 ## Data, \ 85 & NAME2 ## Function \ 86 } 87 88 // 89 // Global definition macros. 90 // 91 #define MISC_SMBIOS_TABLE_DATA(NAME1, NAME2) \ 92 NAME1 NAME2 ## Data 93 94 #define MISC_SMBIOS_TABLE_FUNCTION(NAME2) \ 95 EFI_STATUS EFIAPI NAME2 ## Function( \ 96 IN VOID *RecordData, \ 97 IN EFI_SMBIOS_PROTOCOL *Smbios \ 98 ) 99 100 #pragma pack(1) 101 102 // 103 // This is definition for SMBIOS Oem data type 0x90 104 // 105 typedef struct { 106 STRING_REF SECVersion; 107 STRING_REF uCodeVersion; 108 STRING_REF GOPVersion; 109 STRING_REF CpuStepping; 110 } EFI_MISC_OEM_TYPE_0x90; 111 112 // 113 // This is definition for SMBIOS Oem data type 0x90 114 // 115 typedef struct { 116 SMBIOS_STRUCTURE Hdr; 117 SMBIOS_TABLE_STRING SECVersion; 118 SMBIOS_TABLE_STRING uCodeVersion; 119 SMBIOS_TABLE_STRING GOPVersion; 120 SMBIOS_TABLE_STRING CpuStepping; 121 } SMBIOS_TABLE_TYPE90; 122 123 typedef struct { 124 STRING_REF GopVersion; 125 STRING_REF UCodeVersion; 126 STRING_REF MRCVersion; 127 STRING_REF SECVersion; 128 STRING_REF ULPMCVersion; 129 STRING_REF PMCVersion; 130 STRING_REF PUnitVersion; 131 STRING_REF SoCVersion; 132 STRING_REF BoardVersion; 133 STRING_REF FabVersion; 134 STRING_REF CPUFlavor; 135 STRING_REF BiosVersion; 136 STRING_REF PmicVersion; 137 STRING_REF TouchVersion; 138 STRING_REF SecureBoot; 139 STRING_REF BootMode; 140 STRING_REF SpeedStepMode; 141 STRING_REF CPUTurboMode; 142 STRING_REF MaxCState; 143 STRING_REF GfxTurbo; 144 STRING_REF IdleReserve; 145 STRING_REF RC6; 146 }EFI_MISC_OEM_TYPE_0x94; 147 148 typedef struct { 149 SMBIOS_STRUCTURE Hdr; 150 SMBIOS_TABLE_STRING GopVersion; 151 SMBIOS_TABLE_STRING uCodeVersion; 152 SMBIOS_TABLE_STRING MRCVersion; 153 SMBIOS_TABLE_STRING SECVersion; 154 SMBIOS_TABLE_STRING ULPMCVersion; 155 SMBIOS_TABLE_STRING PMCVersion; 156 SMBIOS_TABLE_STRING PUnitVersion; 157 SMBIOS_TABLE_STRING SoCVersion; 158 SMBIOS_TABLE_STRING BoardVersion; 159 SMBIOS_TABLE_STRING FabVersion; 160 SMBIOS_TABLE_STRING CPUFlavor; 161 SMBIOS_TABLE_STRING BiosVersion; 162 SMBIOS_TABLE_STRING PmicVersion; 163 SMBIOS_TABLE_STRING TouchVersion; 164 SMBIOS_TABLE_STRING SecureBoot; 165 SMBIOS_TABLE_STRING BootMode; 166 SMBIOS_TABLE_STRING SpeedStepMode; 167 SMBIOS_TABLE_STRING CPUTurboMode; 168 SMBIOS_TABLE_STRING MaxCState; 169 SMBIOS_TABLE_STRING GfxTurbo; 170 SMBIOS_TABLE_STRING IdleReserve; 171 SMBIOS_TABLE_STRING RC6; 172 }SMBIOS_TABLE_TYPE94; 173 174 #pragma pack() 175 // 176 // Data Table Array 177 // 178 extern EFI_MISC_SMBIOS_DATA_TABLE mMiscSubclassDataTable[]; 179 180 // 181 // Data Table Array Entries 182 // 183 extern UINTN mMiscSubclassDataTableEntries; 184 extern EFI_HII_HANDLE mHiiHandle; 185 186 // 187 // Prototypes 188 // 189 EFI_STATUS 190 EFIAPI 191 MiscSubclassDriverEntryPoint ( 192 IN EFI_HANDLE ImageHandle, 193 IN EFI_SYSTEM_TABLE *SystemTable 194 ); 195 196 EFI_STRING 197 EFIAPI 198 SmbiosMiscGetString ( 199 IN EFI_STRING_ID StringId 200 ); 201 202 #endif 203