alder_lake_bios/Intel/AlderLake/ClientOneSiliconPkg/Cpu/IncludePrivate/Library/BaseOcFruLib.h

305 lines
8.0 KiB
C

/** @file
Overclocking tolopolgy for specific generation. header file
@copyright
INTEL CONFIDENTIAL
Copyright 2020 - 2021 Intel Corporation.
The source code contained or described herein and all documents related to the
source code ("Material") are owned by Intel Corporation or its suppliers or
licensors. Title to the Material remains with Intel Corporation or its suppliers
and licensors. The Material may contain trade secrets and proprietary and
confidential information of Intel Corporation and its suppliers and licensors,
and is protected by worldwide copyright and trade secret laws and treaty
provisions. No part of the Material may be used, copied, reproduced, modified,
published, uploaded, posted, transmitted, distributed, or disclosed in any way
without Intel's prior express written permission.
No license under any patent, copyright, trade secret or other intellectual
property right is granted to or conferred upon you by disclosure or delivery
of the Materials, either expressly, by implication, inducement, estoppel or
otherwise. Any license under such intellectual property rights must be
express and approved by Intel in writing.
Unless otherwise agreed by Intel in writing, you may not remove or alter
this notice or any other notice embedded in Materials by Intel or
Intel's suppliers or licensors in any way.
This file contains an 'Intel Peripheral Driver' and is uniquely identified as
"Intel Reference Module" and is licensed for Intel CPUs and chipsets under
the terms of your license agreement with Intel or your vendor. This file may
be modified by the user, subject to additional terms of the license agreement.
@par Specification Reference:
**/
#ifndef _BASE_OC_FRU_LIB_H_
#define _BASE_OC_FRU_LIB_H_
/**
This function return whether AVX2 and AVX512 voltage Guard Band supported.
@retval TRUE - AVX voltage Guard Band supported.
@retval FALSE - AVX voltage Guard Band unsupported.
**/
BOOLEAN
IsAvxVoltageGuardBandSupport (
VOID
);
/**
This function return whether Per Core HyperThread Disable supported.
@retval TRUE - Per Core HyperThread Disable supported.
@retval FALSE - Per Core HyperThread Disable unsupported.
**/
BOOLEAN
IsPerCoreHtDisableSupport (
VOID
);
/**
This function return whether L2Atom VF overrides supported.
@retval TRUE - L2Atom VF overrides supported.
@retval FALSE - L2Atom VF overrides unsupported.
**/
BOOLEAN
IsAtomL2OcSupport (
VOID
);
/**
This function return PerCore HT Disable Command.
@param[out] ReadCommand PerCore HT Disable Read Command
@param[out] WriteCommand PerCore HT Disable Write Command
**/
VOID
OcGetPerCoreHtDisableCmd (
OUT PCODE_MAILBOX_INTERFACE *ReadCommand,
OUT PCODE_MAILBOX_INTERFACE *WriteCommand
);
/**
This function return TjMax Offset Command.
@param[out] ReadCommand TjMax Offset Read Command
@param[out] WriteCommand TjMax Offset Write Command
**/
VOID
OcGetTjMaxOffsetCmd (
OUT PCODE_MAILBOX_INTERFACE *ReadCommand,
OUT PCODE_MAILBOX_INTERFACE *WriteCommand
);
/**
This function return Realtime Memory Timing Enable/Disable Command
@param[out] ReadCommand Realtime Memory Timing Read Command
@param[out] WriteCommand Realtime Memory Timing Write Command
**/
VOID
OcGetRealtimeMemoryTimingCmd (
OUT PCODE_MAILBOX_INTERFACE *ReadCommand,
OUT PCODE_MAILBOX_INTERFACE *WriteCommand
);
/**
This function return whether CPU BCLK OC Freq. supported.
@retval TRUE - CPU BCLK OC Freq. supported
@retval FALSE - CPU BCLK OC Freq. unsupported
**/
BOOLEAN
IsCpuBclkOcFreqSupport (
VOID
);
/**
This function return whether SOC BCLK OC Freq. supported.
@retval TRUE - SOC BCLK OC Freq. supported
@retval FALSE - SOC BCLK OC Freq. unsupported
**/
BOOLEAN
IsSocBclkOcFreqSupport (
VOID
);
/**
This function return CPU BCLK Freq. mailbox command.
@param[out] ReadCommand CPU BCLK Freq. Read Command
@param[out] WriteCommand CPU BCLK Freq. Write Command
**/
VOID
OcGetCpuBclkFreqCmd (
OUT OC_MAILBOX_INTERFACE *ReadCommand,
OUT OC_MAILBOX_INTERFACE *WriteCommand
);
/**
This function return whether Core Ratio Extension mode is supported.
@retval TRUE - Core Ratio Extension mode supported.
@retval FALSE - Core Ratio Extension mode unsupported.
**/
BOOLEAN
IsCoreRatioExtModeSupported (
VOID
);
/**
This function return whether PVD Ratio Threshold Override is supported.
@retval TRUE - PVD Ratio Threshold Override supported.
@retval FALSE - PVD Ratio Threshold Override unsupported.
**/
BOOLEAN
IsPvdRatioThresholdSupported (
VOID
);
/**
This function return whether PVD Mode selection is supported.
@retval TRUE - PVD Ratio Mode supported.
@retval FALSE - PVD Ratio Mode unsupported.
**/
BOOLEAN
IsPvdModeSupported (
VOID
);
/**
This function return whether FLL Overclock mode is supported.
@retval TRUE - FLL Overclock supported.
@retval FALSE - FLL Overclock unsupported.
**/
BOOLEAN
IsFllOverclockSupported (
VOID
);
/**
This function return whether CEP (Current Excursion Protection) configuration supported or not.
@retval TRUE - CEP (Current Excursion Protection) configuration supported.
@retval FALSE - CEP (Current Excursion Protection) configuration unsupported.
**/
BOOLEAN
IsOcCepConfigSupport (
VOID
);
/**
This function return CEP (Current Excursion Protection) configuration data
to control it's enable or disable.
@param[in] IaCepDisable Disable IA CEP.
@param[in] GtCepDisable Disable GT CEP.
@param[in] SaCepDisable Disable SA CEP.
@param[out] ConfigData CEP Config data.
**/
VOID
OcGetCepConfigData (
IN BOOLEAN IaCepDisable,
IN BOOLEAN GtCepDisable,
IN BOOLEAN SaCepDisable,
OUT UINT32 *ConfigData
);
/**
This function return whether SIRP (SoC Iccmax Reactive Protector) configuration supported or not.
@retval TRUE - SIRP (SoC Iccmax Reactive Protector) configuration supported.
@retval FALSE - SIRP (SoC Iccmax Reactive Protector) configuration unsupported.
**/
BOOLEAN
IsOcSirpConfigSupport (
VOID
);
/**
This function return SIRP (SoC Iccmax Reactive Protector) configuration data
to control it's enable or disable.
@param[in] IaSirpDisable Disable IA SIRP.
@param[out] ConfigData SIRP Config data.
**/
VOID
OcGetSirpConfigData (
IN BOOLEAN IaSirpDisable,
OUT UINT32 *ConfigData
);
/**
This function return whether ITD (Inverse Temperature Dependency) Throttle configuration supported or not.
@retval TRUE - ITD (Inverse Temperature Dependency) Throttle configuration supported.
@retval FALSE - ITD (Inverse Temperature Dependency) Throttle configuration unsupported.
**/
BOOLEAN
IsOcItdThrottleConfigSupport (
VOID
);
/**
This function return ITD (Inverse Temperature Dependency) Throttle configuration data
to control it's enable or disable.
@param[in] ItdThrottleDisable Disable ITD Throttle.
@param[out] ConfigData ITD Throttle Config data.
**/
VOID
OcGetItdThrottleConfigData (
IN BOOLEAN ItdThrottleDisable,
OUT UINT32 *ConfigData
);
/**
This function return whether Sa Pll Frequency Override is supported.
@retval TRUE - Sa Pll Frequency Override supported.
@retval FALSE - Sa Pll Frequency Override unsupported.
**/
BOOLEAN
IsSaPllFreqOverrideSupported (
VOID
);
/**
This function return whether TSC HW Fixup disable is supported.
@retval TRUE - TSC HW Fixup disable supported.
@retval FALSE - TSC HW Fixup disable unsupported.
**/
BOOLEAN
IsCoreHwFixupDisableSupported (
VOID
);
/**
This function return whether ICCMAX override supported.
@retval TRUE - ICCMAX override supported.
@retval FALSE - ICCMAX override unsupported.
**/
BOOLEAN
IsIccMaxOcOverrideSupported (
VOID
);
/**
This function return whether OCMB TVB Config Command for Temperature Thresholds and Down bins is supported.
@retval TRUE - TVB Config Temperature and Down bins is supported.
@retval FALSE - TVB Config Temperature and Down bins is unsupported.
**/
BOOLEAN
IsTvbDownBinsTempThresholdSupported (
VOID
);
#endif // _BASE_OC_FRU_LIB_H_