1. Create Intel Framework Module Package directory
authorqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 26 Jun 2007 08:14:44 +0000 (08:14 +0000)
committerqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 26 Jun 2007 08:14:44 +0000 (08:14 +0000)
2. Complete the public inclusion files

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2746 6f19259b-4bc3-4df7-8a09-765794883524

12 files changed:
IntelFrameworkModulePkg/Include/Guid/MemoryStatusCodeRecord.h [new file with mode: 0644]
IntelFrameworkModulePkg/Include/Guid/PciHotplugDevice.h [new file with mode: 0644]
IntelFrameworkModulePkg/Include/Guid/PciOptionRomTable.h [new file with mode: 0644]
IntelFrameworkModulePkg/Include/Guid/StatusCode.h [new file with mode: 0644]
IntelFrameworkModulePkg/Include/Library/OemHookStatusCodeLib.h [new file with mode: 0644]
IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h [new file with mode: 0644]
IntelFrameworkModulePkg/Include/Protocol/IsaAcpi.h [new file with mode: 0644]
IntelFrameworkModulePkg/Include/Protocol/PciHotPlugInit.h [new file with mode: 0644]
IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h [new file with mode: 0644]
IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h [new file with mode: 0644]
IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec [new file with mode: 0644]
IntelFrameworkModulePkg/IntelFrameworkModulePkg.nspd [new file with mode: 0644]

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