123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- /*++
- Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- Module Name:
- SmmPlatform.h
- Abstract:
- Header file for
- ++*/
- #ifndef _PLATFORM_H
- #define _PLATFORM_H
- #include <PiSmm.h>
- #include <Protocol/SmmBase.h>
- #include <Protocol/FirmwareVolume.h>
- #include <Protocol/SmmPowerButtonDispatch.h>
- #include <Protocol/SmmSxDispatch.h>
- #include <Protocol/SmmSwDispatch.h>
- #include <Protocol/SmmSwDispatch2.h>
- #include <Protocol/SmmIchnDispatch.h>
- #include <Protocol/SmmAccess.h>
- #include <Protocol/SmmVariable.h>
- #include <Protocol/PciRootBridgeIo.h>
- #include <Protocol/LoadedImage.h>
- #include "Protocol/GlobalNvsArea.h"
- #include <Guid/SetupVariable.h>
- #include <Guid/EfiVpdData.h>
- #include <Guid/PciLanInfo.h>
- #include <IndustryStandard/Pci22.h>
- #include "PchAccess.h"
- #include "PlatformBaseAddresses.h"
- #include <Library/UefiBootServicesTableLib.h>
- #include <Library/S3BootScriptLib.h>
- #include <Library/IoLib.h>
- #include <Library/DebugLib.h>
- #include <Library/HobLib.h>
- #include <Library/BaseLib.h>
- #include <Library/BaseMemoryLib.h>
- #include <Library/DevicePathLib.h>
- #include <Library/PcdLib.h>
- #include <Library/PchPlatformLib.h>
- #include <Library/StallSmmLib.h>
- typedef struct {
- UINT8 Register;
- UINT8 Function;
- UINT8 Device;
- UINT8 Bus;
- UINT32 ExtendedRegister;
- } SMM_PCI_IO_ADDRESS;
- typedef struct {
- CHAR8 BoardAaNumber[7];
- UINTN BoardFabNumber;
- } BOARD_AA_NUMBER_DECODE;
- //
- // BugBug -- Need to get these two values from acpi.h, but right now, they are
- // declared in platform-specific variants of this file, so no easy
- // way to pick-up the include file and work across platforms.
- // Need these definitions to go into a file like common\acpi.h.
- //
- #define ACPI_ENABLE 0xA0
- #define ACPI_DISABLE 0xA1
- #define APM_12_FUNCS 0x50
- #define SMI_SET_SMMVARIABLE_PROTOCOL 0x51 // this is used in Cpu\Pentium\Smm\Base\SmmBase.c
- #define SMI_CMD_GET_MSEG_STATUS 0x70
- #define SMI_CMD_UPDATE_MSEG_SIZE 0x71
- #define SMI_CMD_LOAD_STM 0x72
- #define SMI_CMD_UNLOAD_STM 0x73
- #define SMI_CMD_GET_SMRAM_RANGES 0x74
- #define PCAT_RTC_ADDRESS_REGISTER 0x74
- #define PCAT_RTC_DATA_REGISTER 0x75
- #define RTC_ADDRESS_SECOND 0x00
- #define RTC_ADDRESS_SECOND_ALARM 0x01
- #define RTC_ADDRESS_MINUTE 0x02
- #define RTC_ADDRESS_MINUTE_ALARM 0x03
- #define RTC_ADDRESS_HOUR 0x04
- #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
- #define PCAT_CMOS_2_ADDRESS_REGISTER 0x72
- #define PCAT_CMOS_2_DATA_REGISTER 0x73
- #define EC_C_PORT 0x66
- #define SMC_SMI_DISABLE 0xBC
- #define SMC_ENABLE_ACPI_MODE 0xAA // Enable ACPI mode
- #define IO_MISC 156
- #define MAXIMUM_NUMBER_OF_PSTATES 12
- #define ICH_SMM_DATA_PORT 0xB3
- #define EFI_IA32_PMG_CST_CONFIG 0x000000E2
- #define B_EFI_CST_CONTROL_LOCK BIT15
- #define B_EFI_IO_MWAIT_REDIRECTION_ENABLE BIT10
- #define EFI_IA32_PMG_IO_CAPTURE_ADDR 0x000000E4
- extern EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *mPciRootBridgeIo;
- //
- // Callback function prototypes
- //
- VOID
- EFIAPI
- PowerButtonCallback (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_POWER_BUTTON_DISPATCH_CONTEXT *DispatchContext
- );
- VOID
- S5SleepWakeOnLanCallBack (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext
- );
- VOID
- EFIAPI
- S5SleepAcLossCallBack (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext
- );
- VOID
- EFIAPI
- S4S5CallBack (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext
- );
- VOID
- EFIAPI
- EnableAcpiCallback (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext
- );
- VOID
- EFIAPI
- DisableAcpiCallback (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext
- );
- VOID
- EFIAPI
- SmmReadyToBootCallback (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext
- );
- VOID
- DummyTco1Callback (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_ICHN_DISPATCH_CONTEXT *DispatchContext
- );
- VOID
- PerrSerrCallback (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_ICHN_DISPATCH_CONTEXT *DispatchContext
- );
- VOID
- RiCallback (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_ICHN_DISPATCH_CONTEXT *DispatchContext
- );
- VOID
- SetAfterG3On (
- BOOLEAN Enable
- );
- VOID
- TurnOffVregUsb (
- );
- VOID
- PStateSupportCallback (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext
- );
- VOID
- PStateTransitionCallback (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext
- );
- EFI_STATUS
- EFIAPI
- SxSleepEntryCallBack (
- IN EFI_HANDLE DispatchHandle,
- IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext
- );
- EFI_STATUS
- SaveRuntimeScriptTable (
- VOID
- );
- #endif
|