-/** @file\r
-Header file for SMM S3 Handler Driver.\r
-\r
-Copyright (c) 2013-2015 Intel Corporation.\r
-\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-\r
-**/\r
-\r
-#ifndef _ACPI_SMM_DRIVER_H\r
-#define _ACPI_SMM_DRIVER_H\r
-//\r
-// Include files\r
-//\r
-//\r
-// Driver Consumed Protocol Prototypes\r
-//\r
-#include <Protocol/SmmSxDispatch2.h>\r
-#include <Protocol/SmmSwDispatch2.h>\r
-#include <Protocol/FirmwareVolume.h>\r
-#include <Protocol/GlobalNvsArea.h>\r
-#include <Protocol/PciRootBridgeIo.h>\r
-#include <Library/UefiDriverEntryPoint.h>\r
-#include <Protocol/Spi.h>\r
-#include <Library/IoLib.h>\r
-#include <Library/PciLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/LockBoxLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/UefiRuntimeServicesTableLib.h>\r
-#include <Library/S3IoLib.h>\r
-#include <Library/S3BootScriptLib.h>\r
-#include <Guid/Acpi.h>\r
-#include <Guid/GlobalVariable.h>\r
-#include <Library/SmmServicesTableLib.h>\r
-#include <Guid/SmramMemoryReserve.h>\r
-#include <Library/ReportStatusCodeLib.h>\r
-#include <Library/HobLib.h>\r
-#include <QNCAccess.h>\r
-#include <Library/QNCAccessLib.h>\r
-#include <Library/IntelQNCLib.h>\r
-#include <Library/PlatformHelperLib.h>\r
-#include <Library/PlatformPcieHelperLib.h>\r
-#include "Platform.h"\r
-#include <IndustryStandard/Pci22.h>\r
-\r
-#define EFI_ACPI_ACPI_ENABLE 0xA0\r
-#define EFI_ACPI_ACPI_DISABLE 0xA1\r
-\r
-#define R_IOPORT_CMOS_STANDARD_INDEX 0x70\r
-#define R_IOPORT_CMOS_STANDARD_DATA 0x71\r
-#define RTC_ADDRESS_REGISTER_C 12\r
-#define RTC_ADDRESS_REGISTER_D 13\r
-\r
-#define PCI_DEVICE(Bus, Dev, Func) \\r
- Bus, Dev, Func\r
-\r
-#define PCI_REG_MASK(Byte0, Byte1, Byte2, Byte3, Byte4, Byte5, Byte6, Byte7) \\r
- Byte0, Byte1, Byte2, Byte3, Byte4, Byte5, Byte6, Byte7\r
-\r
-#define PCI_DEVICE_END 0xFF\r
-\r
-//\r
-// Related data structures definition\r
-//\r
-typedef struct _EFI_ACPI_SMM_DEV {\r
-\r
- //\r
- // Parent dispatch driver returned sleep handle\r
- //\r
- EFI_HANDLE S3SleepEntryHandle;\r
-\r
- EFI_HANDLE S4SleepEntryHandle;\r
-\r
- EFI_HANDLE S1SleepEntryHandle;\r
-\r
- EFI_HANDLE S5SoftOffEntryHandle;\r
-\r
- EFI_HANDLE EnableAcpiHandle;\r
-\r
- EFI_HANDLE DisableAcpiHandle;\r
-\r
- EFI_HANDLE PpCallbackHandle;\r
-\r
- EFI_HANDLE MorCallbackHandle;\r
-\r
- //\r
- // QNC Power Management I/O register base\r
- //\r
- UINT32 QncPmBase;\r
-\r
- //\r
- // QNC General Purpose Event0 register base\r
- //\r
- UINT32 QncGpe0Base;\r
-\r
- UINT32 BootScriptSaved;\r
-\r
-} EFI_ACPI_SMM_DEV;\r
-\r
-//\r
-// Prototypes\r
-//\r
-EFI_STATUS\r
-InitPlatformAcpiSmm (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable,\r
- IN OUT VOID *CommBuffer,\r
- IN OUT UINTN *CommBufferSize\r
- );\r
-\r
-EFI_STATUS\r
-SxSleepEntryCallBack (\r
- IN EFI_HANDLE DispatchHandle,\r
- IN CONST VOID *DispatchContext,\r
-\r
- IN OUT VOID *CommBuffer,\r
- IN OUT UINTN *CommBufferSize\r
- );\r
-\r
-EFI_STATUS\r
-DisableAcpiCallback (\r
- IN EFI_HANDLE DispatchHandle,\r
- IN CONST VOID *DispatchContext,\r
- IN OUT VOID *CommBuffer,\r
- IN OUT UINTN *CommBufferSize\r
- );\r
-\r
-EFI_STATUS\r
-EnableAcpiCallback (\r
- IN EFI_HANDLE DispatchHandle,\r
- IN CONST VOID *DispatchContext,\r
- IN OUT VOID *CommBuffer,\r
- IN OUT UINTN *CommBufferSize\r
- );\r
-\r
-EFI_STATUS\r
-RegisterToDispatchDriver (\r
- VOID\r
- );\r
-\r
-EFI_STATUS\r
-GetAllQncPmBase (\r
- IN EFI_SMM_SYSTEM_TABLE2 *Smst\r
- );\r
-\r
-EFI_STATUS\r
-SaveRuntimeScriptTable (\r
- IN EFI_SMM_SYSTEM_TABLE2 *Smst\r
- );\r
-\r
-EFI_STATUS\r
-RestoreQncS3SwCallback (\r
- IN EFI_HANDLE DispatchHandle,\r
- IN CONST VOID *DispatchContext,\r
- IN OUT VOID *CommBuffer,\r
- IN OUT UINTN *CommBufferSize\r
- );\r
-\r
-extern EFI_GUID gQncS3CodeInLockBoxGuid;\r
-extern EFI_GUID gQncS3ContextInLockBoxGuid;\r
-\r
-#endif\r