mirror_edk2/QuarkPlatformPkg/Include/Protocol/GlobalNvsArea.h
Michael D Kinney 0eb3de2edc QuarkPlatformPkg: Replace BSD License with BSD+Patent License
https://bugzilla.tianocore.org/show_bug.cgi?id=1373

Replace BSD 2-Clause License with BSD+Patent License.  This change is
based on the following emails:

  https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html
  https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html

RFCs with detailed process for the license change:

  V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html
  V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html
  V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2019-04-09 10:58:21 -07:00

83 lines
2.1 KiB
C

/** @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.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#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