]> git.proxmox.com Git - mirror_edk2.git/blobdiff - QuarkPlatformPkg/Include/Protocol/GlobalNvsArea.h
QuarkPlatformPkg: Add new package for Galileo boards
[mirror_edk2.git] / QuarkPlatformPkg / Include / Protocol / GlobalNvsArea.h
diff --git a/QuarkPlatformPkg/Include/Protocol/GlobalNvsArea.h b/QuarkPlatformPkg/Include/Protocol/GlobalNvsArea.h
new file mode 100644 (file)
index 0000000..24b9ad9
--- /dev/null
@@ -0,0 +1,88 @@
+/** @file\r
+Definition of the global NVS area protocol.  This protocol\r
+publishes the address and format of a global ACPI NVS buffer\r
+used as a communications buffer between SMM code and ASL code.\r
+The format is derived from the ACPI reference code, version 0.95.\r
+Note:  Data structures defined in this protocol are not naturally aligned.\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
+#ifndef _GLOBAL_NVS_AREA_H_\r
+#define _GLOBAL_NVS_AREA_H_\r
+\r
+//\r
+// Forward reference for pure ANSI compatability\r
+//\r
+\r
+typedef struct _EFI_GLOBAL_NVS_AREA_PROTOCOL EFI_GLOBAL_NVS_AREA_PROTOCOL;\r
+\r
+//\r
+// Global NVS Area Protocol GUID\r
+//\r
+#define EFI_GLOBAL_NVS_AREA_PROTOCOL_GUID \\r
+{ 0x74e1e48, 0x8132, 0x47a1, {0x8c, 0x2c, 0x3f, 0x14, 0xad, 0x9a, 0x66, 0xdc} }\r
+\r
+\r
+//\r
+// Global NVS Area definition\r
+//\r
+#pragma pack (1)\r
+typedef struct {\r
+  //\r
+  // Miscellaneous Dynamic Values\r
+  //\r
+  UINT32      OperatingSystemType;    // Os type indicator\r
+  UINT32      Cfgd;                   // System configuration description\r
+  UINT32      HpetEnable;\r
+\r
+  UINT32      Pm1blkIoBaseAddress;\r
+  UINT32      PmbaIoBaseAddress;\r
+  UINT32      Gpe0blkIoBaseAddress;\r
+  UINT32      GbaIoBaseAddress;\r
+\r
+  UINT32      SmbaIoBaseAddress;\r
+  UINT32      Reserved1;\r
+  UINT32      WdtbaIoBaseAddress;\r
+\r
+  UINT32      HpetBaseAddress;\r
+  UINT32      HpetSize;\r
+  UINT32      PciExpressBaseAddress;\r
+  UINT32      PciExpressSize;\r
+\r
+  UINT32      RcbaMmioBaseAddress;\r
+  UINT32      RcbaMmioSize;\r
+  UINT32      IoApicBaseAddress;\r
+  UINT32      IoApicSize;\r
+\r
+  UINT32      TpmPresent;\r
+  UINT32      DBG2Present;\r
+  UINT32      PlatformType;           // Set to one of EFI_PLATFORM_TYPE enums.\r
+  UINT32      AlternateSla;           // If TRUE use alternate I2C Slave addresses.\r
+\r
+  UINT8       Reserved[512 - 4 * 22]; // Total 512 Bytes\r
+} EFI_GLOBAL_NVS_AREA;\r
+#pragma pack ()\r
+\r
+//\r
+// Global NVS Area Protocol\r
+//\r
+struct _EFI_GLOBAL_NVS_AREA_PROTOCOL {\r
+  EFI_GLOBAL_NVS_AREA     *Area;\r
+};\r
+\r
+//\r
+// Extern the GUID for protocol users.\r
+//\r
+extern EFI_GUID gEfiGlobalNvsAreaProtocolGuid;\r
+\r
+#endif\r