summaryrefslogtreecommitdiff
path: root/ReferenceCode/ME/Protocol/MeGlobalNvsArea
diff options
context:
space:
mode:
Diffstat (limited to 'ReferenceCode/ME/Protocol/MeGlobalNvsArea')
-rw-r--r--ReferenceCode/ME/Protocol/MeGlobalNvsArea/MeGlobalNvsArea.c31
-rw-r--r--ReferenceCode/ME/Protocol/MeGlobalNvsArea/MeGlobalNvsArea.h72
2 files changed, 103 insertions, 0 deletions
diff --git a/ReferenceCode/ME/Protocol/MeGlobalNvsArea/MeGlobalNvsArea.c b/ReferenceCode/ME/Protocol/MeGlobalNvsArea/MeGlobalNvsArea.c
new file mode 100644
index 0000000..351c98e
--- /dev/null
+++ b/ReferenceCode/ME/Protocol/MeGlobalNvsArea/MeGlobalNvsArea.c
@@ -0,0 +1,31 @@
+/** @file
+ ME FW Global NVS Area description protocol implementation.
+
+@copyright
+ Copyright (c) 2012 Intel Corporation. All rights reserved
+ This software and associated documentation (if any) is furnished
+ under a license and may only be used or copied in accordance
+ with the terms of the license. Except as permitted by such
+ license, no part of this software or documentation may be
+ reproduced, stored in a retrieval system, or transmitted in any
+ form or by any means without the express written consent of
+ Intel Corporation.
+
+ This file contains an 'Intel Peripheral Driver' and uniquely
+ identified as "Intel Mobile Silicon Support Module" and is
+ licensed for Intel Mobile CPUs and chipsets under the terms of your
+ license agreement with Intel or your vendor. This file may
+ be modified by the user, subject to additional terms of the
+ license agreement
+**/
+#include "EdkIIGlueDxe.h"
+
+#include "MeGlobalNvsArea.h"
+
+EFI_GUID gMeGlobalNvsAreaProtocolGuid = ME_GLOBAL_NVS_AREA_PROTOCOL_GUID;
+
+EFI_GUID_STRING
+ (
+ &gMeGlobalNvsAreaProtocolGuid, "ME Global NVS Area Protocol",
+ "Protocol describing MEFW ACPI NVS memory region used by ACPI subsystem."
+ );
diff --git a/ReferenceCode/ME/Protocol/MeGlobalNvsArea/MeGlobalNvsArea.h b/ReferenceCode/ME/Protocol/MeGlobalNvsArea/MeGlobalNvsArea.h
new file mode 100644
index 0000000..ce037a1
--- /dev/null
+++ b/ReferenceCode/ME/Protocol/MeGlobalNvsArea/MeGlobalNvsArea.h
@@ -0,0 +1,72 @@
+/** @file
+ Definition of the MEFW global NVS area protocol. This protocol
+ publishes the address and format of a global ACPI NVS buffer used as a communications
+ buffer between SMM/DXE/PEI code and ASL code.
+ @todo The format is derived from the ACPI reference code, version 0.95.
+
+ Note: Data structures defined in this protocol are not naturally aligned.
+
+@copyright
+ Copyright (c) 2012 - 2013 Intel Corporation. All rights reserved
+ This software and associated documentation (if any) is furnished
+ under a license and may only be used or copied in accordance
+ with the terms of the license. Except as permitted by such
+ license, no part of this software or documentation may be
+ reproduced, stored in a retrieval system, or transmitted in any
+ form or by any means without the express written consent of
+ Intel Corporation.
+
+ This file contains a 'Sample Driver' and is licensed as such
+ under the terms of your license agreement with Intel or your
+ vendor. This file may be modified by the user, subject to
+ the additional terms of the license agreement
+**/
+#ifndef _ME_GLOBAL_NVS_AREA_H_
+#define _ME_GLOBAL_NVS_AREA_H_
+
+///
+/// Includes
+///
+///
+/// Forward reference for pure ANSI compatability
+///
+EFI_FORWARD_DECLARATION (ME_GLOBAL_NVS_AREA_PROTOCOL);
+
+///
+/// ME Global NVS Area Protocol GUID
+///
+#define ME_GLOBAL_NVS_AREA_PROTOCOL_GUID \
+ { \
+ 0x3bffecfd, 0xd75f, 0x4975, 0xb8, 0x88, 0x39, 0x02, 0xbd, 0x69, 0x00, 0x2b \
+ }
+
+///
+/// Extern the GUID for protocol users.
+///
+extern EFI_GUID gMeGlobalNvsAreaProtocolGuid;
+
+///
+/// Global NVS Area definition
+///
+#pragma pack(1)
+typedef struct {
+ UINT32 MeNvsRevision; ///< 000 Me NVS Protocol Revision
+ ///
+ /// PTT Solution
+ ///
+ UINT8 FTpmSwitch; /// (004) fTPM Solution Method Selection
+ ///
+ /// PTT Allocated Buffer Address
+ ///
+ UINT64 PTTAddress; /// (005) PTT Allocated Buffer Address
+
+} ME_GLOBAL_NVS_AREA;
+#pragma pack()
+///
+/// ME Global NVS Area Protocol
+///
+typedef struct _ME_GLOBAL_NVS_AREA_PROTOCOL {
+ ME_GLOBAL_NVS_AREA *Area;
+} ME_GLOBAL_NVS_AREA_PROTOCOL;
+
+#endif