2015-01-12 10:37:20 +01:00
|
|
|
/*++
|
|
|
|
|
2015-01-22 06:50:45 +01:00
|
|
|
Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>
|
|
|
|
|
|
|
|
This program and the accompanying materials are licensed and made available under
|
|
|
|
the terms and conditions of the BSD License that accompanies this distribution.
|
|
|
|
The full text of the license may be found at
|
|
|
|
http://opensource.org/licenses/bsd-license.php.
|
|
|
|
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
|
2015-01-12 10:37:20 +01:00
|
|
|
|
|
|
|
|
|
|
|
Module Name:
|
|
|
|
|
|
|
|
PlatformDxe.h
|
|
|
|
|
|
|
|
Abstract:
|
|
|
|
|
|
|
|
Header file for Platform Initialization Driver.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
++*/
|
|
|
|
|
|
|
|
#ifndef _PLATFORM_DRIVER_H
|
|
|
|
#define _PLATFORM_DRIVER_H
|
|
|
|
|
|
|
|
#include <PiDxe.h>
|
|
|
|
#include <Library/BaseLib.h>
|
|
|
|
#include <Library/DebugLib.h>
|
|
|
|
#include <Library/UefiLib.h>
|
|
|
|
#include <Library/UefiDriverEntryPoint.h>
|
|
|
|
#include <Library/PcdLib.h>
|
|
|
|
#include <Library/HobLib.h>
|
|
|
|
#include <Library/MemoryAllocationLib.h>
|
|
|
|
#include <Library/UefiBootServicesTableLib.h>
|
|
|
|
#include <Library/BaseMemoryLib.h>
|
|
|
|
#include <Library/UefiRuntimeServicesTableLib.h>
|
|
|
|
#include <Library/IoLib.h>
|
|
|
|
#include <Library/ReportStatusCodeLib.h>
|
|
|
|
#include <Library/HobLib.h>
|
|
|
|
#include <Library/EfiRegTableLib.h>
|
|
|
|
#include <Library/Tpm2CommandLib.h>
|
|
|
|
#include <Library/Tpm2DeviceLib.h>
|
|
|
|
#include <Library/BaseCryptLib.h>
|
2015-01-22 06:50:45 +01:00
|
|
|
#include <Library/BiosIdLib.h>
|
2015-01-12 10:37:20 +01:00
|
|
|
#include <Protocol/GlobalNvsArea.h>
|
|
|
|
#include <Protocol/PciRootBridgeIo.h>
|
|
|
|
#include <Protocol/IsaAcpi.h>
|
|
|
|
#include <Framework/FrameworkInternalFormRepresentation.h>
|
|
|
|
#include <Protocol/FrameworkHii.h>
|
|
|
|
#include <Protocol/FrameworkFormCallback.h>
|
|
|
|
#include <Protocol/CpuIo.h>
|
|
|
|
#include <Protocol/BootScriptSave.h>
|
|
|
|
#include <Framework/BootScript.h>
|
|
|
|
#include <Guid/GlobalVariable.h>
|
|
|
|
#include <Guid/BoardFeatures.h>
|
|
|
|
#include <Guid/DataHubRecords.h>
|
|
|
|
#include <Protocol/DataHub.h>
|
|
|
|
#include <Protocol/PciIo.h>
|
|
|
|
#include <Protocol/Speaker.h>
|
2015-01-22 06:50:45 +01:00
|
|
|
#include <Protocol/ExitPmAuth.h>
|
2015-01-12 10:37:20 +01:00
|
|
|
#include <IndustryStandard/Pci22.h>
|
|
|
|
#include <Guid/SetupVariable.h>
|
|
|
|
#include <Guid/PlatformInfo.h>
|
|
|
|
#include "Configuration.h"
|
|
|
|
#define _EFI_H_ //skip efi.h
|
|
|
|
#include "PchAccess.h"
|
|
|
|
#include "VlvAccess.h"
|
|
|
|
#include "BoardIdDecode.h"
|
|
|
|
#include "PlatformBaseAddresses.h"
|
|
|
|
#include "SetupMode.h"
|
|
|
|
#include "PlatformBootMode.h"
|
|
|
|
#include "CpuType.h"
|
|
|
|
|
|
|
|
#define PCAT_RTC_ADDRESS_REGISTER 0x74
|
|
|
|
#define PCAT_RTC_DATA_REGISTER 0x75
|
|
|
|
|
|
|
|
#define RTC_ADDRESS_SECOND_ALARM 0x01
|
|
|
|
#define RTC_ADDRESS_MINUTE_ALARM 0x03
|
|
|
|
#define RTC_ADDRESS_HOUR_ALARM 0x05
|
|
|
|
|
|
|
|
#define RTC_ADDRESS_REGISTER_A 0x0A
|
|
|
|
#define RTC_ADDRESS_REGISTER_B 0x0B
|
|
|
|
#define RTC_ADDRESS_REGISTER_C 0x0C
|
|
|
|
#define RTC_ADDRESS_REGISTER_D 0x0D
|
|
|
|
|
|
|
|
#define B_RTC_ALARM_INT_ENABLE 0x20
|
|
|
|
#define B_RTC_ALARM_INT_STATUS 0x20
|
|
|
|
|
|
|
|
#define B_RTC_DATE_ALARM_MASK 0x3F
|
|
|
|
|
|
|
|
//
|
|
|
|
// Default CPU Alternate Duty Cycle (255=100%, 0=0%)
|
|
|
|
//
|
|
|
|
#define DEF_CPU_ALT_DUTY_CYCLE 0xFF
|
|
|
|
|
|
|
|
#define MAX_ONBOARD_SATA_DEVICE 2
|
|
|
|
|
|
|
|
#define DXE_DEVICE_ENABLED 1
|
|
|
|
#define DXE_DEVICE_DISABLED 0
|
|
|
|
|
|
|
|
#define AZALIA_MAX_LOOP_TIME 0x10000
|
|
|
|
|
|
|
|
//
|
|
|
|
// Platform driver GUID
|
|
|
|
//
|
|
|
|
#define EFI_PLATFORM_DRIVER_GUID \
|
|
|
|
{ 0x056E7324, 0xA718, 0x465b, 0x9A, 0x84, 0x22, 0x8F, 0x06, 0x64, 0x2B, 0x4F }
|
|
|
|
|
|
|
|
#define PASSWORD_MAX_SIZE 20
|
|
|
|
#define PLATFORM_NORMAL_MODE 0x01
|
|
|
|
#define PLATFORM_SAFE_MODE 0x02
|
|
|
|
#define PLATFORM_RECOVERY_MODE 0x04
|
|
|
|
#define PLATFORM_MANUFACTURING_MODE 0x08
|
|
|
|
#define PLATFORM_BACK_TO_BIOS_MODE 0x10
|
|
|
|
|
|
|
|
#define EFI_OEM_SPECIFIC 0x8000
|
|
|
|
#define EFI_CU_PLATFORM_DXE_INIT (EFI_OEM_SPECIFIC | 0x00000011)
|
|
|
|
#define EFI_CU_PLATFORM_DXE_STEP1 (EFI_OEM_SPECIFIC | 0x00000012)
|
|
|
|
#define EFI_CU_PLATFORM_DXE_STEP2 (EFI_OEM_SPECIFIC | 0x00000013)
|
|
|
|
#define EFI_CU_PLATFORM_DXE_STEP3 (EFI_OEM_SPECIFIC | 0x00000014)
|
|
|
|
#define EFI_CU_PLATFORM_DXE_STEP4 (EFI_OEM_SPECIFIC | 0x00000015)
|
|
|
|
#define EFI_CU_PLATFORM_DXE_INIT_DONE (EFI_OEM_SPECIFIC | 0x00000016)
|
|
|
|
|
|
|
|
|
|
|
|
#define EFI_SECTION_STRING 0x1C
|
|
|
|
#define EFI_FORWARD_DECLARATION(x) typedef struct _##x x
|
|
|
|
#define PREFIX_BLANK 0x04
|
|
|
|
|
|
|
|
#pragma pack(1)
|
|
|
|
|
|
|
|
typedef UINT64 EFI_BOARD_FEATURES;
|
|
|
|
|
|
|
|
//
|
|
|
|
//BUGBUG: should remove these EDK hii definition once Hii transtion is done
|
|
|
|
//
|
|
|
|
typedef UINT16 STRING_REF;
|
|
|
|
typedef UINT16 EFI_FORM_LABEL;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
EfiUserPassword,
|
|
|
|
EfiAdminPassword
|
|
|
|
} EFI_PASSWORD_TYPE;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
CHAR16 TempPassword[PASSWORD_MAX_SIZE];
|
|
|
|
CHAR16 EncodedPassword[PASSWORD_MAX_SIZE];
|
|
|
|
VOID *PasswordLocation;
|
|
|
|
EFI_PASSWORD_TYPE PasswordType;
|
|
|
|
} EFI_PASSWORD_DATA;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
CHAR8 AaNumber[7];
|
|
|
|
UINT8 BoardId;
|
|
|
|
EFI_BOARD_FEATURES Features;
|
|
|
|
UINT16 SubsystemDeviceId;
|
|
|
|
UINT16 AudioSubsystemDeviceId;
|
|
|
|
UINT64 AcpiOemTableId;
|
|
|
|
} BOARD_ID_DECODE;
|
|
|
|
|
|
|
|
typedef
|
|
|
|
EFI_STATUS
|
|
|
|
(EFIAPI *EFI_FORM_ROUTINE) (
|
|
|
|
SYSTEM_CONFIGURATION *SetupBuffer
|
|
|
|
);
|
|
|
|
|
|
|
|
typedef struct{
|
|
|
|
UINT16 DeviceNumber;
|
|
|
|
UINT16 FunctionNumber;
|
|
|
|
}PCI_DEVICE_FUNC_INFO;
|
|
|
|
|
|
|
|
typedef struct{
|
|
|
|
CHAR16 PortNumber[4];
|
|
|
|
STRING_REF SataDeviceInfoStringId;
|
|
|
|
}SATA_DEVICE_STRING_INFO;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
UINT16 Signature;
|
|
|
|
UINT8 Size;
|
|
|
|
UINT32 EntryPoint;
|
|
|
|
UINT8 Reserve[17];
|
|
|
|
UINT16 PciDataOff;
|
|
|
|
UINT16 ExpansionOff;
|
|
|
|
} PNP_OPTION_ROM_HEADER;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
UINT32 Signature;
|
|
|
|
UINT8 Revision;
|
|
|
|
UINT8 Length;
|
|
|
|
UINT16 NextHeader;
|
|
|
|
UINT8 Reserve;
|
|
|
|
UINT8 CheckSum;
|
|
|
|
UINT32 DeviceId;
|
|
|
|
UINT16 ManufactureStrOff;
|
|
|
|
UINT16 ProductStrOff;
|
|
|
|
} PNP_EXPANSION_HEADER;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
BOOLEAN Enable;
|
|
|
|
UINT8 VerbTableNum;
|
|
|
|
UINT16 CodecSSID;
|
|
|
|
EFI_PHYSICAL_ADDRESS HDABar;
|
|
|
|
EFI_PHYSICAL_ADDRESS UpperHDABar;
|
|
|
|
UINT8 SDIPresent;
|
|
|
|
BOOLEAN Pme;
|
|
|
|
BOOLEAN LegacyFrontPanelAudio;
|
|
|
|
BOOLEAN HighDefinitionFrontPanelAudio;
|
|
|
|
} EFI_AZALIA_S3;
|
|
|
|
|
|
|
|
//
|
|
|
|
//following structs are from R8. Remove them once R8->R9 transition is done
|
|
|
|
//
|
|
|
|
typedef struct {
|
|
|
|
CHAR16 *OptionString; // Passed in string to generate a token for in a truly dynamic form creation
|
|
|
|
STRING_REF StringToken; // This is used when creating a single op-code without generating a StringToken (have one already)
|
|
|
|
UINT16 Value;
|
|
|
|
UINT8 Flags;
|
|
|
|
UINT16 Key;
|
|
|
|
} IFR_OPTION;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
UINT8 Number;
|
|
|
|
UINT32 HorizontalResolution;
|
|
|
|
UINT32 VerticalResolution;
|
|
|
|
} PANEL_RESOLUTION;
|
|
|
|
|
|
|
|
#pragma pack()
|
|
|
|
|
|
|
|
//
|
|
|
|
// Prototypes
|
|
|
|
//
|
|
|
|
EFI_STATUS
|
|
|
|
EFIAPI
|
|
|
|
EfiMain (
|
|
|
|
IN EFI_HANDLE ImageHandle,
|
|
|
|
IN EFI_SYSTEM_TABLE *SystemTable
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
ProcessEventLog (
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
FindDataRecords (
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
ProcessPasswords(
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
MemorySetup(
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
UINTN
|
|
|
|
EfiValueToString (
|
|
|
|
IN OUT CHAR16 *Buffer,
|
|
|
|
IN INT64 Value,
|
|
|
|
IN UINTN Flags,
|
|
|
|
IN UINTN Width
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
ReadyToBootFunction (
|
|
|
|
EFI_EVENT Event,
|
|
|
|
VOID *Context
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
InstallHiiDataAndGetSettings(
|
|
|
|
IN EFI_HII_STRING_PACK *StringPack,
|
|
|
|
//
|
|
|
|
... // 0 or more of => IN EFI_HII_IFR_PACK *IfrPack,
|
|
|
|
// Terminate list with NULL
|
|
|
|
//
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
ReadOrInitSetupVariable(
|
|
|
|
IN UINTN RequiredVariableSize,
|
|
|
|
IN UINTN RequiredPasswordSize,
|
|
|
|
IN VOID *DefaultData,
|
|
|
|
IN VOID *MfgDefaultData,
|
|
|
|
OUT VOID *SetupVariableData,
|
|
|
|
OUT VOID *SystemPassword
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EfiLogicalOrMem(
|
|
|
|
IN VOID *Destination,
|
|
|
|
IN VOID *Source,
|
|
|
|
IN UINTN Length
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
GetStringFromToken (
|
|
|
|
IN EFI_GUID *ProducerGuid,
|
|
|
|
IN STRING_REF Token,
|
|
|
|
OUT CHAR16 **String
|
|
|
|
);
|
|
|
|
|
|
|
|
UINT32
|
|
|
|
ConvertBase2ToRaw (
|
|
|
|
IN EFI_EXP_BASE2_DATA *Data);
|
|
|
|
|
|
|
|
UINT32
|
|
|
|
ConvertBase10ToRaw (
|
|
|
|
IN EFI_EXP_BASE10_DATA *Data);
|
|
|
|
|
|
|
|
CHAR16 *
|
|
|
|
GetStringById (
|
|
|
|
IN STRING_REF Id,
|
|
|
|
EFI_HII_HANDLE StringPackHandle
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
SetupDataFilter (
|
|
|
|
IN EFI_EVENT Event,
|
|
|
|
IN VOID* Context
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
IdeDataFilter (
|
|
|
|
IN EFI_EVENT Event,
|
|
|
|
IN VOID* Context
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
UpdateAhciRaidDiskInfo (
|
|
|
|
IN EFI_EVENT Event,
|
|
|
|
IN VOID* Context
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
EventLogFilter (
|
|
|
|
IN EFI_EVENT Event,
|
|
|
|
IN VOID* Context
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
SwapEntries (
|
|
|
|
IN CHAR8 *Data
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
AsciiToUnicode (
|
|
|
|
IN CHAR8 *AsciiString,
|
|
|
|
IN CHAR16 *UnicodeString
|
|
|
|
);
|
|
|
|
|
|
|
|
UINT16
|
|
|
|
ConfigModeStateGet();
|
|
|
|
|
|
|
|
VOID
|
|
|
|
SetSkus();
|
|
|
|
|
|
|
|
VOID
|
|
|
|
CPUSetupItems();
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
SecurityDriverCallback (
|
|
|
|
IN EFI_FORM_CALLBACK_PROTOCOL *This,
|
|
|
|
IN UINT16 KeyValue,
|
|
|
|
IN EFI_IFR_DATA_ARRAY *Data,
|
|
|
|
OUT EFI_HII_CALLBACK_PACKET **Packet
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
SetPasswordState (
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EncodePassword (
|
|
|
|
IN CHAR16 *Password
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
PciBusEvent (
|
|
|
|
IN EFI_EVENT Event,
|
|
|
|
IN VOID* Context
|
|
|
|
);
|
|
|
|
VOID
|
|
|
|
AsfInitialize(
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
InitializeAsf (
|
|
|
|
);
|
|
|
|
|
|
|
|
UINT8
|
|
|
|
ReadCmosBank1Byte (
|
|
|
|
IN EFI_CPU_IO_PROTOCOL *CpuIo,
|
|
|
|
IN UINT8 Index
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
WriteCmosBank1Byte (
|
|
|
|
IN EFI_CPU_IO_PROTOCOL *CpuIo,
|
|
|
|
IN UINT8 Index,
|
|
|
|
IN UINT8 Data
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
InitializeBoardId (
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
InstallBootCallbackRoutine(
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
InstallConfigurationCallbackRoutine(
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
InstallPerformanceCallbackRoutine(
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
InstallSecurityCallbackRoutine (
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
InstallMainCallbackRoutine (
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
MemoryConfigurationUpdate (
|
|
|
|
UINT16 *Key,
|
|
|
|
EFI_FORM_LABEL *Label,
|
|
|
|
UINT16 *OpcodeCount,
|
|
|
|
UINT8 **OpcodeData,
|
|
|
|
EFI_FORM_ROUTINE *Routine
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
MemoryConfigurationCallbackRoutine (
|
|
|
|
SYSTEM_CONFIGURATION *SetupBuffer
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
MemoryConfigurationCalculateSpeed(
|
|
|
|
SYSTEM_CONFIGURATION *SetupBuffer
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
UpdateMemoryString(
|
|
|
|
IN STRING_REF TokenToUpdate,
|
|
|
|
IN CHAR16 *NewString
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
InitFeaturePolicy (
|
|
|
|
IN EFI_PLATFORM_INFO_HOB *PlatformInfo
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
InitializeSetupVarHide (
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
PreparePCIePCISlotInformation(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
BootConfigurationUpdate (
|
|
|
|
IN OUT SYSTEM_CONFIGURATION *SystemConfiguration
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
InitializeBootConfiguration(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
UINT16
|
|
|
|
GetStringSize(
|
|
|
|
IN CHAR16 *ThisString
|
|
|
|
);
|
|
|
|
|
|
|
|
UINT16
|
|
|
|
GetDriveCount (
|
|
|
|
IN STRING_REF *BootMap
|
|
|
|
);
|
|
|
|
|
|
|
|
CHAR16 *
|
|
|
|
GetBootString (
|
|
|
|
IN STRING_REF Id,
|
|
|
|
OUT UINTN *Length
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
BootCfgCreateTwoOptionOneOf(
|
|
|
|
IN UINT16 QuestionId,
|
|
|
|
IN EFI_FORM_LABEL Label,
|
|
|
|
IN STRING_REF OptionPrompt,
|
|
|
|
IN STRING_REF OptionHelp,
|
|
|
|
IN STRING_REF OptionOneString,
|
|
|
|
IN STRING_REF OptionTwoString,
|
|
|
|
IN UINT8 OptionOneFlags,
|
|
|
|
IN UINT8 OptionTwoFlags,
|
|
|
|
IN UINT16 KeyValueOne,
|
|
|
|
IN UINT16 KeyValueTwo
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
ReplaceOpcodeWithText(
|
|
|
|
IN STRING_REF OptionPrompt,
|
|
|
|
IN STRING_REF OptionHelp,
|
|
|
|
IN STRING_REF OptionOneString,
|
|
|
|
IN EFI_FORM_LABEL Label
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
CreateDriveBootOrderOpcode(
|
|
|
|
IN VOID *Data,
|
|
|
|
IN STRING_REF *BootMap,
|
|
|
|
IN EFI_FORM_LABEL Label,
|
|
|
|
IN UINT16 QuestionId,
|
|
|
|
IN STRING_REF OptionOneString,
|
|
|
|
IN STRING_REF OptionTwoString
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
SetHyperBootCfgFlags(
|
|
|
|
IN OUT SYSTEM_CONFIGURATION *SystemConfiguration
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
GetHyperBootCfgFlags(
|
|
|
|
IN OUT SYSTEM_CONFIGURATION *SystemConfiguration
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
PrepareBootCfgForHyperBoot(
|
|
|
|
IN OUT SYSTEM_CONFIGURATION *SystemConfiguration
|
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
BootCfgChanged(
|
|
|
|
IN SYSTEM_CONFIGURATION *SystemConfiguration
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
InsertOpcodeAtIndex(
|
|
|
|
IN SYSTEM_CONFIGURATION *SystemConfiguration,
|
|
|
|
IN OUT IFR_OPTION *OptionList,
|
|
|
|
IN IFR_OPTION IfrOption,
|
|
|
|
IN UINT16 OptionCount
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
ConfigureBootOrderStrings(
|
|
|
|
IN SYSTEM_CONFIGURATION *SystemConfiguration
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
InitializeAllBootStrings(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
SaveUsbCfgSettings(
|
|
|
|
IN OUT SYSTEM_CONFIGURATION *SystemConfiguration
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
RestoreUsbCfgSettings(
|
|
|
|
IN OUT SYSTEM_CONFIGURATION *SystemConfiguration
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
UpdateBootDevicePriority(
|
|
|
|
IN OUT SYSTEM_CONFIGURATION *SystemConfiguration
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
DisableHyperBoot(
|
|
|
|
IN OUT SYSTEM_CONFIGURATION *SystemConfiguration
|
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
CheckForUserPassword(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
EFIAPI
|
|
|
|
HyperBootPasswordCallback(
|
|
|
|
IN OUT VOID* Data
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
EFIAPI
|
|
|
|
HyperBootF9Callback (
|
|
|
|
IN VOID* Data
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
InstallHiiEvents(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
EFIAPI
|
|
|
|
ProgramToneFrequency (
|
|
|
|
IN EFI_SPEAKER_IF_PROTOCOL *This,
|
|
|
|
IN UINT16 Frequency
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
EFIAPI
|
|
|
|
GenerateBeepTone (
|
|
|
|
IN EFI_SPEAKER_IF_PROTOCOL *This,
|
|
|
|
IN UINTN NumberOfBeeps,
|
|
|
|
IN UINTN BeepDuration,
|
|
|
|
IN UINTN TimeInterval
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
InitializeObservableProtocol();
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
PciBusDriverHook();
|
|
|
|
|
2015-01-22 06:50:45 +01:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
AdjustDefaultRtcTimeCallback (
|
|
|
|
IN EFI_EVENT Event,
|
|
|
|
IN VOID *Context
|
|
|
|
);
|
|
|
|
|
2015-01-12 10:37:20 +01:00
|
|
|
typedef struct _GOP_DISPLAY_BRIGHTNESS_PROTOCOL GOP_DISPLAY_BRIGHTNESS_PROTOCOL;
|
|
|
|
|
|
|
|
typedef
|
|
|
|
EFI_STATUS
|
|
|
|
(EFIAPI *GET_MAXIMUM_BRIGHTNESS_LEVEL) (
|
|
|
|
IN GOP_DISPLAY_BRIGHTNESS_PROTOCOL *This,
|
|
|
|
OUT UINT32 *MaxBrightnessLevel
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
typedef
|
|
|
|
EFI_STATUS
|
|
|
|
(EFIAPI *GET_CURRENT_BRIGHTNESS_LEVEL) (
|
|
|
|
IN GOP_DISPLAY_BRIGHTNESS_PROTOCOL *This,
|
|
|
|
OUT UINT32 *MaxBrightnessLevel
|
|
|
|
);
|
|
|
|
|
|
|
|
typedef
|
|
|
|
EFI_STATUS
|
|
|
|
(EFIAPI *SET_BRIGHTNESS_LEVEL) (
|
|
|
|
IN GOP_DISPLAY_BRIGHTNESS_PROTOCOL *This,
|
|
|
|
IN UINT32 BrightnessLevel
|
|
|
|
);
|
|
|
|
|
|
|
|
struct _GOP_DISPLAY_BRIGHTNESS_PROTOCOL {
|
|
|
|
UINT32 Revision;
|
|
|
|
GET_MAXIMUM_BRIGHTNESS_LEVEL GetMaxBrightnessLevel;
|
|
|
|
GET_CURRENT_BRIGHTNESS_LEVEL GetCurrentBrightnessLevel;
|
|
|
|
SET_BRIGHTNESS_LEVEL SetBrightnessLevel;
|
|
|
|
};
|
|
|
|
|
|
|
|
//
|
|
|
|
// Global externs
|
|
|
|
//
|
|
|
|
extern UINT8 MaintenanceBin[];
|
|
|
|
extern UINT8 MainBin[];
|
|
|
|
extern UINT8 ConfigurationBin[];
|
|
|
|
extern UINT8 MemoryConfigurationBin[];
|
|
|
|
extern UINT8 PerformanceBin[];
|
|
|
|
extern UINT8 SecurityBin[];
|
|
|
|
extern UINT8 BootBin[];
|
|
|
|
extern UINT8 PowerBin[];
|
|
|
|
extern UINT8 SystemSetupBin[];
|
|
|
|
|
|
|
|
extern VOID *mDxePlatformStringPack;
|
|
|
|
extern EFI_HII_PROTOCOL *mHii;
|
|
|
|
extern SYSTEM_CONFIGURATION mSystemConfiguration;
|
|
|
|
extern FRAMEWORK_EFI_HII_HANDLE mMaintenanceHiiHandle;
|
|
|
|
extern FRAMEWORK_EFI_HII_HANDLE mMainHiiHandle;
|
|
|
|
extern FRAMEWORK_EFI_HII_HANDLE mConfigurationHiiHandle;
|
|
|
|
extern FRAMEWORK_EFI_HII_HANDLE mPerformanceHiiHandle;
|
|
|
|
extern FRAMEWORK_EFI_HII_HANDLE mPowerHiiHandle;
|
|
|
|
extern FRAMEWORK_EFI_HII_HANDLE mBootHiiHandle;
|
|
|
|
extern FRAMEWORK_EFI_HII_HANDLE mSecurityHiiHandle;
|
|
|
|
|
|
|
|
extern SYSTEM_PASSWORDS mSystemPassword;
|
|
|
|
extern EFI_PASSWORD_DATA mAdminPassword;
|
|
|
|
extern EFI_PASSWORD_DATA mUserPassword;
|
|
|
|
|
|
|
|
extern EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *mPciRootBridgeIo;
|
|
|
|
|
|
|
|
//
|
|
|
|
//extern EFI_REG_TABLE mSubsystemIdRegs[];
|
|
|
|
//
|
|
|
|
extern UINT32 mSubsystemVidDid;
|
|
|
|
extern UINT32 mSubsystemAudioVidDid;
|
|
|
|
|
|
|
|
extern UINT8 mBoardIdIndex;
|
|
|
|
extern BOOLEAN mFoundAANum;
|
|
|
|
extern EFI_BOARD_FEATURES mBoardFeatures;
|
|
|
|
extern UINT16 mSubsystemDeviceId;
|
|
|
|
extern UINT16 mSubsystemAudioDeviceId;
|
|
|
|
extern BOARD_ID_DECODE mBoardIdDecodeTable[];
|
|
|
|
extern UINTN mBoardIdDecodeTableSize;
|
|
|
|
|
|
|
|
extern UINT8 mSmbusRsvdAddresses[];
|
|
|
|
extern UINT8 mNumberSmbusAddress;
|
|
|
|
extern BOOLEAN mMfgMode;
|
|
|
|
extern UINT32 mPlatformBootMode;
|
|
|
|
extern CHAR8 BoardAaNumber[];
|
|
|
|
|
|
|
|
extern EFI_GUID gEfiGlobalNvsAreaProtocolGuid;
|
|
|
|
#endif
|