]> git.proxmox.com Git - mirror_edk2.git/blobdiff - QuarkPlatformPkg/Acpi/DxeSmm/AcpiSmm/AcpiSmmPlatform.h
QuarkPlatformPkg: Add new package for Galileo boards
[mirror_edk2.git] / QuarkPlatformPkg / Acpi / DxeSmm / AcpiSmm / AcpiSmmPlatform.h
diff --git a/QuarkPlatformPkg/Acpi/DxeSmm/AcpiSmm/AcpiSmmPlatform.h b/QuarkPlatformPkg/Acpi/DxeSmm/AcpiSmm/AcpiSmmPlatform.h
new file mode 100644 (file)
index 0000000..fef1fd0
--- /dev/null
@@ -0,0 +1,173 @@
+/** @file\r
+Header file for SMM S3 Handler Driver.\r
+\r
+Copyright (c) 2013-2015 Intel Corporation.\r
+\r
+This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\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