]> git.proxmox.com Git - mirror_edk2.git/blame - QuarkPlatformPkg/Include/Protocol/GlobalNvsArea.h
QuarkPlatformPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / QuarkPlatformPkg / Include / Protocol / GlobalNvsArea.h
CommitLineData
b303605e
MK
1/** @file\r
2Definition of the global NVS area protocol. This protocol\r
3publishes the address and format of a global ACPI NVS buffer\r
4used as a communications buffer between SMM code and ASL code.\r
5The format is derived from the ACPI reference code, version 0.95.\r
6Note: Data structures defined in this protocol are not naturally aligned.\r
7\r
8Copyright (c) 2013-2015 Intel Corporation.\r
9\r
0eb3de2e 10SPDX-License-Identifier: BSD-2-Clause-Patent\r
b303605e
MK
11\r
12**/\r
13\r
14#ifndef _GLOBAL_NVS_AREA_H_\r
15#define _GLOBAL_NVS_AREA_H_\r
16\r
17//\r
18// Forward reference for pure ANSI compatability\r
19//\r
20\r
21typedef struct _EFI_GLOBAL_NVS_AREA_PROTOCOL EFI_GLOBAL_NVS_AREA_PROTOCOL;\r
22\r
23//\r
24// Global NVS Area Protocol GUID\r
25//\r
26#define EFI_GLOBAL_NVS_AREA_PROTOCOL_GUID \\r
27{ 0x74e1e48, 0x8132, 0x47a1, {0x8c, 0x2c, 0x3f, 0x14, 0xad, 0x9a, 0x66, 0xdc} }\r
28\r
29\r
30//\r
31// Global NVS Area definition\r
32//\r
33#pragma pack (1)\r
34typedef struct {\r
35 //\r
36 // Miscellaneous Dynamic Values\r
37 //\r
38 UINT32 OperatingSystemType; // Os type indicator\r
39 UINT32 Cfgd; // System configuration description\r
40 UINT32 HpetEnable;\r
41\r
42 UINT32 Pm1blkIoBaseAddress;\r
43 UINT32 PmbaIoBaseAddress;\r
44 UINT32 Gpe0blkIoBaseAddress;\r
45 UINT32 GbaIoBaseAddress;\r
46\r
47 UINT32 SmbaIoBaseAddress;\r
48 UINT32 Reserved1;\r
49 UINT32 WdtbaIoBaseAddress;\r
50\r
51 UINT32 HpetBaseAddress;\r
52 UINT32 HpetSize;\r
53 UINT32 PciExpressBaseAddress;\r
54 UINT32 PciExpressSize;\r
55\r
56 UINT32 RcbaMmioBaseAddress;\r
57 UINT32 RcbaMmioSize;\r
58 UINT32 IoApicBaseAddress;\r
59 UINT32 IoApicSize;\r
60\r
61 UINT32 TpmPresent;\r
62 UINT32 DBG2Present;\r
63 UINT32 PlatformType; // Set to one of EFI_PLATFORM_TYPE enums.\r
64 UINT32 AlternateSla; // If TRUE use alternate I2C Slave addresses.\r
65\r
66 UINT8 Reserved[512 - 4 * 22]; // Total 512 Bytes\r
67} EFI_GLOBAL_NVS_AREA;\r
68#pragma pack ()\r
69\r
70//\r
71// Global NVS Area Protocol\r
72//\r
73struct _EFI_GLOBAL_NVS_AREA_PROTOCOL {\r
74 EFI_GLOBAL_NVS_AREA *Area;\r
75};\r
76\r
77//\r
78// Extern the GUID for protocol users.\r
79//\r
80extern EFI_GUID gEfiGlobalNvsAreaProtocolGuid;\r
81\r
82#endif\r