/** @file Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent Module Name: MiscSubclassDriver.h Abstract: Header file for MiscSubclass Driver. **/ #ifndef _MISC_SUBCLASS_DRIVER_H #define _MISC_SUBCLASS_DRIVER_H #include "CommonHeader.h" extern UINT8 MiscSubclassStrings[]; #define T14_FVI_STRING "Driver/firmware version" #define EFI_SMBIOS_TYPE_FIRMWARE_VERSION_INFO 0x90 #define EFI_SMBIOS_TYPE_MISC_VERSION_INFO 0x94 #define TOUCH_ACPI_ID "I2C05\\SFFFF\\400K" #define TOUCH_RESET_GPIO_MMIO 0xFED0C508 #define EFI_SMBIOS_TYPE_SEC_INFO 0x83 #define IntelIdentifer 0x6F725076 // // Data table entry update function. // typedef EFI_STATUS (EFIAPI EFI_MISC_SMBIOS_DATA_FUNCTION) ( IN VOID *RecordData, IN EFI_SMBIOS_PROTOCOL *Smbios ); // // Data table entry definition. // typedef struct { // // intermediat input data for SMBIOS record // VOID *RecordData; EFI_MISC_SMBIOS_DATA_FUNCTION *Function; } EFI_MISC_SMBIOS_DATA_TABLE; // // Data Table extern definitions. // #define MISC_SMBIOS_TABLE_EXTERNS(NAME1, NAME2, NAME3) \ extern NAME1 NAME2 ## Data; \ extern EFI_MISC_SMBIOS_DATA_FUNCTION NAME3 ## Function // // Data Table entries // #define MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(NAME1, NAME2) \ { \ & NAME1 ## Data, \ & NAME2 ## Function \ } // // Global definition macros. // #define MISC_SMBIOS_TABLE_DATA(NAME1, NAME2) \ NAME1 NAME2 ## Data #define MISC_SMBIOS_TABLE_FUNCTION(NAME2) \ EFI_STATUS EFIAPI NAME2 ## Function( \ IN VOID *RecordData, \ IN EFI_SMBIOS_PROTOCOL *Smbios \ ) #pragma pack(1) // // This is definition for SMBIOS Oem data type 0x90 // typedef struct { STRING_REF SECVersion; STRING_REF uCodeVersion; STRING_REF GOPVersion; STRING_REF CpuStepping; } EFI_MISC_OEM_TYPE_0x90; // // This is definition for SMBIOS Oem data type 0x90 // typedef struct { SMBIOS_STRUCTURE Hdr; SMBIOS_TABLE_STRING SECVersion; SMBIOS_TABLE_STRING uCodeVersion; SMBIOS_TABLE_STRING GOPVersion; SMBIOS_TABLE_STRING CpuStepping; } SMBIOS_TABLE_TYPE90; typedef struct { STRING_REF GopVersion; STRING_REF UCodeVersion; STRING_REF MRCVersion; STRING_REF SECVersion; STRING_REF ULPMCVersion; STRING_REF PMCVersion; STRING_REF PUnitVersion; STRING_REF SoCVersion; STRING_REF BoardVersion; STRING_REF FabVersion; STRING_REF CPUFlavor; STRING_REF BiosVersion; STRING_REF PmicVersion; STRING_REF TouchVersion; STRING_REF SecureBoot; STRING_REF BootMode; STRING_REF SpeedStepMode; STRING_REF CPUTurboMode; STRING_REF MaxCState; STRING_REF GfxTurbo; STRING_REF IdleReserve; STRING_REF RC6; }EFI_MISC_OEM_TYPE_0x94; typedef struct { SMBIOS_STRUCTURE Hdr; SMBIOS_TABLE_STRING GopVersion; SMBIOS_TABLE_STRING uCodeVersion; SMBIOS_TABLE_STRING MRCVersion; SMBIOS_TABLE_STRING SECVersion; SMBIOS_TABLE_STRING ULPMCVersion; SMBIOS_TABLE_STRING PMCVersion; SMBIOS_TABLE_STRING PUnitVersion; SMBIOS_TABLE_STRING SoCVersion; SMBIOS_TABLE_STRING BoardVersion; SMBIOS_TABLE_STRING FabVersion; SMBIOS_TABLE_STRING CPUFlavor; SMBIOS_TABLE_STRING BiosVersion; SMBIOS_TABLE_STRING PmicVersion; SMBIOS_TABLE_STRING TouchVersion; SMBIOS_TABLE_STRING SecureBoot; SMBIOS_TABLE_STRING BootMode; SMBIOS_TABLE_STRING SpeedStepMode; SMBIOS_TABLE_STRING CPUTurboMode; SMBIOS_TABLE_STRING MaxCState; SMBIOS_TABLE_STRING GfxTurbo; SMBIOS_TABLE_STRING IdleReserve; SMBIOS_TABLE_STRING RC6; }SMBIOS_TABLE_TYPE94; #pragma pack() // // Data Table Array // extern EFI_MISC_SMBIOS_DATA_TABLE mMiscSubclassDataTable[]; // // Data Table Array Entries // extern UINTN mMiscSubclassDataTableEntries; extern EFI_HII_HANDLE mHiiHandle; // // Prototypes // EFI_STATUS EFIAPI MiscSubclassDriverEntryPoint ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ); EFI_STRING EFIAPI SmbiosMiscGetString ( IN EFI_STRING_ID StringId ); #endif