diff options
Diffstat (limited to 'ReferenceCode/ME/Protocol/MeGlobalNvsArea')
-rw-r--r-- | ReferenceCode/ME/Protocol/MeGlobalNvsArea/MeGlobalNvsArea.c | 31 | ||||
-rw-r--r-- | ReferenceCode/ME/Protocol/MeGlobalNvsArea/MeGlobalNvsArea.h | 72 |
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 |