#/** @file
# Component description file for PeiBaseMemoryTestInit module.
#
# This driver provides memory test ppi for memory test in Pei Phase.
# Copyright (c) 2006 - 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]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = PeiBaseMemoryTestInit
  FILE_GUID                      = 736EB068-8C01-47c5-964B-1C57BD5D4D64
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  EDK_RELEASE_VERSION            = 0x00020000
  EFI_SPECIFICATION_VERSION      = 0x00020000

  ENTRY_POINT                    = PeiBaseMemoryTestInit

#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC

[Sources.common]
  BaseMemoryTest.c
  BaseMemoryTest.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  ReportStatusCodeLib
  PeimEntryPoint
  DebugLib
  PeiServicesLib

[Ppis]
  gPeiBaseMemoryTestPpiGuid                     # PPI ALWAYS_PRODUCED

[FixedPcd.common]
  gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueMemoryTestStarted
  gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueUncorrectableMemoryError

