mirror of https://github.com/acidanthera/audk.git
89 lines
2.4 KiB
C
89 lines
2.4 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.
|
||
|
|
||
|
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
|