327 lines
16 KiB
C
327 lines
16 KiB
C
/** @file
|
|
Definition for Dxe OEM Services Chipset Lib.
|
|
|
|
;******************************************************************************
|
|
;* 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 _DXE_OEM_SVC_CHIPSET_LIB_H_
|
|
#define _DXE_OEM_SVC_CHIPSET_LIB_H_
|
|
#include <Uefi.h>
|
|
#include <IndustryStandard/Acpi.h>
|
|
#include <Protocol/IgdOpRegion.h>
|
|
#include <Protocol/PciRootBridgeIo.h>
|
|
#include <Protocol/UsbLegacyPlatform.h>
|
|
#include <Protocol/PlatformNvsArea.h>
|
|
#include <Protocol/AmtPolicy.h>
|
|
#include <Protocol/GopPolicy.h>
|
|
#include <Protocol/MePolicy.h>
|
|
#include <Protocol/SaPolicy.h>
|
|
#include <ChipsetSetupConfig.h>
|
|
#include <Library/BadgingSupportLib.h>
|
|
#include <Protocol/BiosRegionLock.h>
|
|
#include <ChipsetSetupConfig.h>
|
|
#include <SetupVariable.h>
|
|
|
|
#define SCU_ACTION_LOAD_DEFAULT BIT0
|
|
/**
|
|
|
|
This function provides an interface to update IGD OpRegion content.
|
|
|
|
@param [in out] *IgdOpRegion On entry, points to memorys buffer for Internal graphics device,
|
|
this buffer set aside comminocate between ACPI code and POST.
|
|
On exit , points to updated memory buffer for Internal Graphics Device.
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcSetIgdOpRegion (
|
|
IN OUT IGD_OPREGION_PROTOCOL *IgdOpRegion
|
|
);
|
|
|
|
/**
|
|
This function provides an interface to hook before and after DxePlatformEntryPoint (PlatformDxe.inf).PlatformDxe.inf
|
|
is responsible for setting up any platform specific policy or initialization information.
|
|
|
|
@param[in out] *SetupVariable On entry, points to CHIPSET_CONFIGURATION instance.
|
|
On exit , points to updated CHIPSET_CONFIGURATION instance.
|
|
@param[in out] *PciRootBridgeIo On entry, points to EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL instance.
|
|
On exit , points to updated EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL instance.
|
|
@param[in out] Flag TRUE : Before DxePlatformEntryPoint.
|
|
FALSE: After DxePlatformEntryPoint.
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
@retval EFI_SUCCESS The function performs the same operation as caller.
|
|
The caller will skip the specified behavior and assuming
|
|
that it has been handled completely by this function.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcHookPlatformDxe (
|
|
IN CHIPSET_CONFIGURATION *SetupVariable,
|
|
IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *PciRootBridgeIo,
|
|
IN OUT BOOLEAN Flag
|
|
);
|
|
|
|
/**
|
|
This function provides an interface to modify USB legacy options.
|
|
|
|
@param[in out] *UsbLegacyModifiers On entry, points to USB_LEGACY_MODIFIERS instance.
|
|
On exit , points to updated USB_LEGACY_MODIFIERS instance.
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcSetUsbLegacyPlatformOptions (
|
|
IN OUT USB_LEGACY_MODIFIERS *UsbLegacyModifiers
|
|
);
|
|
|
|
/**
|
|
This function provides an interface to hook PlatformResetSystem
|
|
|
|
@param[in] ResetType Warm or cold.
|
|
@param[in] ResetStatus Possible cause of reset.
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
@retval EFI_SUCCESS The function performs the same operation as caller.
|
|
The caller will skip the specified behavior and assuming
|
|
that it has been handled completely by this function.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcHookPlatformReset (
|
|
IN EFI_RESET_TYPE ResetType,
|
|
IN EFI_STATUS ResetStatus
|
|
);
|
|
/**
|
|
This function provides an interface to modify OEM Logo and POST String.
|
|
|
|
@param[in out] *EFI_OEM_BADGING_LOGO_DATA On entry, points to a structure that specifies image data.
|
|
On exit , points to updated structure.
|
|
@param[in out] *BadgingDataSize On entry, the size of EFI_OEM_BADGING_LOGO_DATA matrix.
|
|
On exit , the size of updated EFI_OEM_BADGING_LOGO_DATA matrix.
|
|
@param[in out] *OemBadgingString On entry, points to OEM_BADGING_STRING matrix.
|
|
On exit , points to updated OEM_BADGING_STRING matrix.
|
|
@param[in out] *OemBadgingStringInTextMode On entry, points to OEM_BADGING_STRING matrix in text mode.
|
|
On exit , points to updated OEM_BADGING_STRING matrix in text mode.
|
|
@param[in out] *StringCount The number is POST string count.
|
|
On entry, base on SetupVariable->QuietBoot
|
|
1 : The number of entries in OemBadgingString,
|
|
0 : The number of entries in OemBadgingStringInTextMode.
|
|
On exit , base on SetupVariable->QuietBoot
|
|
1 : The number of entries in updated OemBadgingString,
|
|
0 : The number of entries in updated OemBadgingStringInTextMode.
|
|
@param[in out] *OemBadgingStringAfterSelectWithMe On entry, points to OEM_BADGING_STRING matrix after selected.
|
|
On exit , points to updated OEM_BADGING_STRING matrix after selected.
|
|
@param[in out] *OemBadgingStringAfterSelectWithMeInTextMode On entry, points to OEM_BADGING_STRINGmatrix after selected in text mode.
|
|
On exit , points to updated OEM_BADGING_STRING matrix after selected in text mode.
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
@retval EFI_SUCCESS The function performs the same operation as caller.
|
|
The caller will skip the specified behavior and assuming
|
|
that it has been handled completely by this function.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcUpdateOemBadgingLogoData (
|
|
IN OUT EFI_OEM_BADGING_LOGO_DATA **EfiOemBadgingLogoData,
|
|
IN OUT UINTN *BadgingDataSize,
|
|
IN OUT OEM_BADGING_STRING **OemBadgingString,
|
|
IN OUT OEM_BADGING_STRING **OemBadgingStringInTextMode,
|
|
IN OUT UINTN *StringCount,
|
|
IN OUT OEM_BADGING_STRING **OemBadgingStringAfterSelectWithMe,
|
|
IN OUT OEM_BADGING_STRING **OemBadgingStringAfterSelectWithMeInTextMode
|
|
);
|
|
/**
|
|
This function provides an interface to update GlobalNvs table content.
|
|
|
|
@param[in, out] mPlatformNvsArea On entry, points to PLATFORM_NVS_AREA instance.
|
|
On exit , points to updated PLATFORM_NVS_AREA instance.
|
|
@param[in, out] mOemPlatformNvsArea On entry, points to OEM_PLATFORM_NVS_AREA instance.
|
|
On exit , points to updated OEM_PLATFORM_NVS_AREA instance.
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
@retval EFI_SUCCESS The function performs the same operation as caller.
|
|
The caller will skip the specified behavior and assuming
|
|
that it has been handled completely by this function.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcUpdatePlatformNvs (
|
|
PLATFORM_NVS_AREA *mPlatformNvsArea,
|
|
OEM_PLATFORM_NVS_AREA *OemArea
|
|
);
|
|
/**
|
|
This function offers an interface to modify DXE_AMT_POLICY_PROTOCOL Data before the system
|
|
installs DXE_AMT_POLICY_PROTOCOL.
|
|
|
|
@param[in, out] *AMTPlatformPolicy On entry, points to DXE_AMT_POLICY_PROTOCOL structure.
|
|
On exit, points to updated DXE_AMT_POLICY_PROTOCOL structure.
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
@retval EFI_SUCCESS The function performs the same operation as caller.
|
|
The caller will skip the specified behavior and assuming
|
|
that it has been handled completely by this function.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcUpdateAmtPlatformPolicy (
|
|
IN OUT AMT_POLICY_PROTOCOL *AmtPlatformPolicy
|
|
);
|
|
|
|
|
|
/**
|
|
This function offers an interface to modify DXE_ME_POLICY_PROTOCOL Data before the system
|
|
installs DXE_ME_POLICY_PROTOCOL.
|
|
|
|
@param[in, out] *MePlatformPolicy On entry, points to DXE_ME_POLICY_PROTOCOL structure.
|
|
On exit, points to updated DXE_ME_POLICY_PROTOCOL structure.
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
@retval EFI_SUCCESS The function performs the same operation as caller.
|
|
The caller will skip the specified behavior and assuming
|
|
that it has been handled completely by this function.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcUpdateDxeMePolicy (
|
|
IN OUT ME_POLICY_PROTOCOL *MePlatformPolicy
|
|
);
|
|
|
|
/**
|
|
This function offers an interface to modify SA_POLICY_PROTOCOL Data before the system
|
|
installs SA_POLICY_PROTOCOL.
|
|
|
|
@param[in, out] *SaPlatformPolicy On entry, points to SA_POLICY_PROTOCOL structure.
|
|
On exit, points to updated SA_POLICY_PROTOCOL structure.
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
@retval EFI_SUCCESS The function performs the same operation as caller.
|
|
The caller will skip the specified behavior and assuming
|
|
that it has been handled completely by this function.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcUpdateDxePlatformSaPolicy (
|
|
IN OUT SA_POLICY_PROTOCOL *SaPlatformPolicy
|
|
);
|
|
|
|
|
|
/**
|
|
Customize BIOS protect region before boot to OS.
|
|
|
|
@param[out] *BiosRegionTable Pointer to BiosRegion Table.
|
|
@param[out] ProtectRegionNum The number of Bios protect region instances.
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default, OEM did not implement this function.
|
|
@retval EFI_MEDIA_CHANGED Provide table for kernel to set protect region and lock flash program registers.
|
|
**/
|
|
EFI_STATUS
|
|
OemSvcUpdateBiosProtectTable (
|
|
OUT BIOS_PROTECT_REGION **BiosRegionTable,
|
|
OUT UINT8 *ProtectRegionNum
|
|
);
|
|
/**
|
|
|
|
This function provides an interface to set Boot Display Device
|
|
|
|
@param SetupNVRam Points to CHIPSET_CONFIGURATION instance
|
|
@param SaSetupNVRam Points to SA_SETUP instance
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
@retval EFI_SUCCESS The function performs the same operation as caller.
|
|
The caller will skip the specified behavior and assuming
|
|
that it has been handled completely by this function.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcSetBootDisplayDevice (
|
|
IN OUT CHIPSET_CONFIGURATION *SetupNVRam,
|
|
IN OUT SA_SETUP *SaSetupNVRam
|
|
);
|
|
|
|
|
|
/**
|
|
This function offers an interface to update a ACPI DSDT table which is signatured by OEM define.
|
|
|
|
@param[in] *Signature Pointer to ACPI Common Header Signature.
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
@retval EFI_SUCCESS The function performs the same operation as caller.
|
|
The caller will skip the specified behavior and assuming
|
|
that it has been handled completely by this function.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcUpdateDsdtAcpiTable (
|
|
IN CONST UINT32 *Signature
|
|
);
|
|
|
|
/**
|
|
This function provides an interface to hook GenericRouteConfig.
|
|
|
|
@param[in,out] ScBuffer A pointer to CHIPSET_CONFIGURATION struct.
|
|
@param[in] BufferSize System configuration size.
|
|
@param[in,out] RcScBuffer A pointer to RC relative variables struct.
|
|
@param[in] ScuRecord The bit mask of the currently SCU record.
|
|
Bit 0 = 1 (SCU_ACTION_LOAD_DEFAULT), It indicates system do load default action.
|
|
|
|
@retval EFI_UNSUPPORTED This function is a pure hook; Chipset code don't care return status.
|
|
@retval EFI_SUCCESS This function is a pure hook; Chipset code don't care return status.
|
|
**/
|
|
EFI_STATUS
|
|
OemSvcHookRouteConfig (
|
|
IN OUT CHIPSET_CONFIGURATION *ScBuffer,
|
|
IN UINT32 BufferSize,
|
|
IN OUT VOID *RcScBuffer,
|
|
IN UINT32 ScuRecord
|
|
);
|
|
|
|
|
|
/**
|
|
This function offers an interface to initial Thunderbolt Setup data in SetupRuntimeUpdateEveryBoot.
|
|
|
|
@param[in] *SetupData
|
|
@param[in] *SaSetup
|
|
@param[in] *PchSetup
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
@retval EFI_SUCCESS The function performs the same operation as caller.
|
|
The caller will skip the specified behavior and assuming
|
|
that it has been handled completely by this function.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcInitTbtFunc (
|
|
IN CHIPSET_CONFIGURATION *SetupData,
|
|
IN SETUP_DATA *RcSetupData,
|
|
IN SA_SETUP *SaSetup,
|
|
IN PCH_SETUP *PchSetup
|
|
);
|
|
|
|
/**
|
|
|
|
This function provides an interface to update backlight brightness value.
|
|
|
|
@retval EFI_UNSUPPORTED Returns unsupported by default.
|
|
@retval EFI_MEDIA_CHANGED Alter the Configuration Parameter.
|
|
@retval EFI_SUCCESS The function performs the same operation as caller.
|
|
The caller will skip the specified behavior and assuming
|
|
that it has been handled completely by this function.
|
|
*/
|
|
EFI_STATUS
|
|
OemSvcSetBacklightControl(
|
|
VOID
|
|
);
|
|
|
|
#endif
|