321 lines
9.8 KiB
C
321 lines
9.8 KiB
C
/** @file
|
|
|
|
;******************************************************************************
|
|
;* Copyright (c) 2014 - 2018, Insyde Software Corporation. All Rights Reserved.
|
|
;*
|
|
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
|
|
;* transmit, broadcast, present, recite, release, license or otherwise exploit
|
|
;* any part of this publication in any form, by any means, without the prior
|
|
;* written permission of Insyde Software Corporation.
|
|
;*
|
|
;******************************************************************************
|
|
*/
|
|
|
|
#ifndef _SETUP_FUNCS_H_
|
|
#define _SETUP_FUNCS_H_
|
|
|
|
#include <SetupUtility.h>
|
|
#include <Library/BaseLib.h>
|
|
|
|
#include <Protocol/MemInfo.h>
|
|
#include <Protocol/IdeControllerInit.h>
|
|
#include <PortNumberMap.h>
|
|
#include <CpuRegs.h>
|
|
#include <StdLib/StdCLibSupport.h>
|
|
#include <MeSetup.h>
|
|
//[-start-201127-IB17510127-add]//
|
|
#include <Library/BootGuardLibVer1.h>
|
|
#include <Protocol/AmtWrapperProtocol.h>
|
|
|
|
#define HeciPciSegmentRead32(Register) PciSegmentRead32 (PCI_SEGMENT_LIB_ADDRESS (ME_SEGMENT, ME_BUS, ME_DEVICE_NUMBER, HECI_FUNCTION_NUMBER, Register))
|
|
//[-end-201127-IB17510127-add]//
|
|
|
|
///
|
|
/// This constant defines the maximum length of the CPU brand string. According to the
|
|
/// IA manual, the brand string is in EAX through EDX (thus 16 bytes) after executing
|
|
/// the CPUID instructions with EAX as 80000002, 80000003, 80000004.
|
|
///
|
|
#define MAXIMUM_CPU_BRAND_STRING_LENGTH 48
|
|
|
|
#define CONFIG_TDP_NUM_LEVELS_MASK ( BIT34 | BIT33 )
|
|
|
|
EFI_STATUS
|
|
LoadCustomOption (
|
|
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This
|
|
);
|
|
|
|
EFI_STATUS
|
|
SaveCustomOption (
|
|
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This
|
|
);
|
|
|
|
EFI_STATUS
|
|
DiscardChange (
|
|
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This
|
|
);
|
|
|
|
|
|
VOID *
|
|
GetVariableAndSize (
|
|
IN CHAR16 *Name,
|
|
IN EFI_GUID *VendorGuid,
|
|
OUT UINTN *VariableSize
|
|
);
|
|
|
|
EFI_STATUS
|
|
CheckLanguage (
|
|
VOID
|
|
);
|
|
|
|
EFI_STATUS
|
|
UpdateAtaString(
|
|
IN EFI_ATAPI_IDENTIFY_DATA *IdentifyDriveInfo,
|
|
IN OUT CHAR16 **NewString
|
|
);
|
|
|
|
EFI_STATUS
|
|
AsciiToUnicode (
|
|
IN CHAR8 *AsciiString,
|
|
IN CHAR16 *UnicodeString
|
|
);
|
|
EFI_STATUS
|
|
EventTimerControl (
|
|
IN UINT64 Timeout
|
|
);
|
|
|
|
EFI_STATUS
|
|
SearchMatchedPortNum (
|
|
IN UINT32 Bus,
|
|
IN UINT32 Device,
|
|
IN UINT32 Function,
|
|
IN UINT8 PrimarySecondary,
|
|
IN UINT8 SlaveMaster,
|
|
IN OUT UINTN *PortNum
|
|
);
|
|
|
|
EFI_STATUS
|
|
CheckSataPort (
|
|
IN UINTN PortNum
|
|
);
|
|
|
|
|
|
CHAR16 *
|
|
GetTokenStringByLanguage (
|
|
IN EFI_HII_HANDLE HiiHandle,
|
|
IN EFI_STRING_ID Token,
|
|
IN CHAR8 *LanguageString
|
|
);
|
|
EFI_STATUS
|
|
SaveSetupConfig (
|
|
IN CHAR16 *VariableName,
|
|
IN EFI_GUID *VendorGuid,
|
|
IN UINT32 Attributes,
|
|
IN UINTN DataSize,
|
|
IN VOID *Buffer
|
|
);
|
|
|
|
EFI_STATUS
|
|
AddNewString (
|
|
IN EFI_HII_HANDLE InputHiiHandle,
|
|
IN EFI_HII_HANDLE OutputHiiHandle,
|
|
IN EFI_STRING_ID InputToken,
|
|
OUT EFI_STRING_ID *OutputToken
|
|
);
|
|
|
|
EFI_STATUS
|
|
DefaultSetup (
|
|
OUT CHIPSET_CONFIGURATION *SetupNvData
|
|
);
|
|
|
|
/**
|
|
Build a default SETUP_DATA variable value an save to a buffer according to platform requirement
|
|
|
|
@param[out] SetupDataNvData A pointer of a pointer to SETUP_DATA variable default value
|
|
for DXE recovery between different size of SETUP_DATA.
|
|
@param[in] PoolType The type of pool to allocate
|
|
|
|
@retval EFI_SUCCESS Build default setup successful.
|
|
@retval EFI_INVALID_PARAMETER Input value is invalid.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DefaultSetupData (
|
|
OUT SETUP_DATA **SetupDataNvData,
|
|
IN EFI_MEMORY_TYPE PoolType
|
|
);
|
|
|
|
/**
|
|
Build a default SA variable value an save to a buffer according to platform requirement
|
|
|
|
@param[out] SaSetupNvData A pointer of a pointer to SA_SETUP variable default value
|
|
for DXE recovery between different size of SA_SETUP.
|
|
@param[in] PoolType The type of pool to allocate
|
|
|
|
@retval EFI_SUCCESS Build default setup successful.
|
|
@retval EFI_INVALID_PARAMETER Input value is invalid.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DefaultSaSetup (
|
|
OUT SA_SETUP **SaSetupNvData,
|
|
IN EFI_MEMORY_TYPE PoolType
|
|
);
|
|
|
|
/**
|
|
Build a default ME variable value an save to a buffer according to platform requirement
|
|
|
|
@param[out] MeSetupNvData A pointer of a pointer to ME_SETUP variable default value
|
|
for DXE recovery between different size of ME_SETUP.
|
|
@param[in] PoolType The type of pool to allocate
|
|
|
|
@retval EFI_SUCCESS Build default setup successful.
|
|
@retval EFI_INVALID_PARAMETER Input value is invalid.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DefaultMeSetup (
|
|
OUT ME_SETUP **MeSetupNvData,
|
|
IN EFI_MEMORY_TYPE PoolType
|
|
);
|
|
|
|
/**
|
|
Build a default CPU variable value an save to a buffer according to platform requirement
|
|
|
|
@param[out] CpuSetupNvData A pointer of a pointer to CPU_SETUP variable default value
|
|
for DXE recovery between different size of CPU_SETUP.
|
|
@param[in] PoolType The type of pool to allocate
|
|
|
|
@retval EFI_SUCCESS Build default setup successful.
|
|
@retval EFI_INVALID_PARAMETER Input value is invalid.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DefaultCpuSetup (
|
|
OUT CPU_SETUP **CpuSetupNvData,
|
|
IN EFI_MEMORY_TYPE PoolType
|
|
);
|
|
|
|
/**
|
|
Build a default PCH variable value an save to a buffer according to platform requirement
|
|
|
|
@param[out] PchSetupNvData A pointer of a pointer to PCH_SETUP variable default value
|
|
for DXE recovery between different size of PCH_SETUP.
|
|
@param[in] PoolType The type of pool to allocate
|
|
|
|
@retval EFI_SUCCESS Build default setup successful.
|
|
@retval EFI_INVALID_PARAMETER Input value is invalid.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DefaultPchSetup (
|
|
OUT PCH_SETUP **PchSetupNvData,
|
|
IN EFI_MEMORY_TYPE PoolType
|
|
);
|
|
|
|
/**
|
|
Build a default SI variable value an save to a buffer according to platform requirement
|
|
|
|
@param[out] SiSetupNvData A pointer of a pointer to SI_SETUP variable default value
|
|
for DXE recovery between different size of SI_SETUP.
|
|
@param[in] PoolType The type of pool to allocate
|
|
|
|
@retval EFI_SUCCESS Build default setup successful.
|
|
@retval EFI_INVALID_PARAMETER Input value is invalid.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DefaultSiSetup (
|
|
OUT SI_SETUP **SiSetupNvData,
|
|
IN EFI_MEMORY_TYPE PoolType
|
|
);
|
|
|
|
//[-start-201127-IB17510127-add]//
|
|
/**
|
|
Build a default ME_SETUP_STORAGE variable value an save to a buffer according to platform requirement
|
|
|
|
@param[out] MeSetupStorageNvData A pointer of a pointer to ME_SETUP_STORAGE variable default value
|
|
for DXE recovery between different size of ME_SETUP_STORAGE.
|
|
@param[in] PoolType The type of pool to allocate
|
|
|
|
@retval EFI_SUCCESS Build default setup successful.
|
|
@retval EFI_INVALID_PARAMETER Input value is invalid.
|
|
|
|
**/
|
|
EFI_STATUS
|
|
DefaultMeSetupStorage (
|
|
OUT ME_SETUP_STORAGE **MeSetupStorageNvData,
|
|
IN EFI_MEMORY_TYPE PoolType
|
|
);
|
|
//[-end-201127-IB17510127-add]//
|
|
|
|
VOID
|
|
ClearSetupVariableInvalid (
|
|
VOID
|
|
);
|
|
|
|
EFI_STATUS
|
|
SetupRuntimeDetermination (
|
|
IN OUT CHIPSET_CONFIGURATION *SetupNvData,
|
|
IN EFI_STATUS GetSetupStatus,
|
|
IN OUT SA_SETUP *SaSetupNvData,
|
|
IN EFI_STATUS GetSaSetupStatus,
|
|
IN OUT ME_SETUP *MeSetupNvData,
|
|
IN EFI_STATUS GetMeSetupStatus,
|
|
IN OUT CPU_SETUP *CpuSetupNvData,
|
|
IN EFI_STATUS GetCpuSetupStatus,
|
|
IN OUT PCH_SETUP *PchSetupNvData,
|
|
IN EFI_STATUS GetPchSetupStatus,
|
|
IN OUT ME_SETUP_STORAGE *MeSetupStorageNvData,
|
|
IN EFI_STATUS GetMeSetupStorageStatus,
|
|
IN OUT SETUP_DATA *SetupDataNvData,
|
|
IN EFI_STATUS GetSetupDataStatus,
|
|
IN OUT SI_SETUP *SiSetupNvData,
|
|
IN EFI_STATUS GetSiSetupStatus
|
|
);
|
|
|
|
EFI_STATUS
|
|
SetupRuntimeUpdateEveryBoot (
|
|
IN OUT CHIPSET_CONFIGURATION *SetupNvData,
|
|
IN OUT SETUP_DATA *SetupDataNvData,
|
|
IN OUT SA_SETUP *SaSetupNvData,
|
|
IN OUT ME_SETUP *MeSetupNvData,
|
|
IN OUT CPU_SETUP *CpuSetupNvData,
|
|
IN OUT PCH_SETUP *PchSetupNvData,
|
|
IN OUT SI_SETUP *SiSetupNvData,
|
|
IN OUT ME_SETUP_STORAGE *MeSetupStorageNvData
|
|
);
|
|
|
|
UINT8
|
|
MeFwTypeDetect (
|
|
//[-start-190610-IB16990033-add]//
|
|
VOID
|
|
//[-end-190610-IB16990033-add]//
|
|
);
|
|
|
|
|
|
UINT8
|
|
UpdateTxtDprMemorySize (
|
|
//[-start-190610-IB16990033-add]//
|
|
VOID
|
|
//[-end-190610-IB16990033-add]//
|
|
);
|
|
|
|
UINT8 *
|
|
EFIAPI
|
|
ScuCreateGrayoutIfOpCode (
|
|
IN VOID *OpCodeHandle
|
|
);
|
|
|
|
UINT8 *
|
|
EFIAPI
|
|
ScuCreateFalseOpCode (
|
|
IN VOID *OpCodeHandle
|
|
);
|
|
|
|
UINT8 *
|
|
EFIAPI
|
|
ScuCreateTrueOpCode (
|
|
IN VOID *OpCodeHandle
|
|
);
|
|
#endif
|