X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=QuarkPlatformPkg%2FInclude%2FProtocol%2FGlobalNvsArea.h;fp=QuarkPlatformPkg%2FInclude%2FProtocol%2FGlobalNvsArea.h;h=24b9ad9969001c9e8fea89cc618c4ab780ff8a80;hp=0000000000000000000000000000000000000000;hb=b303605e1b7e113b4311daf161c6c3289350447b;hpb=9b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164 diff --git a/QuarkPlatformPkg/Include/Protocol/GlobalNvsArea.h b/QuarkPlatformPkg/Include/Protocol/GlobalNvsArea.h new file mode 100644 index 0000000000..24b9ad9969 --- /dev/null +++ b/QuarkPlatformPkg/Include/Protocol/GlobalNvsArea.h @@ -0,0 +1,88 @@ +/** @file +Definition of the global NVS area protocol. This protocol +publishes the address and format of a global ACPI NVS buffer +used as a communications buffer between SMM code and ASL code. +The format is derived from the ACPI reference code, version 0.95. +Note: Data structures defined in this protocol are not naturally aligned. + +Copyright (c) 2013-2015 Intel Corporation. + +This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which 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. + +**/ + +#ifndef _GLOBAL_NVS_AREA_H_ +#define _GLOBAL_NVS_AREA_H_ + +// +// Forward reference for pure ANSI compatability +// + +typedef struct _EFI_GLOBAL_NVS_AREA_PROTOCOL EFI_GLOBAL_NVS_AREA_PROTOCOL; + +// +// Global NVS Area Protocol GUID +// +#define EFI_GLOBAL_NVS_AREA_PROTOCOL_GUID \ +{ 0x74e1e48, 0x8132, 0x47a1, {0x8c, 0x2c, 0x3f, 0x14, 0xad, 0x9a, 0x66, 0xdc} } + + +// +// Global NVS Area definition +// +#pragma pack (1) +typedef struct { + // + // Miscellaneous Dynamic Values + // + UINT32 OperatingSystemType; // Os type indicator + UINT32 Cfgd; // System configuration description + UINT32 HpetEnable; + + UINT32 Pm1blkIoBaseAddress; + UINT32 PmbaIoBaseAddress; + UINT32 Gpe0blkIoBaseAddress; + UINT32 GbaIoBaseAddress; + + UINT32 SmbaIoBaseAddress; + UINT32 Reserved1; + UINT32 WdtbaIoBaseAddress; + + UINT32 HpetBaseAddress; + UINT32 HpetSize; + UINT32 PciExpressBaseAddress; + UINT32 PciExpressSize; + + UINT32 RcbaMmioBaseAddress; + UINT32 RcbaMmioSize; + UINT32 IoApicBaseAddress; + UINT32 IoApicSize; + + UINT32 TpmPresent; + UINT32 DBG2Present; + UINT32 PlatformType; // Set to one of EFI_PLATFORM_TYPE enums. + UINT32 AlternateSla; // If TRUE use alternate I2C Slave addresses. + + UINT8 Reserved[512 - 4 * 22]; // Total 512 Bytes +} EFI_GLOBAL_NVS_AREA; +#pragma pack () + +// +// Global NVS Area Protocol +// +struct _EFI_GLOBAL_NVS_AREA_PROTOCOL { + EFI_GLOBAL_NVS_AREA *Area; +}; + +// +// Extern the GUID for protocol users. +// +extern EFI_GUID gEfiGlobalNvsAreaProtocolGuid; + +#endif