## @file
#
# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
# 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:
#
#    PlatformBds.inf
#
#  Abstract:
#
#    Component description file for Bds module.
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = DuetBds
  FILE_GUID                      = A6F691AC-31C8-4444-854C-E2C1A6950F92
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = PlatformBdsLib|DXE_DRIVER

[Sources]
  BdsPlatform.c
  PlatformData.c
  BdsPlatform.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  DuetPkg/DuetPkg.dec
  IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec

[LibraryClasses]
  BaseLib
  MemoryAllocationLib
  UefiBootServicesTableLib
  BaseMemoryLib
  DebugLib
  PcdLib
  GenericBdsLib
  HobLib
  UefiLib
  DevicePathLib

[Guids]
  gEfiGlobalVariableGuid
  gEfiPciExpressBaseAddressGuid
  gEfiAcpi20TableGuid
  gEfiMpsTableGuid
  gEfiSmbiosTableGuid
  gEfiAcpiTableGuid
  gLdrMemoryDescriptorGuid

[Pcd]
  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile

