## @file
#  This driver installs Single Segment Pci Configuration 2 PPI 
#  to provide read, write and modify access to Pci configuration space in PEI phase. 
#  To follow PI specification, these services also support access to the unaligned Pci address.
#
#  Copyright (c) 2006 - 2010, 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]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = PcatSingleSegmentPciCfg2Pei
  FILE_GUID                      = 4F1F379F-2A62-48bb-AC34-D3F135C6E2B7
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = PeimInitializePciCfg

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC (EBC is for build only)
#

[Sources]
  PciCfg2.c

[Packages]
  MdePkg/MdePkg.dec


[LibraryClasses]
  PeimEntryPoint
  PciLib
  BaseLib
  DebugLib
  PeiServicesLib

[Ppis]
  gEfiPciCfg2PpiGuid                   ## PRODUCED

[Depex]
  TRUE
