diff --git a/IntelFrameworkModulePkg/Include/Guid/MemoryStatusCodeRecord.h b/IntelFrameworkModulePkg/Include/Guid/MemoryStatusCodeRecord.h
new file mode 100644
index 0000000000..fb80d1954b
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Guid/MemoryStatusCodeRecord.h
@@ -0,0 +1,54 @@
+/*++
+
+Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+Module Name:
+
+ MemoryStatusCodeRecord.h
+
+Abstract:
+
+ GUID used to identify status code records HOB that originate from the PEI status code
+
+--*/
+
+#ifndef __MEMORY_STATUS_CODE_RECORD_H__
+#define __MEMORY_STATUS_CODE_RECORD_H__
+
+#define MEMORY_STATUS_CODE_RECORD_GUID \
+ { \
+ 0x60cc026, 0x4c0d, 0x4dda, {0x8f, 0x41, 0x59, 0x5f, 0xef, 0x0, 0xa5, 0x2} \
+ }
+
+/**
+ Memory status code records packet structure :
+ +---------------+----------+----------+-----+----------+-----+----------+
+ | Packet Header | Record 1 | Record 2 | ... + Record n | ... | Record m |
+ +---------------+----------+----------+-----+----------+-----+----------+
+ ^ ^ ^
+ +--------- RecordIndex -----------+ |
+ +---------------- MaxRecordsNumber----------------------+
+**/
+typedef struct {
+ UINT16 PacketIndex; // Index of the Packet.
+ UINT16 RecordIndex; // Index of record in the packet.
+ UINT32 MaxRecordsNumber; // Max number of records in the packet.
+} MEMORY_STATUSCODE_PACKET_HEADER;
+
+typedef struct {
+ EFI_STATUS_CODE_TYPE CodeType;
+ EFI_STATUS_CODE_VALUE Value;
+ UINT32 Instance;
+} MEMORY_STATUSCODE_RECORD;
+
+
+extern EFI_GUID gMemoryStatusCodeRecordGuid;
+
+#endif
diff --git a/IntelFrameworkModulePkg/Include/Guid/PciHotplugDevice.h b/IntelFrameworkModulePkg/Include/Guid/PciHotplugDevice.h
new file mode 100644
index 0000000000..3d750cb854
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Guid/PciHotplugDevice.h
@@ -0,0 +1,30 @@
+/*++
+
+Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+Module Name:
+
+ PciHotplugDevice.h
+
+Abstract:
+
+ GUIDs used to indicate the device is Pccard hotplug device
+
+--*/
+
+#ifndef __PCI_HOTPLUG_DEVICE_GUID_H_
+#define __PCI_HOTPLUG_DEVICE_GUID_H_
+
+#define EFI_PCI_HOTPLUG_DEVICE_GUID \
+ { 0x0b280816, 0x52e7, 0x4e51, {0xaa, 0x57, 0x11, 0xbd, 0x41, 0xcb, 0xef, 0xc3 } }
+
+extern EFI_GUID gEfiPciHotplugDeviceGuid;
+
+#endif
diff --git a/IntelFrameworkModulePkg/Include/Guid/PciOptionRomTable.h b/IntelFrameworkModulePkg/Include/Guid/PciOptionRomTable.h
new file mode 100644
index 0000000000..0ba44dbed4
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Guid/PciOptionRomTable.h
@@ -0,0 +1,47 @@
+/*++
+
+Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+Module Name:
+
+ PciOptionRomTable.h
+
+Abstract:
+
+ GUID and data structure used to describe the list of PCI Option ROMs present in a system.
+
+--*/
+
+#ifndef __PCI_OPTION_ROM_TABLE_GUID_H_
+#define __PCI_OPTION_ROM_TABLE_GUID_H_
+
+#define EFI_PCI_OPTION_ROM_TABLE_GUID \
+ { 0x7462660f, 0x1cbd, 0x48da, {0xad, 0x11, 0x91, 0x71, 0x79, 0x13, 0x83, 0x1c } }
+
+extern EFI_GUID gEfiPciOptionRomTableGuid;
+
+typedef struct {
+ EFI_PHYSICAL_ADDRESS RomAddress;
+ EFI_MEMORY_TYPE MemoryType;
+ UINT32 RomLength;
+ UINT32 Seg;
+ UINT8 Bus;
+ UINT8 Dev;
+ UINT8 Func;
+ BOOLEAN ExecutedLegacyBiosImage;
+ BOOLEAN DontLoadEfiRom;
+} EFI_PCI_OPTION_ROM_DESCRIPTOR;
+
+typedef struct {
+ UINT64 PciOptionRomCount;
+ EFI_PCI_OPTION_ROM_DESCRIPTOR *PciOptionRomDescriptors;
+} EFI_PCI_OPTION_ROM_TABLE;
+
+#endif
diff --git a/IntelFrameworkModulePkg/Include/Guid/StatusCode.h b/IntelFrameworkModulePkg/Include/Guid/StatusCode.h
new file mode 100644
index 0000000000..8792c042dd
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Guid/StatusCode.h
@@ -0,0 +1,33 @@
+/*++
+
+Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+Module Name:
+
+ StatusCode.h
+
+Abstract:
+
+ GUID used to identify Data Hub records that originate from the Tiano
+ ReportStatusCode API.
+
+--*/
+
+#ifndef __STATUS_CODE_H__
+#define __STATUS_CODE_H__
+
+#define EFI_STATUS_CODE_GUID \
+ { \
+ 0xd083e94c, 0x6560, 0x42e4, {0xb6, 0xd4, 0x2d, 0xf7, 0x5a, 0xdf, 0x6a, 0x2a } \
+ }
+
+extern EFI_GUID gEfiStatusCodeGuid;
+
+#endif
diff --git a/IntelFrameworkModulePkg/Include/Library/OemHookStatusCodeLib.h b/IntelFrameworkModulePkg/Include/Library/OemHookStatusCodeLib.h
new file mode 100644
index 0000000000..533df317ff
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Library/OemHookStatusCodeLib.h
@@ -0,0 +1,73 @@
+
+/** @file
+ OEM hook status code library functions with no library constructor/destructor
+
+ Copyright (c) 2006, Intel Corporation
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ Module Name: OemHookStatusCodeLib.h
+
+**/
+
+#ifndef __OEM_HOOK_STATUSCODE_LIB__
+#define __OEM_HOOK_STATUSCODE_LIB__
+
+/**
+
+ Initialize OEM status code device .
+
+
+ @return Status of initialization of OEM status code device.
+
+**/
+EFI_STATUS
+EFIAPI
+OemHookStatusCodeInitialize (
+ VOID
+ );
+
+/**
+ Report status code to OEM device.
+
+ @param CodeType Indicates the type of status code being reported. Type EFI_STATUS_CODE_TYPE is defined in "Related Definitions" below.
+
+ @param Value Describes the current status of a hardware or software entity.
+ This included information about the class and subclass that is used to classify the entity
+ as well as an operation. For progress codes, the operation is the current activity.
+ For error codes, it is the exception. For debug codes, it is not defined at this time.
+ Type EFI_STATUS_CODE_VALUE is defined in "Related Definitions" below.
+ Specific values are discussed in the Intel? Platform Innovation Framework for EFI Status Code Specification.
+
+ @param Instance The enumeration of a hardware or software entity within the system.
+ A system may contain multiple entities that match a class/subclass pairing.
+ The instance differentiates between them. An instance of 0 indicates that instance information is unavailable,
+ not meaningful, or not relevant. Valid instance numbers start with 1.
+
+
+ @param CallerId This optional parameter may be used to identify the caller.
+ This parameter allows the status code driver to apply different rules to different callers.
+ Type EFI_GUID is defined in InstallProtocolInterface() in the EFI 1.10 Specification.
+
+
+ @param Data This optional parameter may be used to pass additional data
+
+ @return The function always return EFI_SUCCESS.
+
+**/
+EFI_STATUS
+EFIAPI
+OemHookStatusCodeReport (
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId, OPTIONAL
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ );
+
+#endif
diff --git a/IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h b/IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h
new file mode 100644
index 0000000000..527a704042
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h
@@ -0,0 +1,134 @@
+/** @file
+ PCI Incompatible device support Libary.
+
+Copyright (c) 2007 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.
+
+**/
+
+#define PCI_REGISTER_READ 0xfffffffffffffff1ULL
+#define PCI_REGISTER_WRITE 0xfffffffffffffff2ULL
+#define VALUE_NOCARE 0xffffffffffffffffULL
+
+//
+// PCI device device information
+//
+typedef struct {
+ UINT64 VendorID;
+ UINT64 DeviceID;
+ UINT64 RevisionID;
+ UINT64 SubsystemVendorID;
+ UINT64 SubsystemID;
+} EFI_PCI_DEVICE_INFO;
+
+
+//
+// store hardcode value of resgister
+//
+typedef struct {
+ UINT64 AndValue;
+ UINT64 OrValue;
+} EFI_PCI_REGISTER_VALUE_DATA;
+
+//
+// store access width information
+//
+typedef struct {
+ UINT64 StartOffset;
+ UINT64 EndOffset;
+ UINT64 Width;
+} EFI_PCI_REGISTER_ACCESS_DATA;
+
+
+//
+// ACPI resource descriptor
+//
+typedef struct {
+ UINT64 ResType;
+ UINT64 GenFlag;
+ UINT64 SpecificFlag;
+ UINT64 AddrSpaceGranularity;
+ UINT64 AddrRangeMin;
+ UINT64 AddrRangeMax;
+ UINT64 AddrTranslationOffset;
+ UINT64 AddrLen;
+} EFI_PCI_RESOUCE_DESCRIPTOR;
+
+/**
+ Checks the incompatible device list for ACPI resource update and return
+ the configuration.
+
+ This function searches the incompatible device list according to request
+ information. If the PCI device belongs to the devices list, corresponding
+ configuration informtion will be returned, in the meantime return EFI_SUCCESS.
+
+ @param PciDeviceInfo A pointer to PCI device information.
+ @param Configuration Returned information.
+
+ @retval returns EFI_SUCCESS if check incompatible device ok.
+ Otherwise return EFI_UNSUPPORTED.
+**/
+RETURN_STATUS
+EFIAPI
+PciResourceUpdateCheck (
+ IN EFI_PCI_DEVICE_INFO *PciDeviceInfo,
+ OUT VOID *Configuration
+ );
+
+/**
+ Checks the incompatible device list and return configuration register mask values.
+
+ This function searches the incompatible device list according to request
+ information. If the PCI device belongs to the devices list, corresponding
+ configuration informtion will be returned, in the meantime return EFI_SUCCESS.
+
+ @param PciDeviceInfo A pointer to EFI_PCI_DEVICE_INFO.
+ @param AccessType Access Type, READ or WRITE.
+ @param Offset The address within the PCI configuration space.
+ @param Configuration Returned information.
+
+ @retval returns EFI_SUCCESS if check incompatible device ok.
+ Otherwise return EFI_UNSUPPORTED.
+**/
+RETURN_STATUS
+EFIAPI
+PciRegisterUpdateCheck (
+ IN EFI_PCI_DEVICE_INFO *PciDeviceInfo,
+ IN UINT64 AccessType,
+ IN UINT64 Offset,
+ OUT VOID *Configuration
+ );
+
+/**
+ Checks the incompatible device list for access width incompatibility and
+ return the configuration
+
+ This function searches the incompatible device list for access width
+ incompatibility according to request information. If the PCI device
+ belongs to the devices list, corresponding configuration informtion
+ will be returned, in the meantime return EFI_SUCCESS.
+
+ @param PciDeviceInfo A pointer to PCI device information.
+ @param AccessType Access type, READ or WRITE.
+ @param Offset The address within the PCI configuration space.
+ @param AccessWidth Access width needs to check incompatibility.
+ @param Configuration Returned information.
+
+ @retval returns EFI_SUCCESS if check incompatible device ok.
+ Otherwise return EFI_UNSUPPORTED.
+**/
+RETURN_STATUS
+EFIAPI
+PciRegisterAccessCheck (
+ IN EFI_PCI_DEVICE_INFO *PciDeviceInfo,
+ IN UINT64 AccessType,
+ IN UINT64 Offset,
+ IN UINT64 AccessWidth,
+ OUT VOID *Configuration
+ );
diff --git a/IntelFrameworkModulePkg/Include/Protocol/IsaAcpi.h b/IntelFrameworkModulePkg/Include/Protocol/IsaAcpi.h
new file mode 100644
index 0000000000..8e7402d667
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Protocol/IsaAcpi.h
@@ -0,0 +1,177 @@
+/*++
+
+Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+Module Name:
+
+ IsaAcpi.h
+
+Abstract:
+
+ EFI ISA Acpi Protocol
+
+Revision History
+
+--*/
+
+#ifndef __ISA_ACPI_H_
+#define __ISA_ACPI_H_
+
+#define EFI_ISA_ACPI_PROTOCOL_GUID \
+ { 0x64a892dc, 0x5561, 0x4536, { 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55 } }
+
+typedef struct _EFI_ISA_ACPI_PROTOCOL EFI_ISA_ACPI_PROTOCOL;
+
+//
+// Resource Attribute definition
+//
+#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_EDGE_SENSITIVE 0x01
+#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_EDGE_SENSITIVE 0x02
+#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_LEVEL_SENSITIVE 0x04
+#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_LEVEL_SENSITIVE 0x08
+
+#define EFI_ISA_ACPI_DMA_SPEED_TYPE_MASK 0x03
+
+#define EFI_ISA_ACPI_DMA_SPEED_TYPE_COMPATIBILITY 0x00
+#define EFI_ISA_ACPI_DMA_SPEED_TYPE_A 0x01
+#define EFI_ISA_ACPI_DMA_SPEED_TYPE_B 0x02
+#define EFI_ISA_ACPI_DMA_SPEED_TYPE_F 0x03
+#define EFI_ISA_ACPI_DMA_COUNT_BY_BYTE 0x04
+#define EFI_ISA_ACPI_DMA_COUNT_BY_WORD 0x08
+#define EFI_ISA_ACPI_DMA_BUS_MASTER 0x10
+#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT 0x20
+#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT 0x40
+#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_16_BIT 0x80
+
+#define EFI_ISA_ACPI_MEMORY_WIDTH_MASK 0x03
+
+#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT 0x00
+#define EFI_ISA_ACPI_MEMORY_WIDTH_16_BIT 0x01
+#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT_AND_16_BIT 0x02
+#define EFI_ISA_ACPI_MEMORY_WRITEABLE 0x04
+#define EFI_ISA_ACPI_MEMORY_CACHEABLE 0x08
+#define EFI_ISA_ACPI_MEMORY_SHADOWABLE 0x10
+#define EFI_ISA_ACPI_MEMORY_EXPANSION_ROM 0x20
+
+#define EFI_ISA_ACPI_IO_DECODE_10_BITS 0x01
+#define EFI_ISA_ACPI_IO_DECODE_16_BITS 0x02
+
+//
+// Resource List definition:
+// at first, the resource was defined as below
+// but in the future, it will be defined again that follow ACPI spec: ACPI resource type
+// so that, in this driver, we can interpret the ACPI table and get the ISA device information.
+//
+
+typedef enum {
+ EfiIsaAcpiResourceEndOfList,
+ EfiIsaAcpiResourceIo,
+ EfiIsaAcpiResourceMemory,
+ EfiIsaAcpiResourceDma,
+ EfiIsaAcpiResourceInterrupt
+} EFI_ISA_ACPI_RESOURCE_TYPE;
+
+typedef struct {
+ EFI_ISA_ACPI_RESOURCE_TYPE Type;
+ UINT32 Attribute;
+ UINT32 StartRange;
+ UINT32 EndRange;
+} EFI_ISA_ACPI_RESOURCE;
+
+typedef struct {
+ UINT32 HID;
+ UINT32 UID;
+} EFI_ISA_ACPI_DEVICE_ID;
+
+typedef struct {
+ EFI_ISA_ACPI_DEVICE_ID Device;
+ EFI_ISA_ACPI_RESOURCE *ResourceItem;
+} EFI_ISA_ACPI_RESOURCE_LIST;
+
+//
+// Prototypes for the ISA ACPI Protocol
+//
+typedef
+EFI_STATUS
+(EFIAPI *EFI_ISA_ACPI_DEVICE_ENUMERATE) (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ OUT EFI_ISA_ACPI_DEVICE_ID **Device
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_ISA_ACPI_SET_DEVICE_POWER) (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ IN EFI_ISA_ACPI_DEVICE_ID *Device,
+ IN BOOLEAN OnOff
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_ISA_ACPI_GET_CUR_RESOURCE) (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ IN EFI_ISA_ACPI_DEVICE_ID *Device,
+ OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_ISA_ACPI_GET_POS_RESOURCE) (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ IN EFI_ISA_ACPI_DEVICE_ID *Device,
+ OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_ISA_ACPI_SET_RESOURCE) (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ IN EFI_ISA_ACPI_DEVICE_ID *Device,
+ IN EFI_ISA_ACPI_RESOURCE_LIST *ResourceList
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_ISA_ACPI_ENABLE_DEVICE) (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ IN EFI_ISA_ACPI_DEVICE_ID *Device,
+ IN BOOLEAN Enable
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_ISA_ACPI_INIT_DEVICE) (
+ IN EFI_ISA_ACPI_PROTOCOL *This,
+ IN EFI_ISA_ACPI_DEVICE_ID *Device
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_ISA_ACPI_INTERFACE_INIT) (
+ IN EFI_ISA_ACPI_PROTOCOL *This
+ );
+
+//
+// Interface structure for the ISA ACPI Protocol
+//
+struct _EFI_ISA_ACPI_PROTOCOL {
+ EFI_ISA_ACPI_DEVICE_ENUMERATE DeviceEnumerate;
+ EFI_ISA_ACPI_SET_DEVICE_POWER SetPower;
+ EFI_ISA_ACPI_GET_CUR_RESOURCE GetCurResource;
+ EFI_ISA_ACPI_GET_POS_RESOURCE GetPosResource;
+ EFI_ISA_ACPI_SET_RESOURCE SetResource;
+ EFI_ISA_ACPI_ENABLE_DEVICE EnableDevice;
+ EFI_ISA_ACPI_INIT_DEVICE InitDevice;
+ EFI_ISA_ACPI_INTERFACE_INIT InterfaceInit;
+};
+
+extern EFI_GUID gEfiIsaAcpiProtocolGuid;
+
+#endif
diff --git a/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugInit.h b/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugInit.h
new file mode 100644
index 0000000000..342d5b2aaf
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugInit.h
@@ -0,0 +1,165 @@
+/** @file
+ This file declares EFI PCI Hot Plug Init Protocol
+
+ Copyright (c) 2006, Intel Corporation
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+ Module Name: PciHotPlugInit.h
+
+ @par Revision Reference:
+ This protocol is defined in Framework of EFI Hot Plug Pci Initialization Protocol Spec
+ Version 0.9
+
+**/
+
+#ifndef __EFI_PCI_HOT_PLUG_INIT_H_
+#define __EFI_PCI_HOT_PLUG_INIT_H_
+
+//
+// Global ID for the PCI Hot Plug Protocol
+//
+#define EFI_PCI_HOT_PLUG_INIT_PROTOCOL_GUID \
+ { 0xaa0e8bc1, 0xdabc, 0x46b0, {0xa8, 0x44, 0x37, 0xb8, 0x16, 0x9b, 0x2b, 0xea } }
+
+
+typedef struct _EFI_PCI_HOT_PLUG_INIT_PROTOCOL EFI_PCI_HOT_PLUG_INIT_PROTOCOL;
+
+#define EFI_HPC_STATE_INITIALIZED 0x01
+#define EFI_HPC_STATE_ENABLED 0x02
+
+typedef UINT16 EFI_HPC_STATE;
+
+
+typedef struct{
+ EFI_DEVICE_PATH_PROTOCOL *HpcDevicePath;
+ EFI_DEVICE_PATH_PROTOCOL *HpbDevicePath;
+} EFI_HPC_LOCATION;
+
+
+typedef enum{
+ EfiPaddingPciBus,
+ EfiPaddingPciRootBridge
+} EFI_HPC_PADDING_ATTRIBUTES;
+
+/**
+ Returns a list of root Hot Plug Controllers (HPCs) that require initialization
+ during the boot process.
+
+ @param This Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance.
+ @param HpcCount The number of root HPCs that were returned.
+ @param HpcList The list of root HPCs. HpcCount defines the number of
+ elements in this list.
+
+ @retval EFI_SUCCESS HpcList was returned.
+ @retval EFI_OUT_OF_RESOURCES HpcList was not returned due to insufficient resources.
+ @retval EFI_INVALID_PARAMETER HpcCount is NULL or HpcList is NULL.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_GET_ROOT_HPC_LIST) (
+ IN EFI_PCI_HOT_PLUG_INIT_PROTOCOL *This,
+ OUT UINTN *HpcCount,
+ OUT EFI_HPC_LOCATION **HpcList
+);
+
+/**
+ Initializes one root Hot Plug Controller (HPC). This process may causes
+ initialization of its subordinate buses.
+
+ @param This Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance.
+ @param HpcDevicePath The device path to the HPC that is being initialized.
+ @param HpcPciAddress The address of the HPC function on the PCI bus.
+ @param Event The event that should be signaled when the HPC initialization
+ is complete.
+ @param HpcState The state of the HPC hardware.
+
+ @retval EFI_SUCCESS If Event is NULL, the specific HPC was successfully
+ initialized. If Event is not NULL, Event will be signaled at a later time
+ when initialization is complete.
+ @retval EFI_UNSUPPORTED This instance of EFI_PCI_HOT_PLUG_INIT_PROTOCOL
+ does not support the specified HPC.
+ @retval EFI_OUT_OF_RESOURCES Initialization failed due to insufficient
+ resources.
+ @retval EFI_INVALID_PARAMETER HpcState is NULL.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_INITIALIZE_ROOT_HPC) (
+ IN EFI_PCI_HOT_PLUG_INIT_PROTOCOL *This,
+ IN EFI_DEVICE_PATH_PROTOCOL *HpcDevicePath,
+ IN UINT64 HpcPciAddress,
+ IN EFI_EVENT Event, OPTIONAL
+ OUT EFI_HPC_STATE *HpcState
+);
+
+/**
+ Returns the resource padding that is required by the PCI bus that is controlled
+ by the specified Hot Plug Controller (HPC).
+
+ @param This Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance.
+ @param HpcDevicePath The device path to the HPC.
+ @param HpcPciAddress The address of the HPC function on the PCI bus.
+ @param HpcState The state of the HPC hardware.
+ @param Padding The amount of resource padding that is required by the
+ PCI bus under the control of the specified HPC.
+ @param Attributes Describes how padding is accounted for. The padding
+ is returned in the form of ACPI 2.0 resource descriptors.
+
+ @retval EFI_SUCCESS The resource padding was successfully returned.
+ @retval EFI_UNSUPPORTED This instance of the EFI_PCI_HOT_PLUG_INIT_PROTOCOL
+ does not support the specified HPC.
+ @retval EFI_NOT_READY This function was called before HPC initialization is complete.
+ @retval EFI_INVALID_PARAMETER HpcState or Padding or Attributes is NULL.
+ @retval EFI_OUT_OF_RESOURCES ACPI 2.0 resource descriptors for Padding
+ cannot be allocated due to insufficient resources.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_GET_PCI_HOT_PLUG_PADDING) (
+ IN EFI_PCI_HOT_PLUG_INIT_PROTOCOL *This,
+ IN EFI_DEVICE_PATH_PROTOCOL *HpcDevicePath,
+ IN UINT64 HpcPciAddress,
+ OUT EFI_HPC_STATE *HpcState,
+ OUT VOID **Padding,
+ OUT EFI_HPC_PADDING_ATTRIBUTES *Attributes
+);
+
+
+//
+// Prototypes for the PCI Hot Plug Init Protocol
+//
+
+/**
+ @par Protocol Description:
+ This protocol provides the necessary functionality to initialize the
+ Hot Plug Controllers (HPCs) and the buses that they control. This protocol
+ also provides information regarding resource padding.
+
+ @param GetRootHpcList
+ Returns a list of root HPCs and the buses that they control.
+
+ @param InitializeRootHpc
+ Initializes the specified root HPC.
+
+ @param GetResourcePadding
+ Returns the resource padding that is required by the HPC.
+
+**/
+struct _EFI_PCI_HOT_PLUG_INIT_PROTOCOL {
+ EFI_GET_ROOT_HPC_LIST GetRootHpcList;
+ EFI_INITIALIZE_ROOT_HPC InitializeRootHpc;
+ EFI_GET_PCI_HOT_PLUG_PADDING GetResourcePadding;
+};
+
+extern EFI_GUID gEfiPciHotPlugInitProtocolGuid;
+
+#endif
diff --git a/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h b/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h
new file mode 100644
index 0000000000..0aa641e3c0
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h
@@ -0,0 +1,54 @@
+/*++
+
+Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+Module Name:
+
+ PciHotPlugRequest.h
+
+Abstract:
+
+
+
+--*/
+
+#ifndef __PCI_HOTPLUG_REQUEST_H_
+#define __PCI_HOTPLUG_REQUEST_H_
+
+#define EFI_PCI_HOTPLUG_REQUEST_PROTOCOL_GUID \
+{0x19cb87ab,0x2cb9,{0x4665,0x83,0x60,0xdd,0xcf,0x60,0x54,0xf7,0x9d}}
+
+typedef enum {
+ EfiPciHotPlugRequestAdd,
+ EfiPciHotplugRequestRemove
+} EFI_PCI_HOTPLUG_OPERATION;
+
+typedef struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL EFI_PCI_HOTPLUG_REQUEST_PROTOCOL;
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PCI_HOTPLUG_REQUEST_NOTIFY) (
+ IN EFI_PCI_HOTPLUG_REQUEST_PROTOCOL *This,
+ IN EFI_PCI_HOTPLUG_OPERATION Operation,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL,
+ IN OUT UINT8 *NumberOfChildren,
+ IN OUT EFI_HANDLE *ChildHandleBuffer
+);
+
+
+
+struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL {
+ EFI_PCI_HOTPLUG_REQUEST_NOTIFY Notify;
+};
+
+extern EFI_GUID gEfiPciHotPlugRequestProtocolGuid;
+
+#endif
diff --git a/IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h b/IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h
new file mode 100644
index 0000000000..b20a3afb4d
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h
@@ -0,0 +1,72 @@
+/*++
+
+Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+
+Module Name:
+
+ VgaMiniPort.h
+
+Abstract:
+
+ Vga Mini port binding for a VGA controller
+
+Revision History
+
+--*/
+
+#ifndef __VGA_MINI_PORT_H_
+#define __VGA_MINI_PORT_H_
+
+#define EFI_VGA_MINI_PORT_PROTOCOL_GUID \
+ { \
+ 0xc7735a2f, 0x88f5, 0x4882, {0xae, 0x63, 0xfa, 0xac, 0x8c, 0x8b, 0x86, 0xb3 } \
+ }
+
+typedef struct _EFI_VGA_MINI_PORT_PROTOCOL EFI_VGA_MINI_PORT_PROTOCOL;
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_VGA_MINI_PORT_SET_MODE) (
+ IN EFI_VGA_MINI_PORT_PROTOCOL * This,
+ IN UINTN ModeNumber
+ );
+
+/*++
+
+ Routine Description:
+ Sets the text display mode of a VGA controller
+
+ Arguments:
+ This - Protocol instance pointer.
+ Mode - Mode number. 0 - 80x25 1-80x50
+
+ Returns:
+ EFI_SUCCESS - The mode was set
+ EFI_DEVICE_ERROR - The device is not functioning properly.
+
+--*/
+struct _EFI_VGA_MINI_PORT_PROTOCOL {
+ EFI_VGA_MINI_PORT_SET_MODE SetMode;
+
+ UINT64 VgaMemoryOffset;
+ UINT64 CrtcAddressRegisterOffset;
+ UINT64 CrtcDataRegisterOffset;
+
+ UINT8 VgaMemoryBar;
+ UINT8 CrtcAddressRegisterBar;
+ UINT8 CrtcDataRegisterBar;
+
+ UINT8 MaxMode;
+};
+
+extern EFI_GUID gEfiVgaMiniPortProtocolGuid;
+
+#endif
diff --git a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
new file mode 100644
index 0000000000..71a2bc8f15
--- /dev/null
+++ b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
@@ -0,0 +1,109 @@
+#/** @file
+# Intel Framework Module Package Reference Implementations
+#
+# This Module provides standard reference information for EFI/Tiano implementations.
+# Copyright (c) 2007, Intel Corporation.
+#
+# All rights reserved.
+# This program and the accompanying materials are licensed and made available
+# under the terms and conditions of the BSD License which accompanies this distribution.
+# The full text of the license may be found at http://opensource.org/licenses/bsd-license.php
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES
+# OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#**/
+
+
+################################################################################
+#
+# Defines Section - statements that will be processed to create a Makefile.
+#
+################################################################################
+
+[Defines]
+ DEC_SPECIFICATION = 0x00010005
+ PACKAGE_NAME = IntelFrameworkModulePkg
+ PACKAGE_GUID = 88894582-7553-4822-B484-624E24B6DECF
+ PACKAGE_VERSION = 0.1
+
+
+################################################################################
+#
+# Library Class Header section - list of Library Class header files that are
+# provided by this package.
+#
+################################################################################
+[LibraryClass.common]
+ PciIncompatibleDeviceSupportLib|Include/Library/PciIncompatibleDeviceSupportLib.h
+ OemHookStatusCodeLib|Include/Library/OemHookStatusCodeLib.h
+
+
+
+################################################################################
+#
+# Global Guid Definition section - list of Global Guid C Name Data Structures
+# that are provided by this package.
+#
+################################################################################
+[Guids.common]
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid = { 0xD3705011, 0xBC19, 0x4af7, { 0xBE, 0x16, 0xF6, 0x80, 0x30, 0x37, 0x8C, 0x15 }}
+ gEfiPciHotplugDeviceGuid = { 0x0B280816, 0x52E7, 0x4E51, { 0xAA, 0x57, 0x11, 0xBD, 0x41, 0xCB, 0xEF, 0xC3 }}
+ gEfiPciOptionRomTableGuid = { 0x7462660F, 0x1CBD, 0x48DA, { 0xAD, 0x11, 0x91, 0x71, 0x79, 0x13, 0x83, 0x1C }}
+ gEfiStatusCodeGuid = { 0xD083E94C, 0x6560, 0x42E4, { 0xB6, 0xD4, 0x2D, 0xF7, 0x5A, 0xDF, 0x6A, 0x2A }}
+ gMemoryStatusCodeRecordGuid = { 0x060CC026, 0x4C0D, 0x4DDA, { 0x8F, 0x41, 0x59, 0x5F, 0xEF, 0x00, 0xA5, 0x02 }}
+
+
+
+
+################################################################################
+#
+# Global Protocols Definition section - list of Global Protocols C Name Data
+# Structures that are provided by this package.
+#
+################################################################################
+[Protocols.common]
+ gEfiIsaAcpiProtocolGuid = { 0x64a892dc, 0x5561, 0x4536, { 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55 }}
+ gEfiVgaMiniPortProtocolGuid = { 0xc7735a2f, 0x88f5, 0x4882, { 0xae, 0x63, 0xfa, 0xac, 0x8c, 0x8b, 0x86, 0xb3 }}
+ gEfiPciHotPlugInitProtocolGuid = { 0xAA0E8BC1, 0xDABC, 0x46B0, { 0xA8, 0x44, 0x37, 0xB8, 0x16, 0x9B, 0x2B, 0xEA }}
+ gEfiPciHotPlugRequestProtocolGuid = { 0x19CB87AB, 0x2CB9, 0x4665, { 0x83, 0x60, 0xDD, 0xCF, 0x60, 0x54, 0xF7, 0x9D }}
+
+
+
+
+################################################################################
+#
+# PCD Declarations section - list of all PCDs Declared by this Package
+# Only this package should be providing the
+# declaration, other packages should not.
+#
+################################################################################
+
+[PcdDynamic.common]
+ PcdStatusCodeMemorySize|0x00010025|gEfiIntelFrameworkModulePkgTokenSpaceGuid|UINT16|1
+ PcdStatusCodeRuntimeMemorySize|0x0001002e|gEfiIntelFrameworkModulePkgTokenSpaceGuid|UINT16|4
+
+[PcdFeatureFlag.common]
+ PcdStatusCodeUseSerial|0x00010022|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdStatusCodeUseMemory|0x00010023|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdStatusCodeUseOEM|0x00010024|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdStatusCodeUseEfiSerial|0x00010026|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdStatusCodeUseHardSerial|0x00010027|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdStatusCodeUseRuntimeMemory|0x00010028|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdStatusCodeUseDataHub|0x00010029|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdStatusCodeReplayInSerial|0x0001002a|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdStatusCodeReplayInRuntimeMemory|0x0001002b|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdStatusCodeReplayInDataHub|0x0001002c|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdStatusCodeReplayInOEM|0x0001002d|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdPciIsaEnable|0x00010039|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdPciVgaEnable|0x0001003a|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|FALSE
+ PcdPciBusHotplugDeviceSupport|0x0001003d|gEfiIntelFrameworkModulePkgTokenSpaceGuid|BOOLEAN|TRUE
+
+[PcdFixedAtBuild.common]
+ PcdStatusCodeMemorySize|0x00010025|gEfiIntelFrameworkModulePkgTokenSpaceGuid|UINT16|1
+ PcdStatusCodeRuntimeMemorySize|0x0001002e|gEfiIntelFrameworkModulePkgTokenSpaceGuid|UINT16|4
+
+[PcdPatchableInModule.common]
+ PcdStatusCodeMemorySize|0x00010025|gEfiIntelFrameworkModulePkgTokenSpaceGuid|UINT16|1
+ PcdStatusCodeRuntimeMemorySize|0x0001002e|gEfiIntelFrameworkModulePkgTokenSpaceGuid|UINT16|4
+
+
diff --git a/IntelFrameworkModulePkg/IntelFrameworkModulePkg.nspd b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.nspd
new file mode 100644
index 0000000000..079ed72a5d
--- /dev/null
+++ b/IntelFrameworkModulePkg/IntelFrameworkModulePkg.nspd
@@ -0,0 +1,227 @@
+
+
+
+ IntelFrameworkModulePkg
+ 88894582-7553-4822-B484-624E24B6DECF
+ 0.1
+ Intel Framework Module Package Reference Implementations
+ This Module provides standard reference information for EFI/Tiano implementations.
+ Copyright (c) 2007, Intel Corporation.
+ All rights reserved.
+ This program and the accompanying materials are licensed and made available
+ under the terms and conditions of the BSD License which accompanies this distribution.
+ The full text of the license may be found at http://opensource.org/licenses/bsd-license.php
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES
+ OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052
+
+
+ false
+ false
+
+
+
+ Include/Library/OemHookStatusCodeLib.h
+
+
+
+ Include/Library/PciIncompatibleDeviceSupportLib.h
+ This library includes the PCI incompatible devices list.
+
+
+
+
+ gMemoryStatusCodeRecordGuid
+ 060CC026-4C0D-4DDA-8F41-595FEF00A502
+ GUID used to identify status code records HOB that originate from the PEI status code.
+
+
+ gEfiStatusCodeGuid
+ D083E94C-6560-42E4-B6D4-2DF75ADF6A2A
+ GUID used to identify Data Hub records.
+
+
+ gEfiPciOptionRomTableGuid
+ 7462660F-1CBD-48DA-AD11-91717913831C
+ GUID and data structure used to describe the list of PCI Option ROMs present in a system.
+
+
+ gEfiPciHotplugDeviceGuid
+ 0B280816-52E7-4E51-AA57-11BD41CBEFC3
+ GUIDs used to indicate the device is Pccard hotplug device.
+
+
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ D3705011-BC19-4af7-BE16-F68030378C15
+ All PCD define in IntelFrameworkModulePkg is in this token space scope.
+
+
+
+
+ gEfiPciHotPlugRequestProtocolGuid
+ 19CB87AB-2CB9-4665-8360-DDCF6054F79D
+ Provide Hot Plug Support by PciBus driver. PciBus driver is notified by the Protocol caller to start Hot Plug device.
+
+
+ gEfiPciHotPlugInitProtocolGuid
+ AA0E8BC1-DABC-46B0-A844-37B8169B2BEA
+ Provide platform specific Hot Plug Support to PciBus driver. PciBus driver consumes this Protocol to get platform specific information.
+
+
+ gEfiVgaMiniPortProtocolGuid
+ c7735a2f-88f5-4882-ae63-faac8c8b86b3
+ Provide the text display mode base a VGA controller.
+
+
+ gEfiIsaAcpiProtocolGuid
+ 64a892dc-5561-4536-92c7-799bfc183355
+ Provide interface to manage the ISA device resource.
+
+
+
+
+ PcdStatusCodeUseSerial
+ 0x00010022
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ This feature flag can be used to enable or disable report staus code to serial I/O. Disable it can reduce the size of final image generated.
+
+
+ PcdStatusCodeUseMemory
+ 0x00010023
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ This feature flag can be used to enable or disable save statuc code in GUID'ed HOB. Disable it can reduce the size of final image generated.
+
+
+ PcdStatusCodeUseOEM
+ 0x00010024
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ This feature flag can be used to enable or disable send status code to OEM device. Disable it can reduce the size of final image generated.
+
+
+ PcdStatusCodeMemorySize
+ 0x00010025
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ UINT16
+ FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC
+ 1
+ kbytes size of GUID'ed HOB, if the GUID'ed HOB is full, create new GUID'ed HOB with this size.
+
+
+ PcdStatusCodeUseEfiSerial
+ 0x00010026
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ Use to switch on/off report status code through serial DXE.
+
+
+ PcdStatusCodeUseHardSerial
+ 0x00010027
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ Use to switch on/off report status code to serial device.
+
+
+ PcdStatusCodeUseRuntimeMemory
+ 0x00010028
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ Use to switch on/off save status code in runtime memory.
+
+
+ PcdStatusCodeUseDataHub
+ 0x00010029
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ Use to switch on/off log status code in data hub.
+
+
+ PcdStatusCodeReplayInSerial
+ 0x0001002a
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ Use to enable/dsable replay status code which saved in GUID'ed HOB in PEI phase to EFI serial.
+
+
+ PcdStatusCodeReplayInRuntimeMemory
+ 0x0001002b
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ Use to enable/dsable replay status code which saved in GUID'ed HOB in PEI phase to EFI serial.
+
+
+ PcdStatusCodeReplayInDataHub
+ 0x0001002c
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ Use to enable/dsable replay status code which saved in GUID'ed HOB in PEI phase to EFI serial.
+
+
+ PcdStatusCodeReplayInOEM
+ 0x0001002d
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ Use to enable/dsable replay status code which saved in GUID'ed HOB in PEI phase to EFI serial.
+
+
+ PcdStatusCodeRuntimeMemorySize
+ 0x0001002e
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ UINT16
+ FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC
+ 4
+ kbytes size of runtime memory.
+
+
+ PcdPciIsaEnable
+ 0x00010039
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ This is a switch to enable ISA
+
+
+ PcdPciVgaEnable
+ 0x0001003a
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ FALSE
+ Whether VGA decoding is enabled on this platform so we should avoid those aliased resources
+
+
+ PcdPciBusHotplugDeviceSupport
+ 0x0001003d
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid
+ BOOLEAN
+ FEATURE_FLAG
+ TRUE
+ If TRUE, the PCI bus driver will support hot plug device. If not hot plug device is supported, this feature flag can be set to FALSE to save size.
+
+
+
\ No newline at end of file