summaryrefslogtreecommitdiff
path: root/ReferenceCode/Chipset/SystemAgent/Guid
diff options
context:
space:
mode:
Diffstat (limited to 'ReferenceCode/Chipset/SystemAgent/Guid')
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/AcpiVariable/AcpiVariable.h80
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/SaAcpiTableStorage/SaAcpiTableStorage.c27
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/SaAcpiTableStorage/SaAcpiTableStorage.h31
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/SaDataHob/SaDataHob.c27
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/SaDataHob/SaDataHob.h122
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.cif19
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.inf49
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.mak21
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.sdl37
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/SaSsdtTableStorage/SaSsdtTableStorage.c27
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/SaSsdtTableStorage/SaSsdtTableStorage.h31
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/SgAcpiTableStorage/SgAcpiTableStorage.c45
-rw-r--r--ReferenceCode/Chipset/SystemAgent/Guid/SgAcpiTableStorage/SgAcpiTableStorage.h50
13 files changed, 566 insertions, 0 deletions
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/AcpiVariable/AcpiVariable.h b/ReferenceCode/Chipset/SystemAgent/Guid/AcpiVariable/AcpiVariable.h
new file mode 100644
index 0000000..6560e70
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/AcpiVariable/AcpiVariable.h
@@ -0,0 +1,80 @@
+/** @file
+ GUIDs used for ACPI variables.
+
+@copyright
+ Copyright (c) 1999 - 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 Reference Module" and is
+ licensed for Intel 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
+**/
+#ifndef _ACPI_VARIABLE_H_
+#define _ACPI_VARIABLE_H_
+
+///
+/// RC Override: sync from R8HswClientPkg\Guid\AcpiVariable\AcpiVariable.h
+///
+#define EFI_ACPI_VARIABLE_GUID \
+ { \
+ 0xc020489e, 0x6db2, 0x4ef2, 0x9a, 0xa5, 0xca, 0x6, 0xfc, 0x11, 0xd3, 0x6a \
+ }
+
+#define ACPI_GLOBAL_VARIABLE L"AcpiGlobalVariable"
+
+///
+/// The following structure combine all ACPI related variables into one in order
+/// to boost performance
+///
+#pragma pack(1)
+typedef struct {
+ UINT16 Limit;
+ UINTN Base;
+} PSEUDO_DESCRIPTOR;
+#pragma pack()
+
+typedef struct {
+ BOOLEAN APState;
+ BOOLEAN S3BootPath;
+ EFI_PHYSICAL_ADDRESS WakeUpBuffer;
+ EFI_PHYSICAL_ADDRESS GdtrProfile;
+ EFI_PHYSICAL_ADDRESS IdtrProfile;
+ EFI_PHYSICAL_ADDRESS CpuPrivateData;
+ EFI_PHYSICAL_ADDRESS StackAddress;
+ EFI_PHYSICAL_ADDRESS MicrocodePointerBuffer;
+ EFI_PHYSICAL_ADDRESS SmramBase;
+ EFI_PHYSICAL_ADDRESS SmmStartImageBase;
+ UINT32 SmmStartImageSize;
+ UINT32 NumberOfCpus;
+} ACPI_CPU_DATA;
+
+///
+/// Acpi Related variables
+///
+typedef struct {
+ EFI_PHYSICAL_ADDRESS AcpiReservedMemoryBase;
+ UINT32 AcpiReservedMemorySize;
+ EFI_PHYSICAL_ADDRESS S3ReservedLowMemoryBase;
+ EFI_PHYSICAL_ADDRESS AcpiBootScriptTable;
+ EFI_PHYSICAL_ADDRESS RuntimeScriptTableBase;
+ EFI_PHYSICAL_ADDRESS AcpiFacsTable;
+ UINT64 SystemMemoryLength;
+ ACPI_CPU_DATA AcpiCpuData;
+ EFI_PHYSICAL_ADDRESS VideoOpromAddress; ///< VGA OPROM to support Video Re-POST for Linux S3
+ UINT32 VideoOpromSize; ///< VGA OPROM to support Video Re-POST for Linux S3
+ EFI_PHYSICAL_ADDRESS S3DebugBufferAddress; ///< S3 Debug extension
+ EFI_PHYSICAL_ADDRESS S3ResumeNvsEntryPoint; ///< S3 Debug extension
+} ACPI_VARIABLE_SET;
+
+extern EFI_GUID gEfiAcpiVariableGuid;
+
+#endif
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/SaAcpiTableStorage/SaAcpiTableStorage.c b/ReferenceCode/Chipset/SystemAgent/Guid/SaAcpiTableStorage/SaAcpiTableStorage.c
new file mode 100644
index 0000000..a7ebeac
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/SaAcpiTableStorage/SaAcpiTableStorage.c
@@ -0,0 +1,27 @@
+/** @file
+ The GUID definition for SA ACPI table storage file name
+
+@copyright
+ Copyright (c) 1999 - 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 Reference Module" and is
+ licensed for Intel 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 "Tiano.h"
+#include "SaAcpiTableStorage.h"
+
+EFI_GUID gSaAcpiTableStorageGuid = SA_ACPI_TABLE_STORAGE_GUID;
+
+EFI_GUID_STRING
+ (&gIntelSaAcpiTableStorageGuid, "SA ACPI Table Storage File Name", "SA ACPI Table Storage file name GUID");
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/SaAcpiTableStorage/SaAcpiTableStorage.h b/ReferenceCode/Chipset/SystemAgent/Guid/SaAcpiTableStorage/SaAcpiTableStorage.h
new file mode 100644
index 0000000..cc599a1
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/SaAcpiTableStorage/SaAcpiTableStorage.h
@@ -0,0 +1,31 @@
+/** @file
+ GUID definition for the SA ACPI table storage file name
+
+@copyright
+ Copyright (c) 1999 - 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 Reference Module" and is
+ licensed for Intel 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
+**/
+#ifndef _SA_ACPI_TABLE_STORAGE_H_
+#define _SA_ACPI_TABLE_STORAGE_H_
+
+#define SA_ACPI_TABLE_STORAGE_GUID \
+ { \
+ 0x27E569D5, 0xAFC, 0x4D8F, 0x8C, 0x90, 0x78, 0x3A, 0xC4, 0xA3, 0x18, 0xAB \
+ }
+
+extern EFI_GUID gSaAcpiTableStorageGuid;
+
+#endif
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/SaDataHob/SaDataHob.c b/ReferenceCode/Chipset/SystemAgent/Guid/SaDataHob/SaDataHob.c
new file mode 100644
index 0000000..067f02b
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/SaDataHob/SaDataHob.c
@@ -0,0 +1,27 @@
+/** @file
+ The GUID definition for SaDataHob
+
+@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 Reference Module" and is
+ licensed for Intel 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 "Tiano.h"
+#include "SaDataHob.h"
+
+EFI_GUID gSaDataHobGuid = SA_DATA_HOB_GUID;
+
+EFI_GUID_STRING(&gSaDataHobGuid, "SA Data HOB", "GUID for SA Data HOB");
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/SaDataHob/SaDataHob.h b/ReferenceCode/Chipset/SystemAgent/Guid/SaDataHob/SaDataHob.h
new file mode 100644
index 0000000..476cb68
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/SaDataHob/SaDataHob.h
@@ -0,0 +1,122 @@
+/** @file
+ The GUID definition for SaDataHob
+
+@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 an 'Intel Peripheral Driver' and uniquely
+ identified as "Intel Reference Module" and is
+ licensed for Intel 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
+**/
+
+#ifndef _SA_DATA_HOB_H_
+#define _SA_DATA_HOB_H_
+
+#define SA_DATA_HOB_GUID \
+ { \
+ 0x4c10d934, 0x38e6, 0x45a4, 0x9a, 0x24, 0x2a, 0x79, 0xb9, 0x3d, 0xcb, 0x7f \
+ }
+
+extern EFI_GUID gSaDataHobGuid;
+
+#define GP_ENABLE 1
+#define GP_DISABLE 0
+
+#ifndef _PEI_HOB_H_
+#ifndef __HOB__H__
+typedef struct _EFI_HOB_GENERIC_HEADER {
+ UINT16 HobType;
+ UINT16 HobLength;
+ UINT32 Reserved;
+} EFI_HOB_GENERIC_HEADER;
+
+typedef struct _EFI_HOB_GUID_TYPE {
+ EFI_HOB_GENERIC_HEADER Header;
+ EFI_GUID Name;
+ //
+ // Guid specific data goes here
+ //
+} EFI_HOB_GUID_TYPE;
+#endif
+#endif
+
+///
+/// DPR Directory Types
+///
+typedef enum {
+ EnumDprDirectoryTxt = 0,
+ EnumDprDirectoryPfat
+} DPR_DIRECTORY_ELEMENT;
+
+#define DPR_DIRECTORY_TYPE_TXT 0x01
+#define DPR_DIRECTORY_TYPE_PFAT 0x02
+#define DPR_DIRECTORY_MAX 2
+
+///
+/// DPR directory entry definition
+///
+typedef struct {
+ UINT8 Type; ///< DPR Directory Type
+ UINT8 Size; ///< DPR Size in MB
+ UINT32 PhysBase; ///< Physical address - must be 4K aligned (bits 11..0 must be clear)
+ UINT16 Reserved; ///< Must be 0
+} DPR_DIRECTORY_ENTRY;
+
+///
+/// PEG data definition
+///
+typedef struct {
+ UINT32 EndPointVendorIdDeviceId[3]; ///< VID/DID for each PEG controller
+ UINT8 BestPreset[16]; ///< Best preset value for each lane
+ UINT8 PegGen3PresetSearch; ///< Policy value from earlier boot
+ UINT8 PegLinkFailMask; ///< Mask of PEG controllers to ignore
+} SA_PEG_DATA;
+
+///
+/// SgMode settings
+///
+typedef enum {
+ SgModeDisabled = 0,
+ SgModeMuxed,
+ SgModeMuxless,
+ SgModeDgpu,
+ SgModeMax
+} SG_MODE;
+
+///
+/// SA Info HOB
+///
+typedef struct _SG_INFO_HOB {
+ EFI_HOB_GUID_TYPE EfiHobGuidType;
+ UINT8 RevisionId; ///< Revision ID
+ SG_MODE SgMode;
+ BOOLEAN SgGpioSupport; ///< 1=Supported; 0=Not Supported
+ UINT8 SgDgpuPwrOK;
+ UINT8 SgDgpuHoldRst;
+ UINT8 SgDgpuPwrEnable;
+ UINT8 SgDgpuPrsnt;
+ UINT8 PXFixedDynamicMode; // AMI_OVERRIDE_FOR ATI 5.0 Fixed/Dynamic
+} SG_INFO_HOB;
+
+typedef struct {
+ EFI_HOB_GUID_TYPE EfiHobGuidType;
+ DPR_DIRECTORY_ENTRY DprDirectory[DPR_DIRECTORY_MAX];
+ BOOLEAN PegDataValid; ///< TRUE, if PegData contains data from a prior boot
+ SA_PEG_DATA PegData;
+ UINT16 SaIotrapSmiAddress; ///< Store address for Iotrap SMI
+ BOOLEAN InitPcieAspmAfterOprom; ///< Switch for PCIe ASPM initialization after Oprom or before
+ SG_INFO_HOB SgInfo;
+ BOOLEAN PegPlatformResetRequired; ///< if PegPlatformResetRequired=1, platform code should generate a cold/power cycle reset after saving PEG config data into NVRAM
+} SA_DATA_HOB;
+
+#endif
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.cif b/ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.cif
new file mode 100644
index 0000000..3298df9
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.cif
@@ -0,0 +1,19 @@
+<component>
+ name = "SaGuidLib"
+ category = ModulePart
+ LocalRoot = "ReferenceCode\Chipset\SystemAgent\Guid\"
+ RefName = "SaGuidLib"
+[files]
+"SaGuidLib.sdl"
+"SaGuidLib.mak"
+"SaGuidLib.inf"
+"AcpiVariable\AcpiVariable.h"
+"SaAcpiTableStorage\SaAcpiTableStorage.h"
+"SaAcpiTableStorage\SaAcpiTableStorage.c"
+"SaDataHob\SaDataHob.h"
+"SaDataHob\SaDataHob.c"
+"SgAcpiTableStorage\SgAcpiTableStorage.h"
+"SgAcpiTableStorage\SgAcpiTableStorage.c"
+"SaSsdtTableStorage\SaSsdtTableStorage.c"
+"SaSsdtTableStorage\SaSsdtTableStorage.h"
+<endComponent>
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.inf b/ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.inf
new file mode 100644
index 0000000..9d20582
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.inf
@@ -0,0 +1,49 @@
+## @file
+# Component description file for the SA GUID library
+#
+#@copyright
+# Copyright (c) 1999 - 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 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
+#
+
+[defines]
+BASE_NAME = SaGuidLib
+COMPONENT_TYPE = LIBRARY
+
+[sources.common]
+ AcpiVariable/AcpiVariable.h
+ SaAcpiTableStorage/SaAcpiTableStorage.h
+ SaAcpiTableStorage/SaAcpiTableStorage.c
+ SgAcpiTableStorage/SgAcpiTableStorage.h
+ SgAcpiTableStorage/SgAcpiTableStorage.c
+ SaDataHob/SaDataHob.h
+ SaDataHob/SaDataHob.c
+ SaSsdtTableStorage/SaSsdtTableStorage.h
+ SaSsdtTableStorage/SaSsdtTableStorage.c
+
+[includes.common]
+ $(EFI_SOURCE)
+ $(EDK_SOURCE)/Foundation
+ $(EDK_SOURCE)/Foundation/Efi
+ $(EDK_SOURCE)/Foundation/Efi/Include
+ $(EDK_SOURCE)/Foundation/Framework
+ $(EDK_SOURCE)/Foundation/Framework/Include
+ $(EDK_SOURCE)/Foundation/Include
+ $(EDK_SOURCE)/Foundation/Include/IndustryStandard
+ $(EDK_SOURCE)/Foundation/Library/EdkIIGlueLib/Include
+ $(EDK_SOURCE)/Foundation/Core/Dxe
+ $(EDK_SOURCE)/Foundation/Library/Dxe/Include
+
+[nmake.common]
+C_STD_INCLUDE=
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.mak b/ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.mak
new file mode 100644
index 0000000..4d3e7a8
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.mak
@@ -0,0 +1,21 @@
+# MAK file for the ModulePart:SaGuidLib
+all : SaGuidLib
+
+$(SaGuidLib_LIB) : SaGuidLib
+
+SaGuidLib : $(BUILD_DIR)\SaGuidLib.mak SaGuidLibBin
+
+$(BUILD_DIR)\SaGuidLib.mak : $(SaGuidLib_DIR)\$(@B).cif $(SaGuidLib_DIR)\$(@B).mak $(BUILD_RULES)
+ $(CIF2MAK) $(SaGuidLib_DIR)\$(@B).cif $(CIF2MAK_DEFAULTS)
+
+SaGuidLibBin :
+ $(MAKE) /$(MAKEFLAGS) $(EDK_DEFAULTS)\
+ /f $(BUILD_DIR)\SaGuidLib.mak all\
+ "MY_INCLUDES=$(EDK_INCLUDES) $(EdkIIGlueLib_INCLUDES)" \
+ TYPE=LIBRARY
+!IF "$(x64_BUILD)"=="1"
+ $(MAKE) /$(MAKEFLAGS) $(EDK_DEFAULTS) BUILD_DIR=$(BUILD_DIR)\IA32\
+ /f $(BUILD_DIR)\SaGuidLib.mak all\
+ "MY_INCLUDES=$(EDK_INCLUDES) $(EdkIIGlueLib_INCLUDES)" \
+ TYPE=PEI_LIBRARY
+!ENDIF
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.sdl b/ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.sdl
new file mode 100644
index 0000000..55af4bc
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/SaGuidLib.sdl
@@ -0,0 +1,37 @@
+TOKEN
+ Name = "SaGuidLib_SUPPORT"
+ Value = "1"
+ TokenType = Boolean
+ TargetEQU = Yes
+ TargetMAK = Yes
+ Master = Yes
+ Help = "Main switch to enable SaGuidLib support in Project"
+End
+
+MODULE
+ Help = "Includes SaGuidLib.mak to Project"
+ File = "SaGuidLib.mak"
+End
+
+PATH
+ Name = "SaGuidLib_DIR"
+End
+
+ELINK
+ Name = "/I$(SaGuidLib_DIR)"
+ Parent = "INTEL_MCH_INCLUDES"
+ InvokeOrder = AfterParent
+End
+
+ELINK
+ Name = "/I$(SaGuidLib_DIR)\AcpiVariable"
+ Parent = "INTEL_MCH_INCLUDES"
+ InvokeOrder = AfterParent
+End
+
+TOKEN
+ Name = "SaGuidLib_LIB"
+ Value = "$$(LIB_BUILD_DIR)\SaGuidLib.lib"
+ TokenType = Expression
+ TargetMAK = Yes
+End
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/SaSsdtTableStorage/SaSsdtTableStorage.c b/ReferenceCode/Chipset/SystemAgent/Guid/SaSsdtTableStorage/SaSsdtTableStorage.c
new file mode 100644
index 0000000..0f0307b
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/SaSsdtTableStorage/SaSsdtTableStorage.c
@@ -0,0 +1,27 @@
+/** @file
+ The GUID definition for SA ACPI table storage file name
+
+@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 Reference Module" and is
+ licensed for Intel 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 "Tiano.h"
+#include "SaSsdtTableStorage.h"
+
+EFI_GUID gSaSsdtAcpiTableStorageGuid = SA_SSDT_ACPI_TABLE_STORAGE_GUID;
+
+EFI_GUID_STRING
+ (&gSaSsdtAcpiTableStorageGuid, "SA SSDT ACPI Table Storage File Name", "SA SSDT ACPI Table Storage file name GUID");
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/SaSsdtTableStorage/SaSsdtTableStorage.h b/ReferenceCode/Chipset/SystemAgent/Guid/SaSsdtTableStorage/SaSsdtTableStorage.h
new file mode 100644
index 0000000..1e0b9b1
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/SaSsdtTableStorage/SaSsdtTableStorage.h
@@ -0,0 +1,31 @@
+/** @file
+ GUID definition for the SA SSDT ACPI table storage file name
+
+@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 Reference Module" and is
+ licensed for Intel 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
+**/
+#ifndef _SA_SSDT_TABLE_STORAGE_H_
+#define _SA_SSDT_TABLE_STORAGE_H_
+
+#define SA_SSDT_ACPI_TABLE_STORAGE_GUID \
+ { \
+ 0xAAA99A23, 0x13B6, 0x4C31, 0xBB, 0x8B, 0x29, 0x9E, 0x8E, 0xC0, 0x4F, 0xA4 \
+ }
+
+extern EFI_GUID gSaSsdtAcpiTableStorageGuid;
+
+#endif
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/SgAcpiTableStorage/SgAcpiTableStorage.c b/ReferenceCode/Chipset/SystemAgent/Guid/SgAcpiTableStorage/SgAcpiTableStorage.c
new file mode 100644
index 0000000..5cac632
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/SgAcpiTableStorage/SgAcpiTableStorage.c
@@ -0,0 +1,45 @@
+/** @file
+ The GUID definition for SG ACPI table storage file name
+
+@copyright
+ Copyright (c) 2010 - 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 Reference Module" and is
+ licensed for Intel 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 "SgAcpiTableStorage.h"
+
+///
+/// Protocol GUID definition for PEG Switchable Graphics
+///
+EFI_GUID gSgAcpiTableStorageGuid = SG_ACPI_TABLE_STORAGE_GUID;
+
+///
+/// Protocol description for PEG Switchable Graphics
+///
+EFI_GUID_STRING
+ (&gIntelSgAcpiTableStorageGuid, "SG ACPI Table Storage File Name", "SG ACPI Table Storage file name GUID");
+
+
+///
+/// Protocol GUID definition for PCH Switchable Graphics
+///
+EFI_GUID gSgAcpiTablePchStorageGuid = SG_ACPI_TABLE_PCH_STORAGE_GUID;
+
+///
+/// Protocol description for PCH Switchable Graphics
+///
+EFI_GUID_STRING
+ (&gSgAcpiTablePchStorageGuid, "SG ACPI Table Pch Storage File Name", "SG ACPI Table Pch Storage file name GUID");
diff --git a/ReferenceCode/Chipset/SystemAgent/Guid/SgAcpiTableStorage/SgAcpiTableStorage.h b/ReferenceCode/Chipset/SystemAgent/Guid/SgAcpiTableStorage/SgAcpiTableStorage.h
new file mode 100644
index 0000000..4aa8d54
--- /dev/null
+++ b/ReferenceCode/Chipset/SystemAgent/Guid/SgAcpiTableStorage/SgAcpiTableStorage.h
@@ -0,0 +1,50 @@
+/** @file
+ GUID definition for the SG ACPI table storage file name
+
+@copyright
+ Copyright (c) 2010 - 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 Reference Module" and is
+ licensed for Intel 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
+**/
+#ifndef _SG_ACPI_TABLE_STORAGE_H_
+#define _SG_ACPI_TABLE_STORAGE_H_
+
+///
+/// {CACB3817-81E6-497e-87FF-C8FA8F24EC28}
+///
+#define SG_ACPI_TABLE_STORAGE_GUID \
+ { \
+ 0xcacb3817, 0x81e6, 0x497e, 0x87, 0xff, 0xc8, 0xfa, 0x8f, 0x24, 0xec, 0x28 \
+ }
+
+extern EFI_GUID gSgAcpiTableStorageGuid;
+
+#endif
+
+
+#ifndef _SG_ACPI_TABLE_PCH_STORAGE_H_
+#define _SG_ACPI_TABLE_PCH_STORAGE_H_
+
+///
+/// {CBCB3817-81E6-497e-87FF-C8FA8F24EC28}
+///
+#define SG_ACPI_TABLE_PCH_STORAGE_GUID \
+ { \
+ 0xcbcb3817, 0x81e6, 0x497e, 0x87, 0xff, 0xc8, 0xfa, 0x8f, 0x24, 0xec, 0x28 \
+ }
+
+extern EFI_GUID gSgAcpiTablePchStorageGuid;
+
+#endif