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